c – 模板模板参数,模板参数数量错误

c – 模板模板参数,模板参数数量错误,第1张

概述考虑模板类C,其中包含通过模板模板参数设置的策略和两个策略定义: template<class T> struct PolicyOne { };template<class T, int U, int V> struct PolicyTwo { };template<class T, template<class> class POLICY> struct C { POLICY<T> poli @H_403_0@考虑模板类C,其中包含通过模板模板参数设置的策略和两个策略定义:
template<class T> struct PolicyOne { };template<class T,int U,int V> struct PolicyTwo { };template<class T,template<class> class POliCY> struct C { POliCY<T> policy; };voID f(){    C<int,PolicyOne> mc1;    C<int,PolicyTwo<1,2> > mc2; // doesn't work this way}

由于模板参数数量错误,PolicyTwo无效.
如果指定其他模板参数的类型,是否可以使用PolicyTwo作为POliCY模板参数?

我正在使用C 03,因此别名声明不可用.
我知道this question,但我没有看到我的问题的解决方案.

解决方法 根据策略的使用方式,您可以使用继承代替别名模板进行管理:
template<int U,int V> struct PolicyTwoAdaptor {  template<class T> struct type: PolicyTwo<T,U,V> { }; };C<int,PolicyTwoAdaptor<1,2>::type> mc2;
总结

以上是内存溢出为你收集整理的c – 模板模板参数,模板参数数量错误全部内容,希望文章能够帮你解决c – 模板模板参数,模板参数数量错误所遇到的程序开发问题。

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

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

原文地址:https://54852.com/langs/1244374.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存