C部分方法专业化

C部分方法专业化,第1张

概述模板类方法有部分专业化吗? template <class A, class B> class C { void foo(); } 它不能像这样专门化: template <class A> void C<A, CObject>::foo() {}; 任何帮助? 如果你已经有了专门的课程,你可以在专业课上给予不同的foo实现: template<typename A, typename 模板类方法有部分专业化吗?
template <class A,class B> class C {  voID foo(); }

它不能像这样专门化:

template <class A> voID C<A,CObject>::foo() {};

任何帮助?

解决方法 如果你已经有了专门的课程,你可以在专业课上给予不同的foo实现:
template<type@R_502_6889@ A,type@R_502_6889@ B>class C{public:    voID foo() { cout << "default" << endl; };};template<type@R_502_6889@ A>class C<A,CObject>{public:  voID foo() { cout << "CObject" << endl; };};

要在Visual C 2008专业化成员函数,您可以使其模板:

template<type@R_502_6889@ A,type@R_502_6889@ B>class C{  template<type@R_502_6889@ T>  voID foo();  template<>  voID foo<CObject>();};

上述解决方案似乎仅在将来的C标准(根据草案n2914 14.6.5.3/2)才可用.

总结

以上是内存溢出为你收集整理的C部分方法专业化全部内容,希望文章能够帮你解决C部分方法专业化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1251040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存