class XY{};
template<typename typeA>
class A
{
(...)
};
template<typename typeB>
class B
{
(...)
};
(...)
B<class <class XY>A> * attribute; // <- How can I do that without Syntaxerror
При попытке этого GCC выдает мне следующую ошибку:
xy.h: 19: ошибка: аргумент шаблона 1 недействителен
Как я могу избежать этого?
class
Ключевое слово предназначено только для определения класса шаблона, но не для объявления объекта. Для этого вам просто нужно:
B<A<XY> >* attribute;
Или распространить это для ясности:
typedef A<XY> MyA;
typedef B<MyA> MyB;
MyB* attribute;
Ваш вопрос довольно неясен, но я думаю, что вы после параметры шаблона. Сюда :
template <template <class> class U>
class Foo {};
Сейчас Foo
шаблон класса, принимающий другой шаблон класса в качестве своего параметра, например так:
template <class V>
class Bar {};
Foo<Bar> theFoo;