我创建了以下模板结构,其中第二个模板参数是模板模板参数。我想将它用作突然结构函数的返回类型。
template<typename T, template<typename /*T*/, typename /*U*/> typename V>
struct MyStruct
{
V myFunction();
}
我尝试返回V
,但它显然不起作用。然后我尝试返回V<T, U>
,但它也不起作用。我应该将U
参数声明为MyStruct
的第三个模板参数,还是有其他方法可以做我想做的事情?
答案 0 :(得分:1)
您错过了V
的参数列表。但是,如您所说,您无法使用V<T, U> myFunction();
。如果您想使用U
或其他任何需要添加的内容。例如:
template<typename T, template<typename /*T*/, typename /*U*/> typename V, typename P>
struct MyStruct {
V<T, P> myFunction();
};