Предположим, что есть функция, и она работает
template <typename T>
Range<T> IRange(T lower, T upper){
....
}
Итак
IRange(0,5)
создаст Range
со значениями [0,1,2,3,4]. Точное поведение класса Range
не важно.
Однако теперь я хочу вспомогательную функцию
template <typename T>
Range<T>
Repeat(T t){
return IRange(T(), t);
}
так что
Repeat(5)
также выдаст Range
со значениями [0,1,2,3,4].
Вопрос:
Является ли использование T()
для получения значения ноль в общем приемлемым?
Я так думаю, но что-то меня раздражает, что это может быть неправильно.
В основном этот класс будет использоваться с целочисленными типами, но все остальное, что соответствует концепции, также должно работать.