首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显式专门化的成员也需要显式专门化其包含的类模板

问显式专门化的成员也需要显式专门化其包含的类模板
EN

Stack Overflow用户
提问于 2015-01-13 03:18:55
回答 1查看 175关注 0票数 3

我在很多文章中读到,对于专门化成员模板时的类模板,包含专门化成员模板的类也应该显式专门化。在标准中有关于它的一点吗?有任何理由有这样的限制吗?我是说在引擎盖下。

为什么这是不允许的。

代码语言:javascript
复制
template <typename T>
class A
{
   template <typename U>
   void foo()
   {}
};

template <typename T>
 template <>
void A<T>::foo<int>()
{}
EN

回答 1

Stack Overflow用户

发布于 2015-01-13 03:31:29

temp.expl.spec/16:

在出现在命名空间作用域中的类模板或成员模板的成员的显式专门化声明中,成员模板及其包含的一些类模板可以保持非专门化,除非如果没有显式专门化类成员模板的封闭类模板,则声明不应显式专门化该类成员模板。示例:

template class A{ template class B{ template void mf1(T3);void mf2();};};template <> template class A::B { template void mf1( t);};template <> template <> template void A::B::mf1(T T){} template <> void A::B::mf2() {} //格式不正确;B是专门化的//但它的封闭类模板A不是专门化的

-结束示例

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27909185

复制
相关文章

相似问题

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