Ошибка вывода аргументов шаблона в MSVC: ошибка?

Следующее не удается скомпилировать на компиляторе VC ++ 8.0 с ошибкой ( Я еще не пробовал его на последней версии компилятора Visual Studio.)

ошибка C2440: 'return': невозможно преобразовать из 'const char *' в 'const char (&) [6]'

template <typename T>
inline T const& compare (T const& a, T const& b)
{
    return a < b ? b : a;
}

int main()
{
    ::compare("string1", "string2");
}

​​Внутри шаблона функции кажется, что строки имеют вид const char (&) [6] .

Насколько мне известно, когда применяется оператор <, массив должен быть преобразован в указатель. Так может ли эта ошибка быть из-за возможной ошибки?

7
задан cpx 14 October 2011 в 21:22
поделиться