Как еще одна точка данных, 64-разрядная версия компилятора VS 2010 не падает, но вместо этого выдает эту ошибку:
test.cpp(16) : error C2061: syntax error : identifier 'MyClass'
Если определение class MyClass
выходит за пределы main()
, то будут работать и компиляторы x86 и x64.
Очевидно, что сбой компилятора x86 является ошибкой. Я считаю, что использование локального типа MyClass
должно быть хорошо в лямбде (и GCC 4.6.1 с -std=gnu++0x
не имеет проблем с этим), поэтому я думаю, что ошибка, которую выдает компилятор x64, также является ошибкой. 1010 *
В настоящий момент у меня нет доступа к VS 11 Dev Preview, чтобы проверить, сохраняется ли проблема.
VS 11 Dev Preview (cl.exe версия 17.00.40825.2) не имеет проблем с локальным типом MyClass
, используемым в лямбде.