Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Первая проблема — они написаны под Linux. Хороша новость, то что они написаны на Си. Вообще, смотря код писанный под Linux я никак не могу побороть у себя впечатление, что возвращаюсь в доисторическую эпоху. Говорить о совместимости с Windows (т.е. якобы многоплатформенности) — совершенно не приходится (а я как минимум 3 больших проекта «смотрел»).
Попробовал я партировать Phaistos в Windows… невозможно. Он использует библиотеку boost, где я после пару дней мучений пришел к однозначному выводу, библиотека сама по себе дрянь (использование шаблонов, в таком количестве, что код получается ужасным), и она не компилируется под Windows на MS Visual Studio
template<
typename SeqT,
typename IteratorT=BOOST_STRING_TYPENAME SeqT::const_iterator >
struct copy_iterator_rangeF :
public std::unary_function< iterator_range<IteratorT>, SeqT >
{
SeqT operator()( const iterator_range<IteratorT>& Range ) const
{
return copy_range<SeqT>(Range);
}
};
inline std::istream &operator>>(std::istream &input, AtomSelectionEnum &a) {
std::string raw_string;
std::getline(input, raw_string);
std::vector<std::string> split_raw_string;
boost::split(split_raw_string,
raw_string,
boost::is_any_of(" "));
AtomSelectionEnum atom_selection = NO_ATOMS;
for (unsigned int i=0; i<split_raw_string.size(); ++i) {
for (unsigned int j=0; j<ATOM_SELECTION_ENUM_SIZE; ++j) {
if (split_raw_string[i] == atom_selection_name[j]) {
atom_selection = AtomSelectionEnum((int)atom_selection |
(int)atom_selection_array[j]);
break;
}
}
}
if (atom_selection != NO_ATOMS)
a = atom_selection;
return input;
}
Развитие RNAInSpace, алгоритм CRA, проблемы кода на Linux и прочие