c++ - 为什么允许部分模板特化?
问题描述
我查看了部分模板专业化参数列表并偶然发现了这样一个示例
template <typename>
class function;
template <typename ReturnValue, typename Args,typename Args2>
class function<ReturnValue(Args,Args2)>
{
//smth
};
究竟是什么意思ReturnValue(Args,Args2)
(因为它不是我所知道的类型)以及我可以根据什么规则编写类似的东西?
谢谢
解决方案
因为它不是我所知道的类型
事实上,它是。ReturnValue(Args,Args2)
是类型“函数获取Args
和Arg2
返回ReturnValue
”。举个例子:
void foo(int, char);
typedef void FunctionType(int, char);
这里,FunctionType
确实是 type void(int, char)
,也是 的类型foo
。
推荐阅读
- android - 如何使用 Android Studio 显示隐藏的应用程序
- python - wx.ComboCtrl 和 wx.ListCtrl 突出显示背景和大小
- typescript - 资源处理程序返回消息:“模型验证失败(#/VpcSubnetIds:预期的最小项目数:2,找到:1)”
- json - [Spring-boot,restTemplate]JSON 解析错误:无法从对象值反序列化类型 XXXX 的值(令牌`JsonToken.START_OBJECT`)
- sql - oracle sql中如何连接3个表
- java - jit 编译器与反射
- clojure - 如何让 Clojure 使用多个库?什么是 Clojure 等价于 Java 中的 folder.*?
- sql-server - SQL Server Reporting Service (SSRS) - 使用两列中的值计算百分比
- rust - 与返回 Ok() 分支相比,Infallible Result 的意义何在?
- python - requirements.txt 中的未知包 - andas、cipy