C++ lambda - 捕获静态成员变量
C++ lambda - capture static member variable
我在静态类方法中有一个lambda函数,如下所示:
void
MyClass::foo() {
auto my_lambda = [](int arg) {
// do stuff
}
}
其中foo
是MyClass
的静态方法。现在,在my_lambda
内部,我想引用另一个静态方法bar
MyClass
。我该怎么做?我已经看到了这个问题,但似乎这仅适用于非静态方法,因为静态方法无法引用this
?
这是我对它的天真看法 - 但我可能误解了这个问题。
#include <iostream>
class MyClass {
private:
static int variable; // just some common data
public:
static void another(int dest) { // receiver
std::cout << "I'm alive: " << dest << "n";
}
static void foo();
};
int MyClass::variable = 4; //
void MyClass::foo() {
auto my_lambda = [](int arg) {
another(arg + variable); // reference another static method
};
my_lambda(123);
}
int main() {
MyClass apa;
apa.foo();
}
I'm alive: 127
相关文章:
- C++:是否可以使用非静态成员变量模板?
- 如何在复杂继承中访问静态成员变量
- 静态成员变量不会由 gettext 转换
- 为什么我不能像这样在静态成员函数中调用静态成员变量?
- C++ lambda - 捕获静态成员变量
- 多线程处理中的静态成员变量
- 纯标头库中静态成员变量的正确设置器和 getter
- 如何从具有专用化的类模板定义静态成员变量?
- 为什么可以在没有实例变量的情况下访问静态回调方法中的静态成员变量?
- 声明和定义类静态成员变量不会导致多重声明,这是为什么?
- 为什么不允许静态成员变量的初始化在类中,而允许静态静态成员的初始化
- 类中的静态成员变量和C++中的全局变量有什么区别?
- C++ 静态成员变量 - 文件之间的访问
- 如何在运行时使用静态成员函数初始化静态成员变量
- 模板类中嵌套类的C 静态成员变量
- 如何检查静态成员变量模板?
- 重载运算符和静态成员变量的行为
- 类的静态成员变量(受保护)的作用域
- gcc 和 clang 中 constexpr 静态成员变量的链接器错误
- dll 中静态成员变量的生存期