第7.1章: constexpr 函数

English

概述

constexpr 函数是可以在编译期求值的函数。本章只关注 如何正确定义这样一个函数,以及它的定义需要遵守哪些规则。

constexpr 函数同时也隐式是 inline。 这让你可以把它定义在头文件中,而不会在各翻译单元之间造成 重复符号错误。

定义 constexpr 函数

要定义 constexpr 函数,请把关键字 constexpr 放在返回类型之前:


constexpr int add(int a, int b)
{
    return a + b;
}

constexpr 函数必须遵守常量表达式的规则。实践中, 这意味着:

由于 constexpr 意味着 inline,在头文件中定义这类 函数是安全的,也不会出现重复定义错误。

示例


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

这个函数在常量表达式中是有效的,放在头文件中也是安全的。

要点