Года полтора назад писал курсовик, использовал boost. Cейчас другу дали практически такое же задание, хотел дать ему свою прогу, а она не компилируется т.к. буст обновился и видимо там что то поменялось.
Код на котором ошибка, следующий:
std::vector<std::string> preg_match_all(const std::string & s, const boost::regex & expr)
{
typedef boost::regex_iterator<std::string::const_iterator> iter;
std::vector<std::string> res;
transform
(
iter(s.begin(), s.end(), expr),
iter(),
back_inserter(res),
bind(&iter::value_type::str, _1, 0)
);
return res;
}
Ошибку выдает следующею:
pregmatch.cpp: In function ‘std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > preg_match_all(const std::string&, const boost::regex&)’:
pregmatch.cpp:20: ошибка: нет соответствующей функции для вызова ‘bind(<unresolved overloaded function type>, boost::arg<1>&, int)’
make: *** [pregmatch.o] Ошибка 1
Что это может быть?
Boost на котором писал: 1.39
На котором ошибка: 1.41
Можно конечно собрать и старый boost но просто интересно что там поменяли