Есть шаблонная функция, которая должна считать сумму двух значений одного типа. Как узнать (с помощью <type_traits>?) возвращаемый тип этой функции, чтобы он был таким, чтобы вмещать сумму этих значений? Например, для двух long в типичной реализации достаточно long long, чтобы вместить любую их сумму. Если реализация не поддерживает чего-то выше std::int64_t, то для двух значений этого типа вернуть его же. Можно ли как-то это сделать, не прописывая вручную кучу шаблонных специализаций?
template <typename T>
... sum(T left, T right); // как узнать возвращаемый тип?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости