考虑具有通过模板模板参数和两个策略定义设置的策略的模板类 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,所以别名声明不可用。我知道这个问题,但在那里我看不到我的问题的解决方案。