나는 문제가있는 예제를 사용할 것이지만 가능한 한 일반적인 주제로 유지하려고 노력할 것이다. 나는 std::bind
을 사용하여 입력 매개 변수를 취하는 다른 함수에서 바인드하려는 void (*)()
유형의 매개 변수를 사용하는 함수가 있습니다. 이 작업을 수행 할 수 있습니까? obj1
, obj2
및 obj3
전역을 제외하고전역을 사용하지 않고 함수 포인터 콜백에 정보를 전달할 수 있습니까?
void callback(Obj obj1, Obj obj2, Obj obj3)
{
// do something with the object and display data
}
// meanwhile, in main()
std::function<void()> callbackFunctor = &std::bind(callback, obj1, obj2, obj3);
// the following doesn't work because glutIdleFunc expects a type void (*)()
glutIdleFunc(callbackFunctor);
- (해결 방법을 상기 다음이 작동하지 않는 것을 확인 convert std::bind to function pointer, 내가이 글을 읽을했다)
: 아래 freeglut에서 내 예입니다 , 어떻게 정상적으로 GLUT의 유휴 콜백에 정보를 전달합니까?