我不确定我是否使用确切的术语,但是我会尽量保持描述性,以消除任何混淆。
假设我有一个std :: function变量
std::function<void(int)> callback ;
由于超出我的范围的某些原因,我无法更改函数原型。我在代码的某个时刻收到了std :: function变量,我必须调用它。类似这样的事情:
int a = 10 // just an example value
callback(a);
现在我还有另一个变量。让我们将其命名为id。
int id = rand(); // Let us assume that rand here generates a random variable
int a = 10 // just an example value
callback(a);
我希望在回调内部可以访问id,即我正在寻找某种形式的闭包。有没有办法使id
变为静态/全局。
不,你不能那样做。
[callback
没有状态,除非它被设计为具有状态(不是)。
更改