Здравствуйте, Аноним, Вы писали:
А>Столкнулся с тем что в режиме совместимости с ANSI С++ (/Za), VS2008 перестает видеть члены базового класса, если тот объявлен внутри класса-шаблона. Отсюда вопрос знатокам: это бага маздая или фича ANSI?
А>А>template<class A> class CMain
А>{
А> //
А> public:
А> //
А> class CBase
А> {
А> //
А> public:
А> //
А> int m_aaa;
А> CBase(void) { m_aaa = 0; }
А> };
А> //
А> class CTest : public CBase
А> {
А> //
А> public:
А> //
А> CTest(void)
А> {
А> m_aaa = 0; // компилируется только если включено маздаевское расширение языка С++ или если класс CMain не является шаблоном, иначе верещит что m_aaa не объявлен
А> CBase::m_aaa = 0; // компилируется всегда, в т.ч. и в режиме ANSI С++ (/Za)
А> }
А> };
А>};
А>
m_aaa = 0; // комп ....
заменить на this->m_aaa=0;