ошибка компиляции Bind Bind - PullRequest
6 голосов
/ 11 ноября 2009
class A
{
   bool OutofRange(string& a, string& b, string c);
   void Get(vector <string>& str, string& a, string& b);
}

void A::Get(vector <string>& str, string& a, string& b)
{
   str.erase(
            std::remove_if (str.begin(), str.end(), BOOST_BIND(&A::OutOfRange, a, b, _1)),
            str.end()
            );
}

Я получаю сообщения об ошибках типа:

 Error 7 error C2825: 'F': must be a class or namespace when followed by '::' File:bind.hpp
 Error 8 error C2039: 'result_type' : is not a member of '`global namespace'' t:\3rdparty\cpp\boost\boost-1.38.0\include\boost\bind.hpp 67 

Может кто-нибудь сказать мне, что я делаю не так?

1 Ответ

14 голосов
/ 11 ноября 2009

A :: OutOfRange является функцией 4 аргументов - неявных * это первый аргумент, который отсутствует в вашем предложении bind

...