J'ai essayé d'émuler un copy_if par les codes suivants mais mon compilateur (g ++ - 4.0) continue de se plaindre. Qu'est-ce qui ne va pas techniquement? Merci de votre aide!boost :: lambda :: if_then pour copy_if
template <class STL> // a std container of class A, but I don't know if it's a list or vector or deque
void export_(STL& Alist) { //a member function
for_each(Alist0.begin(), Alist0.end(), //member data
boost::lambda::if_then(
boost::lambda::bind(&A::get_StatusTag, boost::lambda::_1) == OK, //some global enum returned by A::get_StatusTag
boost::lambda::bind(&STL::push_back, Alist, boost::lambda::_1)
)
);
}
Publier les erreurs du compilateur. –
il serait utile si vous avez posté le message d'erreur du compilateur pour nous donner un indice ... – Glen
Chaque expression dans votre exemple peut apparaître comme une déclaration d'expression dans son propre droit. Par conséquent, prenez chacun à son tour et placez un point-virgule après. Cela devrait aider à affiner la cause de votre problème. Par exemple mettre le suivant de son propre chef: (boost :: lambda :: bind (& A :: get_StatusTag, boost :: lambda :: _ 1) == OK); –