1,visitor模式:生成各个对象的visit虚函数
template<typename...Types>
struct Visitor;
template<typename T,typename...Types>
struct Visitor<T,Types...> : Visitor<Types...>
{
public:
using Visitor<Types...>::visit;
virtual int visit(T&)=0;
};
template<typename T>
struct Visitor<T>
{
public:
virtual int visit(T&) = 0;
};
2,不定参:KEY-VALUE不定参数
template<typename K,typename V>
void print(K key,V vue){
cout<<"key: "<<key<<",key type:"<<typeid(key).name()<<",value: "<<vue<<",value type: "<<typeid(vue).name()<<endl;
cout<<"over..."<<endl;
}
template<typename U,typename T,typename ...Args>
void print(U key,T t,Args...arg){
cout<<"key: "<<key<<",key type:"<<typeid(key).name()<<