Лямбда-выражения (C++0x) не работают в C++/CLI?

Если я напишу это

std::function<int()> myFunction = []() {return 42;};

в C++/CLI под VS2010 (в классе модульного тестирования MSTest, если это имеет значение) я получаю ошибку компилятора C3809: a managed type cannot have any friend functions/classes/interfaces,

Рассматривается ли лямбда как друг, потому что она может обращаться к локальным переменным, даже если это не так?

С другой стороны, это прекрасно работает:

int ThatOldJokeAgain()
{
    return 42;
}
[...]
std::function<int()> myFunction2 = ThatOldJokeAgain;

Есть ли способ заставить лямбды работать в C++/CLI? Или моя ошибка что-то совершенно другое?

0 ответов

Другие вопросы по тегам