Здравствуйте, CreatorCray, Вы писали:
S>>Чем меньше исключений и частных случаев, тем лучше. А то если начинаешь разбираться сколькими способами в C++ можно проинициализировать переменную или сколькими способами можно указать использование концепта, так что-то совсем невесело становится.
CC>Не вижу проблемы.
Попробуйте студента научить современному C++ до нормального уровня.
CC>Используй тот, что наиболее удобен для конкретной ситуации.
template<std::integral T>
void f1(T /*v*/) {}
void f2(std::integral auto /*v*/) {}
template<typename T>
void f3(T /*v*/) requires std::integral<T> {}
Попробуйте объяснить какой из этих вариантов наиболее удобен и почему.