c++ 可變參數模板展開

#include <iostream>
#include <vector>
#include <climits>
#include <cstdint>
#include <type_traits>
#include <utility>

void printer()
{

}
template<class T>
void printer(T a) {
    std::cout << a << std::endl;
}

//c++11

template<class ...Args>
void printer(Args&&... args) {
    using expander = int[];

    expander{ (printer(args),0)... };//逗號表達式
}

template<class T>
void printer(T a) {
    std::cout << a << std::endl;
}
template<class ...Args>
void printer(Args&&... args) {
   (printer(args), ...);//摺疊表達式
}
 

int main()
{
    printer(1, 2, 3, "abc");
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章