您可以请任何人解释一下模板模板部分特化的正确语法是什么?或甚至可能吗?非常感谢任何帮助
template < typename A >
class X
{
};
template < typename B >
class Y
{
};
template < template< typename > class U, class T >
class Z
{
// there are other methods in class which i don't want to replicate
void func(); // want to specialize this for class X
};
template < template< typename > class U, class T >
void Z< U, T >::func()
{
std::cout << " this is done ";
}
// specialize this for X
template < template< typename > class U, class T >
void Z< X, T >::func()
{
}
答案 0 :(得分:0)
您不能只专注于类模板的一部分。当您部分地专门化类模板时,您需要提供整个声明,而不仅仅是单个函数。
你不能部分专门化一个功能模板。
您可以通过继承做您想做的事。您可以在基类中收集共享方法,然后使用具有异常的方法的部分特化来定义模板化派生类。