Как использовать std :: for_each для целого ряда объектов boost :: function? - PullRequest
2 голосов
/ 09 августа 2011
class User    
{    
public:

    User(){}    
    virtual ~User(){}
    void Test( int in )    
    {    
    }    
}    

User user;

vector< boost::function< void() > > functions;

functions.push_back( boost::bind( &User::Test, &user, 2 ) );

functions.push_back( boost::bind( &User::Test, &user, 4 ) );

for_each( functions.begin(), functions.end() , /* What goes here? */ );

1 Ответ

3 голосов
/ 21 ноября 2011

Попробуйте

for_each( functions.begin(), functions.end(), mem_fn( &function< void() >::operator() ) );

Где mem_fn равно либо std::tr1::mem_fn, либо boost::mem_fn.

...