#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");
}