constexpr 对不变表达式的好处[重复]

Posted

技术标签:

【中文标题】constexpr 对不变表达式的好处[重复]【英文标题】:Benefit of constexpr on non-changing expressions [duplicate] 【发布时间】:2017-06-13 08:52:33 【问题描述】:

所以我知道在 C++ 中使用 constexpr 是用于在编译时评估的已定义表达式,更明显是将变量或函数声明为常量表达式。我的困惑来自于理解将它用于不会改变的简单功能的任何好处。

假设您有一个函数可以简单地对一个值进行平方...

int square(int x) 
    return x * x;

通常它永远不会改变或被覆盖,但是,我看到人们说最好将其定义为...

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

对我来说,这似乎是一个微不足道的变化。谁能告诉我声明像constexpr 这样简单的表达式的严重优势?

【问题讨论】:

【参考方案1】:

这种更改的好处是,只要在编译时知道xsquare 的结果就可以用于初始化constexpr 变量或作为模板参数。

【讨论】:

以上是关于constexpr 对不变表达式的好处[重复]的主要内容,如果未能解决你的问题,请参考以下文章

关于constexpr

constexpr 替换数学常量,如 M_PI

常量表达式

constexpr介绍以及与const的区别

C++11 中的 ConstExpr 对象中的可变成员

constexpr