최근에 C++ 11 스레드를 사용하고 있으며 뭔가 이상한 일이 생겼습니다. 클래스 내부에서 스레드를 시작할 수있는 메서드를 만들었습니다. 시작 스레드 메소드와 스레드의 콜백 함수는 클래스 메소드입니다.C++의 스레드 11 클래스 구성원이 아닙니다.
void Person::callbackForThread(){
...
}
void Person::startThread(){
this call threads. Something like:
thread(callbackForThread);
}
문제는 저 클래스 메소드이 두 함수를 선언하는 것을 허용하지 않는 C++ 11 : 내 Person.cpp 파일에 내가 가진 명확합니다. 즉, 정상적인 기능으로 선언하면 다음과 같습니다. 즉,
void callbackForThread(){
...
}
void startThread(){
this call threads. Something like:
thread(callbackForThread);
}
모든 기능이 작동합니다. 가능한 경우 C++에서 클래스 내부에서 스레드 및 콜백을 선언 할 수있는 방법을 알고 있습니다. 더 멀리는 라이브러리와 실제 클래스 이름의 포함을 생략했습니다. 이 질문에 표시된 클래스는 실제 데이터가 아닙니다.
생각하지 못했습니다 .... – BossShell