Comments 11
У меня только один вопрос: как часто это надо "в реальной жизни", что это внесено в std:: ?
А куда ещё его выносить-то? Common type — это понятие, которое является частью стандарта (надеюсь). Неправильно обрекать пользователя на выписывание всех этих частных случаев если вдруг ему эта штука понадобится, тем более что зачастую и выписать-то все эти случаи переносимым образом невозможно.
Ну, много каких вещей сложно реализовать, однако же HTTP сервер в стандарт не внесли, правильно?
HTTP сервер не имеет отношения непосредственно к языку, а common type — имеет.
Если у вас проектирование обобщённого кода, то common_type когда-то да понадобится.
С возможностью автоматического вывода типа функции нужен конечно не так часто, однако нужен в определённых случаях как пример в статье.
К тому же не будь этого в std, легко написать неверную реализацию и забыть, скажем, decay.
Далеко ходить не надо, тот же std::same_as не реализуется так, как ,казалось, бы легко и тривиально.
Возникает чувство, что в C++ не хватает достаточно мощных инструментов для работы с типами.
"Вычисление" типа происходит через лютые фокусы. Хотя казалось бы, имея нормальную связь типов с их метаобъектами (это есть в Reflection TS, но там тоже руки сильно связаны), можно было бы посчитать тип человеческим алгоритмом. Но имеем такие статьи.
Статья для тех, кто как и я не понимает, зачем нужен std::common_type