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
上一篇下一篇

猜你喜欢

热点阅读