Lambdas似乎不适用于VS2010中的ref类

Dan*_*olf 5 lambda c++-cli c++11

Visual Studio 2010中一个很酷的新C++特性是lambda表达式.但是,我无法让他们在托管类中工作.

class UnmanagedClass {
    void Foo() {
        // Creating empty lambda within unmanaged class.
        // This compiles fine.
        auto lambda = [](){ ; };
    }
};

ref class ManagedClass {
    void Foo() {
        // Creating empty lambda within managed class.
        // This creates error C3809:
        // A managed type cannot have any friend functions/classes/interfaces.
        auto lambda = [](){ ; };
    }
};
Run Code Online (Sandbox Code Playgroud)

我最好的猜测是编译器将匿名函数类创建为友元类,即使我从不使用类成员.这似乎意味着lambda不能在ref类中使用.

当我读到VS2010将lambda表达式添加到C++时,我感到非常高兴.有人知道如何让他们在ref类中工作吗?

GMa*_*ckG 2

看起来未来的版本正在考虑它。也称为:“我们会成功的。”