能够接受任意多个参数的函数,可以利用重载来实现。这种函数的执行过程类似于递归调用,所以必须要有递归终止条件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <iostream>
#include <bitset>
void
print() {}
// 递归终止条件。这是必需的。
template
<
typename
Type,
typename
... Types>
void
print(
const
Type& arg,
const
Types&... args)
{
std::cout << arg << std::endl;
print(args...);
}
int
main()
{
print(1, 3.1415,
"Hello, world!"
, 1.618,
true
, std::bitset<16>(377), 40);
return
0;
}
|
执行后的结果如下:
1
2
3
4
5
6
7
|
1
3.1415
Hello, world!
1.618
1
0000000101111001
40
|