是否可以设置模板的某些参数并将其余参数保留为模板参数?类似于创建新模板类的东西,与第一个模板类相同但模板参数数量较少。
A无法解释清楚。也许有几行代码可以帮助。
template<int A, typename B>
class XXX
{
//Some code
};
template<template<typename> class C>
class YYY
{
//Some code
};
template<int D>
class ZZZ
{
YYY<XXX<D> > object; //This is wrong. How to do it?
};
我找不到任何能够实现这一目标的机制。
修改 我选择的例子不正确。 ZZZ类看起来像:
template<int D>
class ZZZ : public YYY<XXX<D> >
{
//Some code
};
答案 0 :(得分:1)
template<class T>using WWW=XXX<D,T>;
或者,如果您没有空间来执行using
参数:
template<int D>struct WW{
template<class T>using W=XXX<D,T>;
};
template<int D>
class ZZZ : public YYY<WW<D>::template W>
我建议使用不同的名字。
答案 1 :(得分:0)
Yakk的回答让我意识到我可以创建定义新类的结构。
template<int E>
struct SetPrameter
{
template<typename T>
using XXX = XXX<E, T>;
};
我可以这样使用它:
template<int D>
class ZZZ : public YYY<typename SetPrameter<D>::XXX>
{
//Some code
};