Ich habe versucht, ein copy_if durch die folgenden Codes zu emulieren, aber mein Compiler (g ++ - 4.0) beschwert sich nur. Was ist technisch falsch? Danke für Ihre Hilfe!boost :: lambda :: if_then für 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)
)
);
}
Beitrag des Compiler-Fehler. –
Es würde helfen, wenn Sie die Compiler-Fehlermeldung gesendet haben, um uns einen Hinweis zu geben ... – Glen
Jeder Ausdruck in Ihrem Beispiel kann als eigenständige Ausdruckanweisung auftreten. Nimm daher nacheinander und lege ein Semikolon dahinter. Dies sollte dazu beitragen, die Ursache Ihres Problems einzugrenzen. Zum Beispiel setzen Sie das folgende für sich selbst: (boost :: lambda :: bind (& A :: get_StatusTag, boost :: lambda :: _ 1) == OK); –