룩업에서봤을 때, 구문은 정확하지만 제 컴파일러 (VS2015)는 불평하고 있습니다. 참고, 네트워크 클래스와 함께 네임 스페이스 ee를 사용하고 있습니다. 코드는 다음과 같습니다.C++ 11 - 멤버 함수를 쓰레드에 전달하면 다음과 같은 결과가 나옵니다. 오버로드 된 함수가 2 개의 인수를 취하지 않습니다.
//code that doens't work
thread clientThread(&ee::Network::clientRun, new ee::Network);
* 참고 : 실제 코드에서 나는 새로운 것을 인자로 부르지 않고 있습니다. 코드를 단축하기 위해 여기에서했습니다.
나는 기능을 테스트하고 작동하며 스레드를 사용하여 작동시키지 못한다. 여기에 그들의 서명이 있습니다.
void serverRun();
void clientRun();
void clientRun(string ip);
내 오류는 다음과 같습니다
오류 C2661 '표준 : : 스레드 : 스레드'더 오버로드 된 함수가 2 개 인자
소요 ABC 생성자 "표준없이 예 :: thread :: thread "는 인수 목록과 일치합니다.
누가 어떤 일이 일어날 지에 대한 통찰력이 있습니까? 이 상황에서?
은 아마도 그리 바보하지 질문, 당신은 바로''을 포함? 우리는 여기에서 할 일이별로 없습니다. –
WhozCraig
Visual C++ 오류 코드처럼 보입니다. 사용중인 버전은 무엇입니까? –
또한 모호성 문제가 있습니다. try void (ee :: Network :: * threadProc)() = & ee :: Network :: clientRun; thread clientThread (threadProc, new ee :: Network); ' –