首页 > 解决方案 > 为什么允许部分模板特化?

问题描述

我查看了部分模板专业化参数列表并偶然发现了这样一个示例

template <typename>
class function;
template <typename ReturnValue, typename Args,typename Args2>
class function<ReturnValue(Args,Args2)>
{
    //smth
};

究竟是什么意思ReturnValue(Args,Args2)(因为它不是我所知道的类型)以及我可以根据什么规则编写类似的东西?

谢谢

标签: c++

解决方案


因为它不是我所知道的类型

事实上,它是。ReturnValue(Args,Args2)是类型“函数获取ArgsArg2返回ReturnValue”。举个例子:

void foo(int, char);
typedef void FunctionType(int, char);

这里,FunctionType确实是 type void(int, char),也是 的类型foo


推荐阅读