Инстанцирование по умолчанию.
От: AKh  
Дата: 29.10.07 13:42
Оценка:
Сначала код:


template <class T>
class A {
    public:
        void a() {
            T t;
            t.t();
        };
};

class X {
    public:
        void t() {
            cout << "X" << endl;
        };
};
typedef A<X> B;

class Y {
    public:
        void t() {
            cout << "Y" << endl;
        };
};

int main() {

    B<Y> b1;
    b1.a();

    B b2;
    b2.a();

    return 0;
};





По типу такого gcc-3.3.3 компилит на ура . На самом деле, я не должен был делать B<Y>, а просто должен был указывать B. Скомпилив на msvc8 получил, еррор и увидел эту ситуацию. Теперь вопрос: что это у gcc — фича или бага? И если фича — то по стандарту? Получается сабж?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.