Бага маздая или фича ANSI?
От: Аноним  
Дата: 28.06.10 06:56
Оценка:
Столкнулся с тем что в режиме совместимости с 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)
                }
    };
};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.