Насколько я знаю, std::to_integer<T>
эквивалентно T(value)
, где value
- это переменная, имеющая тип std::byte
.
Я рассмотрел некоторые реализации основных компиляторов и обнаружил, что в этом случае эквивалент означает буквально , реализованный как . Другими словами, в большинстве случаев to_integer
фактически реализовано так:
return T(value);
И это все.
Что я не понимаю, какова цель такой функции?
Как ни странно, минусы - это даже больше, чем плюсы. Я должен включить целый заголовок для такой функции только для того, чтобы избежать C-подобного преобразования, которое, скорее всего, в любом случае будет напрямую встроено.
Есть ли какая-то другая причина для этого, или это просто симпатичная альтернатива для C-подобного броска и ничего более?