读C++ template的一个简单问题
本人最近开始学习《C++ template,第二章中的例子
template <typename T>
inline const T & _max (const T & a,const T & b)..........................@1
{
return (a<b)?b:a;
}
inline const char * _max(const char *a, const char * b)...................@2
{
return strcmp(a,b)<0?b:a;
}
template <typename T> ....................................................@3
inline const T & _max (const T & a, const T &b, const T &c)
{
return _max(_max(a,b),c);
}
int _tmain(int argc, _TCHAR* argv[])
{
char * a = "abc";
char * b = "def";
char * c = "ghi";
char * r = _max(a,b,c);
return 0;
}
单步跟踪以后调用次序为@3---->@1------>@1 ,请问这个现象如何解释。