[GCC][Comeau] Зависимость типа от шаблонного параметра
От: astral_marine  
Дата: 01.05.08 09:48
Оценка:
Ошибка проявляется только в GCC и Comeau C++ Online.
Visual C++ 7.1 хавает код на ура.


template <typename X>
class A
{
public:
    typedef X x_type;
};

template <typename X>
class B : public A<X>
{
    typedef A<X> base_type;
    //typedef typename base_type::x_type x_type; // С этим все компилируется

public:
    B()
    {
        x_type x; // Comeau C++: error: identifier "x_type" is undefined
    }
};

class C : public B<int>
{
public:
};

C g_c;


Почему так происходит, зачем стандарт требует ошибки в этом случае?
Ведь нет никакой двузначности и есть откуда взять всю необходимую информацию.

Как написать код так, что бы не писать в каждом наследуемом классе для каждого зависимого типа typedef?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.