Зачем пытаться преобразовать статическое число в двойное?
-
29-10-2019 - |
Вопрос
Просмотрите это в коде, над которым я работаю:
общий(Общие кодовые коды являются общими кодовыми кодами.)
Я подозреваю , что есть действительно веская причина испытывать трудности с выполнением
something
и тому подобное, но, похоже, я мог бы обойтись гораздо меньшим количеством набора текста.
Что я не понимаю?
Заранее спасибо.
Решение
Многие из этих общих кодовых кодов не нужны из-за автоматического числового продвижения.Чрезвычайно необходимы те, которые используются при построении числа 1/2, хотя в этом случае нет очевидной причины не просто сказать вместо него static_cast
.В любом случае внимательный компилятор удалит все это и заменит их константами времени компиляции.
Другие советы
Я согласен с предыдущим ответом, что здесь было бы намного лучше генерировать код кода.
Однако я обнаружил в коде еще один красный флаг, а именно 2.0
.Функция pow(something, 3)
предназначена для приема двух произвольных значений, x и y , и возврата x ^ y .Поскольку эта функция должна обрабатывать произвольные значения, она будет выполнять приближение.Однако это 1) сложно вычислить и 2) иногда не удается достичь цели.В этом случае было бы намного лучше просто использовать pow
.
Это эквивалентно более удобочитаемому
общий, поскольку целые числа повышаются до удвоений каждый раз, когда арифметическая операция имеет один двойной операнд.Двойного литераля 0,5 достаточно, чтобы все увеличилось вдвое.