1.Function Template可以針對不同的Template arguments完成一個系列的函數(shù)
例如
template<typename T>
inline T const & max(T const &a,T const &b)
{
???return???a>b?a:b;
}
2.Function template可以從傳遞過來的arguments的類型來具體化
int a = ::max(10,20);
那么Function template 就具體化為
inline int const& max(int const &a,int const & b)
3.你可以具體指出它的參數(shù)類型
int a = ::max<int>(10,20);
4.Function template可以被重載overloaded
inline T const& max(T const &a,T const &b,T const &c)
{
???return ::max(::max(a,b),c);
}
當然記住一點,重載的相似點越小越好