От: | __LP | ||
Дата: | 17.10.05 20:56 | ||
Оценка: |
Вопрос заключается вот в чем:9.2.3
template<template<typename> class TT> class X { }; template<typename T> class C { C a; // Верно: то же, что и "C<T> a;" C<void> b; // Верно X<C> c; // Ошибка: C без списка аргументов // не определяет шаблон X<::C> d; // Ошибка: <: - диаграф [ X< ::C> e; // Верно: требуется пропуск между < и :: };
template<template<typename> class TT> class X {
};
template<typename T> class C {
C a; // Верно: то же, что и "C<T> a;"
//? Почему "Верно"? ведь C еще не определен полностью.
C<void> b; // Верно
//то же самое...
X<C> c; // Ошибка: C без списка аргументов
// не определяет шаблон
X<::C> d; // Ошибка: <: - диаграф [
X< ::C> e; // Верно: требуется пропуск между < и ::
//Почему внутри треугольных скобок писать 'просто С' нельзя,
//а надо именно ::С? Собственно в этом и основной вопрос!!
};