我目前正在阅读一本关于模板的书,它给出了以下示例:
#include <string>
// note: reference parameters
template <typename T>
inline T const& max (T const& a, T const& b)
{
return (a < b) ? (b) : (a);
}
int main()
{
char* a="apple";
char* p="peach";
::max(a,p); // OK, BUT
::max("apple","peach");// <<<< ERROR IN VISUAL STUDIO 2012, WHY?
}
我不明白为什么 VS2012 说:
错误 C2440:'return':无法从 'const char *' 转换为 'const char (&)[6]'
请有人向我解释一下吗?书上说应该没问题,但这是一本旧书,我还在等待新书。