c++11可變長參數(shù)-遞歸以及typeinfo類的使用

/**
?* clang++ main2.cpp -std=c++11
?* 可變長參數(shù), typeinfo 類, 遞歸
?*/
#include <iostream>
#include <vector>
#include <typeinfo>
void print() {
std::cout << "北太天元" << std::endl;
}
template<typename T, typename... Types>
void print(const T& firstArg, const Types&... args) {
???std::cout << firstArg << " " << sizeof...(args) << std::endl; // sizeof ... args代表獲取參數(shù)個數(shù)
???print(args...);
???const size_t n_args = sizeof...(args);
?const std::type_info *infos[n_args] = {&typeid(args)...};
???std::cout<<"可變長參數(shù)的個數(shù)是?"<< n_args <<std::endl;
???if( typeid(int32_t ) == *infos[0] ){
??????std::cout<<"第0個參數(shù)是int32_t"<<std::endl;
??????std::cout<< "int32_t類型的名字是 "<< infos[0]->name() << std::endl;
???}
???for(int i=0; i<n_args; i++){
??????std::cout<< "第 "<<i<<"/"<<n_args <<" 類型的名字是 "<< infos[i]->name() << std::endl;
???}
}
int main(int argc, char *argv[]) {
???print("baltamatica", 3, "baltam", std::string("baltam_string") );
???return 0;
}