首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模板的部分模板专业化

模板的部分模板专业化
EN

Stack Overflow用户
提问于 2012-06-19 15:32:32
回答 5查看 181关注 0票数 1

我无论如何也不能让它起作用。

我有一个现有的模板:

代码语言:javascript
复制
template <class T>
class MyTemplate;

现在我想专门化它,但是对于一个类T,这是一个模板--而不是进一步专门化第二个模板,例如:

代码语言:javascript
复制
template <>
template <class T>
class MyTemplate<vector> { /*...*/ };

但是,这个语法和我尝试过的其他各种语法似乎不能编译。它的语法是什么?或者这有可能吗?如果没有,是否有可能的MyTemplate替代方案,这样我就可以处理,比如说,vectormap的通用专门化

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-19 15:37:57

我想你在找这个:

代码语言:javascript
复制
template<typename T>
class MyTemplate {...}

template<typename T>
class MyTemplate<vector<T> > {...}

上面,当您创建MyTemplate<vector<int> > x;并且Tint时,将使用部分专门化。

票数 2
EN

Stack Overflow用户

发布于 2012-06-19 15:35:49

正确的语法是:

代码语言:javascript
复制
template < typename T>
class MyTemplate<vector<T> > { /*...*/ };
票数 2
EN

Stack Overflow用户

发布于 2012-06-19 15:39:52

更一般地说

代码语言:javascript
复制
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> > { /* ... */ };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11096372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档