Ваша функция будет компилироваться только при неявном преобразовании из int
в T
.Если это ваше намерение, то все в порядке, но на самом деле выглядит не очень хорошо.
Я думаю, будет лучше, если вы переписываете свой код, чтобы вернуть T
, возможно, используя что-то вроде:
//return T(0);
return static_cast<T>(0); // Better alternative as suggested by Steve Jessop
Это явно создает T
из int.Имейте в виду, что если кто-то вызывает этот метод с T
, который может конструировать из int
, он будет работать - независимо от того, что на самом деле означает этот конструктор.