Следующий код компилируется нормально:
template
void f(const T &item) { return; }
int main()
{
f("const string literal");
}
Компиляция завершена на ideone: http://ideone.com/dR6iZ
Но когда я упоминаю тип возвращаемого значения, он не компилируется:
template
T f(const T &item) { return item; }
int main()
{
f("const string literal");
}
Теперь он выдает ошибку:
prog.cpp: 6: error: нет соответствующей функции для вызова 'f (const char [21])'
Код на ideone: http://ideone.com/b9aSb
Даже если я сделаю возвращаемый тип const T
, он не компилируется .
] Мой вопрос: