使用模板模板参数作为类函数的返回类型

时间:2016-03-24 22:39:05

标签: c++ templates c++14

我创建了以下模板结构,其中第二个模板参数是模板模板参数。我想将它用作突然结构函数的返回类型。

template<typename T, template<typename /*T*/, typename /*U*/> typename V>
struct MyStruct
{
   V myFunction();
}

我尝试返回V,但它显然不起作用。然后我尝试返回V<T, U>,但它也不起作用。我应该将U参数声明为MyStruct的第三个模板参数,还是有其他方法可以做我想做的事情?

1 个答案:

答案 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();
};