代码之家  ›  专栏  ›  技术社区  ›  Daniel Wolf deepee1

在VS2010中,lambda似乎不适用于ref类

  •  5
  • Daniel Wolf deepee1  · 技术社区  · 16 年前

    VisualStudio 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 = [](){ ; };
        }
    };
    

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

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

    1 回复  |  直到 16 年前
        1
  •  2
  •   GManNickG    16 年前

    Looks like 它正在考虑将来的版本。也就是说:“我们会成功的。”

    推荐文章