5
Visual Studio 2010中的一個很酷的新C++特性是lambda表達式。但是,我無法讓他們在託管類中工作。Lambdas似乎無法在VS2010的參考類中使用
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 = [](){ ; };
}
};
我最好的猜測是編譯器創建匿名函數類作爲朋友類,即使我從來沒有使用類成員。這似乎意味着在ref類中不能使用lambda表達式。
當我讀到VS2010將lambda表達式添加到C++時,我非常高興。有人知道如何讓他們在裁判職位內工作嗎?
公平地說,lambda是C++ 0x標準的一部分。 C++/CLI是完全不同的,你不應該期待所有的東西都能像這樣傳輸。 (順便說一下,也許這只是你的風格,但你不需要在lambda中使用空的';')。 – GManNickG 2010-01-25 22:56:18