コード:リファレンスラムダ関数を使用して関数を呼び出す方法は?
typedef void(*callbackType) (int);
callbackType globalCallback;
void setit(callbackType callback) {
globalCallback = callback;
}
int main() {
int localVar = 5;
setit([](int num) {
std::cout << localVar; // there is an error here
});
}
は、私は私は私が[&] {}
を使用する必要が推測setit
に送ることラムダ関数でlocalVarを使用する必要がある。しかしどのようにすることができます私がやる?私はどのように宣言すべきですsetitとglobalCallback?
lambdasのキャプチャは関数ポインタに変換されません。代わりに 'std :: function'を使用してください。 –