私は以下のコードでcopy_ifをエミュレートしようとしていますが、私のコンパイラ(g ++ - 4.0)は不平を続けています。技術的に間違っているのは何ですか?ご協力いただきありがとうございます!参考のためboost :: lambda :: if_then for 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)
)
);
}
ポストコンパイルエラー。 –
コンパイルエラーメッセージを投稿して手がかりを与えると助けになるでしょう。 – Glen
あなたの例の各式は、それぞれ独自の式で表現できます。したがって、順番にそれぞれを取って、それの後にセミコロンを入れてください。これは、問題の原因を絞り込むのに役立ちます。たとえば、次のように記述します。(boost :: lambda :: bind(&A :: get_StatusTag、boost :: lambda :: _ 1)== OK); –