cppreference 表示,直到 C++14,
constexpr
函数必须满足以下要求:
函数体必须删除或默认或仅包含以下内容:
- 空语句(纯分号)
- static_assert 声明
- 不定义类或枚举的 typedef 声明和别名声明
- 使用声明
- 使用指令
- 如果函数不是构造函数,则只有一个 return 语句
然而,示例包含许多其他元素。
是需求表述错误还是我误解了什么?
在 cppreference.com 上,您经常会发现带有以下之一注释的页面、标识符、声明、定义和文本块:
其中 XX 和 YY 表示标准修订版(当前为 98、03、11、14、17、20、23 或 26 之一)。
第一个和第二个是等效的,意味着带注释的元素适用于 C++XX 及更高版本。
第三种类型的注释,另一方面,表明被注释的元素适用于beforeC++XX。从C++XX开始,这样的元素不再适用。
最后,第四种注释(不太常见),表示注释元素适用于 C++XX 及更高版本,直到但不包括 C++YY。
所有这些注释都会使某些页面难以阅读。如果您只关心某个版本,可以在右上角的“标准版本”下拉菜单中选择它。这样做将隐藏与所选版本不相关的所有内容。