我无论如何也不能让它起作用。
我有一个现有的模板:
template <class T>
class MyTemplate;现在我想专门化它,但是对于一个类T,这是一个模板--而不是进一步专门化第二个模板,例如:
template <>
template <class T>
class MyTemplate<vector> { /*...*/ };但是,这个语法和我尝试过的其他各种语法似乎不能编译。它的语法是什么?或者这有可能吗?如果没有,是否有可能的MyTemplate替代方案,这样我就可以处理,比如说,vector和map的通用专门化
发布于 2012-06-19 15:37:57
我想你在找这个:
template<typename T>
class MyTemplate {...}
template<typename T>
class MyTemplate<vector<T> > {...}上面,当您创建MyTemplate<vector<int> > x;并且T为int时,将使用部分专门化。
发布于 2012-06-19 15:35:49
正确的语法是:
template < typename T>
class MyTemplate<vector<T> > { /*...*/ };发布于 2012-06-19 15:39:52
更一般地说
template<typename A, typename B> class MyTemplate;
template<typename C, typename D> class SomeTemplate;
template<typename A, typename C>
class MyTemplate<A, SomeTemplate<C,A> > { /* ... */ };https://stackoverflow.com/questions/11096372
复制相似问题