Boost не привязывается к функции-члену, даже используя это - PullRequest
1 голос
/ 11 мая 2010

Я пытаюсь использовать boost::bind с boost::function, используя это. Это кажется тривиальным примером, но я не могу заставить его работать. Вы можете мне помочь?

Это потому, что это запрещено или я что-то не так делаю?

// .h
class MyClass{
publc:
    void DoSomething( 
        const std::string& a,
        const std::string& b);
    void DoABind();

}

//.cpp
void MyClass::DoABind(){

    boost::function< void( const std::string& , const std::string& ) > callback( 
        boost::bind(
               &MyClass::DoSomething,
                 this ));

        // this line doesn't compile!!!
}

Ответы [ 2 ]

3 голосов
/ 11 мая 2010

Вы забыли использовать заполнители параметров. Попробуйте это:

boost::function< void( const std::string& , const std::string& ) > callback(
    boost::bind(
           &MyClass::DoSomething,
             this, _1, _2 ));

Это компилируется на gcc 4.4.1 с boost 1.41.

3 голосов
/ 11 мая 2010

Я думаю, что вы хотите bind(&MyClass::DoSomething, this, _1, _2). У меня нет установки буста для тестирования.

...