// 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?
}
Ci8vIG5vdGU6IHJlZmVyZW5jZSBwYXJhbWV0ZXJzCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgppbmxpbmUgVCBjb25zdCYgbWF4IChUIGNvbnN0JiBhLCBUIGNvbnN0JiBiKQp7CiAgICByZXR1cm4gIChhIDwgYikgID8gIChiKSA6IChhKTsKfQoKaW50IG1haW4oKQp7CiAgICBjaGFyKiBhPSJhcHBsZSI7CiAgICBjaGFyKiBwPSJwZWFjaCI7IAogICAgOjptYXgoYSxwKTsgICAvLyBPSywgQlVUIAogICAgOjptYXgoImFwcGxlIiwicGVhY2giKTsvLyAgPDw8PCBFUlJPUiBJTiBWSVNVQUwgU1RVRElPIDIwMTIsIFdIWT8KfQ==