![]() |
1
3
解决这个问题的另一种方法是使用一些小结构,如
这具有在编译时进行评估(总结)的优点。
我使用了两种结构。一个用于执行递归(GetSize),另一个用于获取类型的实际大小(GetTypeSize)。专业化的
对于
那就是
|
![]() |
2
3
首先是一个函数模板,它将单个类型转换为其大小,可能带有特殊化:
接下来,pack将类型包扩展为
的显式类型
|
![]() |
3
1
如果您只想编辑getSize函数,那么将第一个函数的模板T初始化为void,并为void类型添加一个额外的模板函数以返回0。它将如下所示:
当foo<>(),默认情况下T将设置为void,将调用最后一个函数而不是其他函数,并返回0作为大小。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |