constexpr对不变表情的好处

时间:2017-01-27 15:53:08

标签: c++ constexpr

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

假设你有一个函数来简单地对一个值进行平方......

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

通常情况下,这种情况永远不会改变或被覆盖,但是,我已经看到有人说将数字定义为更好的做法......

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

对我而言,这似乎是一个微不足道的变化。任何人都可以告诉我声明constexpr等简单表达式的重要优势吗?

1 个答案:

答案 0 :(得分:1)

该更改的优点是,只要在编译时知道<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.12</version> <scope>provided</scope> </dependency> x的结果就可用于初始化square变量或作为模板参数。