美文网首页
c++可变参数函数示例

c++可变参数函数示例

作者: 桔子和猫 | 来源:发表于2021-07-21 11:56 被阅读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
    

    相关文章

      网友评论

          本文标题:c++可变参数函数示例

          本文链接:https://www.haomeiwen.com/subject/mlhjmltx.html