我有一个看起来像这样的类:
class MyClass {
static Microsoft::WRL::ComPtr<ID3D11VertexShader> vertexShader;
static void Setup(Device* device) {
auto createVSTask = loadVSTask.then([this, device]() {
DX::ThrowIfFailed(
device->CreateVertexShader(&vertexShader));
}
}
我不能在 lambda 中使用 this
因为函数是静态的。我应该改用什么?
最佳答案
您不需要this
指针来访问静态方法或变量。只需从您的捕获列表中删除 this
,代码就会起作用。
static void Setup(Device* device) {
auto createVSTask = loadVSTask.then([device]() {
DX::ThrowIfFailed(
device->CreateVertexShader(&vertexShader));
}
关于c++ - 在静态函数的 lambda 中捕获相当于 'this' 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27466199/