現在、テンプレートに関する本を読んでおり、次の例が示されています。
#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]' に変換できません
誰かが私にこれを説明してもらえますか? 本にはこれでいいと書いてありますが、古い本なので、まだ新しい本を待っています。