1. 参数包(parameter pack) (1)模板参数包(以tuple为例):template<typename… Elements>class tuple ①Elements标识符的左侧使用了省略号,在C++11中Elements被称为“模板参数包”,表示可以接受任意多个参数作为模板参数。 ...
分类:
其他好文 时间:
2017-11-04 22:27:36
阅读次数:
313
这是昨天和今天写的东西,利用C++的可变模板参数包以及包展开,模式匹配的一些东西做的,感觉用typename...比轮子叔那个List>>的设计要好看不少。List有一个很巧妙的继承,只有那么做才能使用类似于List::Rest的写法,直接定义成templateList是不行的。Change这里可以...
分类:
编程语言 时间:
2015-09-02 22:05:13
阅读次数:
290
静态链表是使用数组实现的可以快速插入和删除数据的链表,静态链表和链式单链表比的缺点在于链表的长度只能初始化设置好,而相对应普通的顺序存储的链表,静态链表不能实现快速的读写任意的元素。
当然静态链表给了我们一种思考方式,当我们在特定状态下,不能使用指针操作时,我们可以使用一种替代指针的方法,静态链表使用的cur来表示当前节点的下一个节点的下标。
#pragma once
#define MAXS...
分类:
编程语言 时间:
2015-07-22 14:49:55
阅读次数:
126
参考自:深入理解C++11
变长模版:
变长函数和变长的模版参数
变长函数:
double
sum(int n, ...)//求n个double数据之和
{
double
sum = 0;
va_list
args;//接受输入数据的数据结构,需声明stdarg.h,
va_start(args...
分类:
编程语言 时间:
2015-06-16 13:05:38
阅读次数:
146
template
void fun(ARGS ... args)
首先明确几个概念
1,模板参数包(template parameter pack):它指模板参数位置上的变长参数,例如上面例子中的ARGS
2,函数参数包(function parameter pack):它指函数参数位置上的变长参数,例如上面例子中的args
一般情况下 参数包必须在最后面,例如:
tem...
分类:
编程语言 时间:
2014-06-15 13:37:16
阅读次数:
363