0
나는이 기능을 가지고있다. 그러나 멤버 함수 나 멤버 함수에 정의 된 람다를 전달할 수는 없습니다.콜백 매개 변수는
void class::memberFunc() {
void func((void(*)(float))([](float m){}));
}
을하지만 람다는 통화에서 무시처럼 보인다 :
나는 이런 식으로 뭔가를 캐스팅했습니다. 그리고 멤버 함수를 어떻게 넘겨 줄지 전혀 모르겠습니다.struct T {
T(int x) : x(x) {};
void foo() {
std::cout << x;
}
int x;
};
객체 포인터 기능에 내재 된 첫 번째 매개 변수이며, boost::function
를 처리 할 때이 명시된다 :
C++ lambdas는 함수가 아니라 함수 객체이므로 람다를 함수 포인터로 캐스트하면 정의되지 않은 동작이 발생합니다. – ildjarn
좋아, 그래서 함수에 람다를 전달하는 방법? –
@ user408141 : 함수를 템플릿으로 만들거나 (전달할 내용을 모르거나 신경 쓰지 않아도 됨) 함수가 적절한 서명의'std :: function <>'을 취하도록합니다. – ildjarn