【发布时间】:2015-10-07 12:32:28
【问题描述】:
有这样的模板类(我的意思是简化了):
template <typename TYPE> class Wrapper
{
TYPE m_tValue;
void DoSomething();
};
template <typename TYPE> class Array
{
TYPE * m_pArray;
};
是否有可能(以及如何?)专门化方法Wrapper<Array<TYPE>>::DoSomething()?
我的意思是,我可以通过定义将这个方法专门用于int 类型:
template <> void Wrapper<int>::DoSomething(){...};
但是我如何专门针对 Array 而保持 Array 不专门?
当然,我可以写:
template <> void Wrapper<Array<int>>::DoSomething(){...};
但这根本不是通用的,并且与模板的优势相矛盾。
我尝试过类似的东西
template <typename T> void Wrapper<Array<T>>::DoSomething(){...};
但我有编译错误。
我想知道正确的方法是什么?谢谢
【问题讨论】:
标签: c++ templates template-specialization partial-specialization