两个模板模板参数,一个需要另一个



这很难描述。我有一个类(Duo)与两个模板模板参数。其中一个类是另一个类的参数,但它仍然没有完全定义,直到我们在Holder中,然后我用只有Holder知道的模板参数实例化Solid

template<class T>
struct Solid
{
T _t;
};
template<template<typename> class SE>
struct Holder
{
SE<int> _se;
};
template<template<typename> class HOLD,
template<typename> class S>
struct Duo 
{
HOLD<S> _mem;
};

int main()
{
Duo<Holder, Solid> a;
return 0;
}

然而,我得到这个编译错误:

29 |     HOLD<S> _mem;
|              ^
main.cpp:29:14: note:   expected a type, got ‘S’

有办法做到这一点吗?

HOLD的参数必须是模板而不是类型:

template<
template<template <typename> class> class HOLD,
template<typename> class S
>
struct Duo

相关内容

  • 没有找到相关文章