2017-01-27 6 views
-2

Итак, я понимаю, что использование constexpr в C++ для определенных выражений, которые будут вычисляться во время компиляции, и, более очевидно, объявить переменную или функцию как константное выражение. Моя путаница возникает из понимания любых преимуществ использования ее для простых функций, которые не будут меняться.Преимущество constexpr в неизменяемых выражениях

Предположим, у вас есть функция просто квадрат значение ...

int square(int x) { 
    return x * x; 
} 

Как правило, что никогда не изменится, или быть перекрыты, однако, я видел, как люди говорят, что лучше было бы практикой вместо определите его как ...

constexpr int square(int x) { 
    return x * x; 
} 

Для меня это похоже на такое тривиальное изменение. Может ли кто-нибудь просветить меня по серьезным преимуществам объявления таких простых выражений, как constexpr?

ответ

1

Преимущество этого изменения состоит в том, что всякий раз, когда x известен во время компиляции, результат square может быть использован для инициализации переменных constexpr или в качестве аргумента шаблона.

Смежные вопросы