Hi All, Given two vector<Rec*> S.T. : vector<Rec*> src; vector<Rec*> dst; Where 'src' has some elements that are useful, is there a more succint way to say: for_each(src.begin(), src.end(), if_then( bind<bool>(&vector<Rec*>::empty, &var(dst)), bind<void>(&vector<Rec*>::push_back, &var(dst), _1) ) ); Originally I tried using the member pointer operator, but this it gave me compile fits (Red Hat with a 2.4.20-8 kernel, GCC 3.4.3) with this: for_each(src.begin(), src.end(), if_then(bind<bool>(&vector<Rec*>::empty, &var(dst)), (&var(dst) ->* &vector<Rec*>::push_back)(_1) ) ); Is that a valid use of the member pointer operator? Thanks, Brian