template< template<class T> struct R, class T1 = vector<T> >
Использовать struct при спецификации шаблонного параметра шаблона нельзя, только class, даже в том случае, если инстанцироваться этот шаблон будет шаблоном структуры а не класса.
Идентификатор T в шаблонно параметре не несет никакой нагрузки, его можно не писать, его все равно что нет. А вот при использовании vector<T> будет ошибка, т.к. T нигде не объявлено.
template< template<typename> class R, class T1 = vector<[b]???[b]> >
class Test2
{
typename T1::iterator it;
};
Как это могло работать, остается загадкой.
Posted via RSDN NNTP Server 1.9
--
Справедливость выше закона. А человечность выше справедливости.
R>Использовать struct при спецификации шаблонного параметра шаблона нельзя, только class, даже в том случае, если инстанцироваться этот шаблон будет шаблоном структуры а не класса.
R>Идентификатор T в шаблонно параметре не несет никакой нагрузки, его можно не писать, его все равно что нет. А вот при использовании vector<T> будет ошибка, т.к. T нигде не объявлено.
R>
R>template< template<typename> class R, class T1 = vector<[b]???[b]> >
R>class Test2
R>{
R> typename T1::iterator it;
R>};
R>
Здравствуйте, enots, Вы писали:
E>Здравствуйте, night beast, Вы писали: NB>>была такая мысль NB>>можно посмотреть компилируемый пример?
E>Он то компилится если объект не создавать
я тебя не понимаю, какой объект
см. ответ rg45, объясняющий почему не компилится.
E>а вот пример из книги Джоасаттиса Шаблоны С++ который тоже не компилится
здесь другой случай: на сколько я знаю, нельзя использовать стандартные контейнеры как шаблонные шаблонные параметры. у них (контейнеров) может измениться сигнатура.
пусть меня поправят, если ошибаюсь.
E>
Здравствуйте, night beast, Вы писали:
NB>Здравствуйте, enots, Вы писали:
E>>Здравствуйте, night beast, Вы писали: NB>>>была такая мысль NB>>>можно посмотреть компилируемый пример?
E>>Он то компилится если объект не создавать
NB>я тебя не понимаю, какой объект NB>см. ответ rg45, объясняющий почему не компилится.
что то я не увидел объяснения ... по поводу не использования struct цитата от _DAle_ из стандарта — это я понял.
> какой объект
объект класса шаблона
E>>а вот пример из книги Джоасаттиса Шаблоны С++ который тоже не компилится
NB>здесь другой случай: на сколько я знаю, нельзя использовать стандартные контейнеры как шаблонные шаблонные параметры. у них (контейнеров) может измениться сигнатура. NB>пусть меня поправят, если ошибаюсь.
Здравствуйте, enots, Вы писали:
E>Здравствуйте, night beast, Вы писали:
NB>>Здравствуйте, enots, Вы писали:
E>>>Здравствуйте, night beast, Вы писали: NB>>>>была такая мысль NB>>>>можно посмотреть компилируемый пример?
E>>>Он то компилится если объект не создавать
NB>>я тебя не понимаю, какой объект NB>>см. ответ rg45, объясняющий почему не компилится.
E>что то я не увидел объяснения ... по поводу не использования struct цитата от _DAle_ из стандарта — это я понял.
объясняю
E>>>template< template<classT> class R, class T1 = vector<T> >
class Test {
typedef T1 type;
};
использовать T вне class R нельзя.
потому, что
template<class T> Second {};
Test<Second> x; // какой тип имеет Test::type
то есть
template< template<classT, class S=T /*можно*/> class R, class T1 = vector<T/*нельзя*/> >
зато ты можешь использовать R
template< template<class T> class R, class T1 = R<int> >
"enots" <19635@users.rsdn.ru> wrote in message news:1783919@news.rsdn.ru... > Здравствуйте, rg45, Вы писали: > > > R>Если так, то это совсем другое дело. > > R>Вот пример, показывающий, как можно использовать шаблонные параметры шаблона. > > R>
"enots" <19635@users.rsdn.ru> wrote in message news:1783947@news.rsdn.ru... > Здравствуйте, rg45, Вы писали: > Тогда книженцию по которой шаблончики изучали (только не гворите что много книг изучал и поэтому не скажу ни одной )
Здравствуйте, enots, Вы писали:
E>Здравствуйте, rg45, Вы писали:
>>> >>> можно источник?
R>>Ну вообще то из головы писал, что первое на ум пришло
E>Тогда книженцию по которой шаблончики изучали (только не гворите что много книг изучал и поэтому не скажу ни одной )
Вот это типа очень полный справочник по шаблонам здесь