Здравствуйте, Aleх, Вы писали:
A>Такой код не компилируется:
A>A>struct XXX
A>{
A> void bar()
A> { }
A> void foo()
A> {
A> class YYY
A> {
A> int x = 123;
A> };
A> bar(); // < error C2352: 'XXX::bar': illegal call of non-static member function
A> }
A>};
A>
A>Видимо при выходе из скоупа компилятор не восстанавливает контекст. Баг содержится как в 2013, так и в 2015 студиях.
Мне кажется, что это далеко не единственная проблема в реализации поддержки local классов в студии. Даже когда все собирается без ошибок, случались проблемы при отладке и странное поведение в релиз сборках. local классы это не самая популярная (и не самая полезная) особенность языка, наверное поэтому им уделяют мало внимания.
А вообще стоило бы сразу на
http://connect.microsoft.com/VisualStudio написать, авось исправят.
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.