Pull to refresh

Comments 11

У меня только один вопрос: как часто это надо "в реальной жизни", что это внесено в std:: ?

А куда ещё его выносить-то? Common type — это понятие, которое является частью стандарта (надеюсь). Неправильно обрекать пользователя на выписывание всех этих частных случаев если вдруг ему эта штука понадобится, тем более что зачастую и выписать-то все эти случаи переносимым образом невозможно.

Ну, много каких вещей сложно реализовать, однако же HTTP сервер в стандарт не внесли, правильно?

HTTP сервер не имеет отношения непосредственно к языку, а common type — имеет.

Я не совсем понимаю, как именно оно относится к языку :)

Узкоспецифическая вещь нужная в очень особых случаях...

Типы и арифметика типов -- это часть языка. Неважно, насколько часть узкоспецифическая, важно, чтобы она была покрыта.

Если у вас проектирование обобщённого кода, то common_type когда-то да понадобится.

С возможностью автоматического вывода типа функции нужен конечно не так часто, однако нужен в определённых случаях как пример в статье.

К тому же не будь этого в std, легко написать неверную реализацию и забыть, скажем, decay.

Далеко ходить не надо, тот же std::same_as не реализуется так, как ,казалось, бы легко и тривиально.

Ну у нас же есть boost, например, и далеко не всё из него включают в std. Хотя многие вещи из него так же леко написать неверно самому, забыв какой-либо крайний случай.

Буст это сборник 100-а различных библиотек, часть из них таки и попали в стандарт.

Возникает чувство, что в C++ не хватает достаточно мощных инструментов для работы с типами.

"Вычисление" типа происходит через лютые фокусы. Хотя казалось бы, имея нормальную связь типов с их метаобъектами (это есть в Reflection TS, но там тоже руки сильно связаны), можно было бы посчитать тип человеческим алгоритмом. Но имеем такие статьи.

Это не возникает, а так и есть :)

Ещё есть такая бумага P1221R1.

Sign up to leave a comment.