다음 코드로 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); –