dimanche 8 octobre 2017

C++11/14/17 : template class pointer as template parameter

Is it possible to declare a template function using a template class pointer? Something like this :

template <typename FirstType, typename ... TypesRemaining>
class MyClass
{
  // ...
};

template <int n, template <typename FirstType, typename ... TypesRemaining> typename MyClass<FirstType, TypesRemaining...>::*ptr> myFunction() { 
  // ...
}

Is it possible to use 'using' to declare the pointer type? Something like this :

template <typename FirstType, typename ... TypesRemaining>
class MyClass
{
  // ...
};

template<typename FirstType, typename ... TypesRemaining>
using ptrMyClass = MyClass<FirstType, TypesRemaining...>*;

template <int n, template <typename FirstType, typename ... TypesRemaining> typename ptrMyClass<FirstType, TypesRemaining...> ptr> myFunction() { 
  // ...
}

Many thanks

Aucun commentaire:

Enregistrer un commentaire