Создание шаблона класса в качестве параметра шаблона типа, синтаксис?

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 недействителен

Как я могу избежать этого?

0

Решение

class Ключевое слово предназначено только для определения класса шаблона, но не для объявления объекта. Для этого вам просто нужно:

B<A<XY> >* attribute;

Или распространить это для ясности:

typedef A<XY> MyA;
typedef B<MyA> MyB;
MyB* attribute;
3

Другие решения

Ваш вопрос довольно неясен, но я думаю, что вы после параметры шаблона. Сюда :

template <template <class> class U>
class Foo {};

Сейчас Foo шаблон класса, принимающий другой шаблон класса в качестве своего параметра, например так:

template <class V>
class Bar {};

Foo<Bar> theFoo;
1

По вопросам рекламы [email protected]