C++14 constexpr 对 cppreference 的函数要求

问题描述 投票:0回答:1

cppreference 表示,直到 C++14,

constexpr
函数必须满足以下要求:

函数体必须删除或默认或仅包含以下内容:

  • 空语句(纯分号)
  • static_assert 声明
  • 不定义类或枚举的 typedef 声明和别名声明
  • 使用声明
  • 使用指令
  • 如果函数不是构造函数,则只有一个 return 语句

然而,示例包含许多其他元素。

是需求表述错误还是我误解了什么?

c++ c++11 language-lawyer c++14 constexpr
1个回答
0
投票

在 cppreference.com 上,您经常会发现带有以下之一注释的页面、标识符、声明、定义和文本块:

  1. (C++XX)
  2. (自 C++XX 起)
  3. (直到 C++XX)
  4. (自 C++XX 起)
    (直到 C++YY)

其中 XX 和 YY 表示标准修订版(当前为 98、03、11、14、17、20、23 或 26 之一)。

第一个和第二个是等效的,意味着带注释的元素适用于 C++XX 及更高版本。

第三种类型的注释,另一方面,表明被注释的元素适用于beforeC++XX。从C++XX开始,这样的元素不再适用。

最后,第四种注释(不太常见),表示注释元素适用于 C++XX 及更高版本,直到但不包括 C++YY。


所有这些注释都会使某些页面难以阅读。如果您只关心某个版本,可以在右上角的“标准版本”下拉菜单中选择它。这样做将隐藏与所选版本不相关的所有内容。

© www.soinside.com 2019 - 2024. All rights reserved.