我想知道是否可以使用各种模板-模板参数组合策略类,以便每个策略都有自己的模板包。似乎您只能在所有策略中共享一个模板包,但我希望不是这样。
以下几点似乎是可能的:
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...> {}我希望每个政策都有自己的包,这样我就能做这样的事情(?):
template <class T>
struct implementedPolicy1 {};
template <class T>
struct implementedPolicy2 {};
template <class T, class A>
struct implementedPolicy3 {};
PolicyClass <ObjT,
implementedPolicy1,
implementedPolicy2,
implementedPolicy3<AType>
>每个策略都使用相同的对象类型,但是第三个策略有一些进一步的模板。我知道上面的代码是不正确的--只是想说明我想要做什么。
谢谢
发布于 2014-02-21 16:22:55
请注意,您可能有以下内容:
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;https://stackoverflow.com/questions/21939217
复制相似问题