C++11支持在模板函数中使用默认的模板参数
#include <iostream>
#include <typeinfo>
using namespace std;
template<class T = int>
void Size(T t = 0)
{
cout<<"the sizeof of "<< typeid(T).name() << " is:" << sizeof(t) << endl;
}
class A{};
int main()
{
Size(); //实例化默认模板参数,同时使用了函数的默认参数,输出:the sizeof of i is:4
Size(1); //实参推导模板参数,输出:the sizeof of i is:4
Size<char>(); //实例化模板函数,输出:the sizeof of c is:1
Size<void*>(); //实例化模板函数,输出:the sizeof of Pv is:8
A a;
Size(a); //实参推导模板参数,输出:the sizeof of 1A is:1
Size(&a); //实参推导模板参数,输出:the sizeof of P1A is:8
return 0;
}