나는 다음과 같은 코드를 가지고 : 한 개체 클래스를 initilaising 때벡터 C++
typedef bool (A::*rule)(shared_ptr<Node >, shared_ptr<Node>) ;
, 나는 나 또한 v_.push_back로 시도 다음 코드
v_ = vector<rule>();
v_.push_back(A::memberFunction);
를 실행합니다 (& A :: memberFunction)보다 논리적 인 것처럼 보였으 나 포럼에서는 에 대해 조언했습니다. 또한 오류 메시지가 나타납니다.
이것은 많은 주제에서 제안한 내용입니다. 그러나 다음과 같은 오류가 나타납니다.
non-const lvalue reference to type 'value_type' (aka 'bool (boost::shared_ptr<Node>, boost::shared_ptr<Node>)')
cannot bind to a temporary of type '<bound member function type>'
내가 잘못 가고있는 곳을 아는 사람이 있습니까? 이 나에게 더 논리적 인 듯하지만 포럼에 대해 조언 한대로
['std :: function'] (http://en.cppreference.com/w/cpp/utility/functional/function) (또는 선택적으로 [Boost 함수 라이브러리] (http : // www. boost.org/doc/libs/1_53_0/doc/html/function.html)). –
'v_.push_back (& A :: memberFunction)을 사용하면 gcc가 4.7.3 – mirk
으로 작동합니다. Clang과 오크. 이상한. – user1018513