c++可变参数函数示例
2021-07-21 本文已影响0人
桔子和猫
#ifndef UNTITLED1_MYPRINT_H
#define UNTITLED1_MYPRINT_H
#include <iostream>
//模板多参数写法1 , 递归的方式解包
template<typename T>
void pri(T &&t) {
std::cout << (t) << std::endl;
}
template<typename T, typename ...arg>
void pri(T &&t, arg &&... args) {
pri(t);
pri(args...);
}
//模板多参数写法2, 折叠表达式方式解包
template<typename ...args>
void pri2(args&&... args1) { //模板中使用&&是万能引用, 技能接受左值引用& 也能接受右值引用&&
(..., (std::cout << args1 << std::endl));
//折叠表达式,符号位用, 则形成了逗号表达式, c语言逗号表达式, 由左到右依次求值,最后返回最右边的值
}
//宏的多参数形式
#define print(x...) pri(x)
#endif //UNTITLED1_MYPRINT_H