Several types of patterns

Is it possible to have several types of patterns in C ++?

For instance:

template<template<typename> class BaseClass> class MyClass {}; template<class BaseClass> class MyClass {}; 

And using it;

 // Using the first template (template<typename> class BaseClass) template<typename SubClass> class MyFirstSubClass : public MyClass<MyFirstSubClass> {}; // Using the second template (class BaseClass) class MySecondSubClass : public MyClass<MySecondSubClass> {}; 
+4
source share
2 answers

You cannot have separate templates with the same name, but you can have a base template and one or more specializations of this class.

 template<class BaseClass> class MyClass { }; template<class T, template<typename> class BaseClass> class MyClass<BaseClass<T>> { }; template<> class MyClass<int> { }; 
+2
source

No, It is Immpossible. You will need to have two different classes of templates:

 template<template<typename> class BaseClass> class MyClassA {}; template<class BaseClass> class MyClassB {}; 
+2
source

All Articles