class A { public: int xx(int size) { } public: int xx(int size) { } int yy(int size) { } }; int main() { typedef int (A::*functions)(int); std::vector<functions> methods = { &A::xx, &A::yy }; A aa; boost::thread_group thgrp; for (typename std::vector<functions>::iterator itr=methods.begin();itr!=methods.end();++itr) { functions z=*itr; boost::thread *t=new boost::thread(z,aa,10); thgrp.add_thread(t); } thgrp.join_all(); return 0; }
내가 오류 " 'get_pointer의'에 대한 호출에 대한 일치"기능을 얻고있다
부스트 스레드를 통해 함수 포인터를 호출하는 방법에 대해 설명합니다. 부스트 스레드를 사용하여 미리 정의 된 유형의 벡터에서 메서드를 호출하고 싶습니다.
제발 도와주세요!
아마도'& aa'를 보냅니 까? – WhozCraig
... 그리고 그것은 유효한 C++ 코드가 아닙니다. 동일한 이름 ('xx')과 서명 ('int')을 가진'A' 클래스에 대한 두 멤버가 있습니다. 그리고'xx' 나'yy'도 아무것도 반환하지 않습니다.하지만 그렇게 선언됩니다. – WhozCraig