C++中constexpr
时间: 2023-07-11 20:26:12 浏览: 95
C++中的const和constexpr详解
`constexpr` 是 C++11 新增的关键字,它用于声明一个编译期常量表达式或一个可以在编译时求值的函数。使用 `constexpr` 可以让编译器在编译期间计算表达式的值,从而提高程序的性能和效率。
在变量声明时使用 `constexpr` 可以将变量定义为编译期常量,例如:
```
constexpr int i = 10; // 定义一个编译期常量 i,其值为 10
```
在函数声明时使用 `constexpr` 可以声明一个可以在编译时求值的函数,例如:
```
constexpr int square(int x) {
return x * x;
}
```
在编译时,`constexpr` 函数的参数和返回值必须是字面值类型,并且函数体中只能包含简单的语句,如赋值语句、控制语句和表达式语句等。如果在运行时调用了 `constexpr` 函数,则该函数会被当作普通函数进行处理。
在 C++14 中,`constexpr` 的使用范围更加广泛,包括可以在函数内部使用 `constexpr` 变量、支持更多的语句和控制结构等。
阅读全文