首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >组合策略类-模板参数和可变模板

组合策略类-模板参数和可变模板
EN

Stack Overflow用户
提问于 2014-02-21 16:01:58
回答 3查看 468关注 0票数 4

我想知道是否可以使用各种模板-模板参数组合策略类,以便每个策略都有自己的模板包。似乎您只能在所有策略中共享一个模板包,但我希望不是这样。

以下几点似乎是可能的:

代码语言:javascript
运行
复制
template <
    class T,
    template <class, typename...>   class Policy1,
    template <class, typename...>   class Policy2,
    template <class, typename...>   class Policy3,
    typename... Args    
>
struct PolicyClass 
    : public Policy1     <ObjT, Args...>
    , public Policy2     <ObjT, Args...>
    , public Policy3     <ObjT, Args...>    {}

我希望每个政策都有自己的包,这样我就能做这样的事情(?):

代码语言:javascript
运行
复制
template <class T>
struct implementedPolicy1 {};
template <class T>
struct implementedPolicy2 {};
template <class T, class A>
struct implementedPolicy3 {};

PolicyClass <ObjT, 
             implementedPolicy1,
             implementedPolicy2,
             implementedPolicy3<AType>
            >

每个策略都使用相同的对象类型,但是第三个策略有一些进一步的模板。我知道上面的代码是不正确的--只是想说明我想要做什么。

谢谢

EN

Stack Overflow用户

发布于 2014-02-21 16:22:55

请注意,您可能有以下内容:

代码语言:javascript
运行
复制
template <class T,
          template <class> class Policy1,
          template <class> class Policy2,
          template <class> class Policy3>
struct PolicyClass : public Policy1<ObjT>,
                     public Policy2<ObjT>,
                     public Policy3<ObjT>
{};

template <class T> struct implementedPolicy1 {};
template <class T> struct implementedPolicy2 {};
template <class T, class A> struct implementedPolicy3 {};

// Adapt the policy interface
template <class T>
using myImplementedPolicy3 = implementedPolicy3<T, AType>; // Assuming AType exist

PolicyClass <ObjT, implementedPolicy1, implementedPolicy2, myImplementedPolicy3> policies;
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21939217

复制
相关文章

相似问题

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