C++11 变长参数模板 & 如何展开变长参数

https://blog.csdn.net/CodeBowl/article/details/119902935

  1. 通过typename ... Args指定变长参数。
  2. 通常通过递归展开各个参数, 使用sizeof ... (args)获取变长参数个数。
  3. C++17 可以使用对if后的表达式使用constexpr进行条件编译。
#include <iostream>
using namespace std;

template<typename T0, typename ... Args>
void varArgsFunc(T0 t0, Args ...args){
    cout<<t0<<endl;
    if constexpr(sizeof...(args) > 0){
        varArgsFunc(args...);
    }
}

int main() {
    
    varArgsFunc(1, "afdaj", 2.2, 4);
    return 0;
}

// 1
// afdaj
// 2.2
// 4
  1. 应用举例:emplace_back(Args && ...);

posted on 2023-02-23 10:35  七昂的技术之旅  阅读(50)  评论(0编辑  收藏  举报

导航