为什么C++ 11标准中没有常量pi的定义?

Ral*_*zky 15 c++ pi c++-standard-library c++11

我觉得很安静,我必须使用宏_USE_MATH_DEFINES才能将pi的值输入我的程序.或者我需要在我自己的标题中自己定义它.或者我必须使用提升等等.

它让我感到很恼火,没有标准的c ++标头以可移植的方式定义该常量.是否有任何特殊原因,像pi这样的数学常量不符合c ++标准?它可能是该标准的下一个版本之一吗?

小智 -5

我认为它不是标准化的,因为它并不是一个真正的主要问题。我真的不认为仅仅写下 #define 或 const static,或者只是用您可能需要的一堆数学常量创建一个标头有任何麻烦。在尝试改进语言时,制定该标准的人实际上并没有想到什么。

  • @BoBTFish 我敢打赌,数学常数“π”的值不会很快改变;-) (12认同)
  • 当然,自己硬编码是不好的,因为它可能会改变...... (11认同)
  • 您无法(可移植地)自己定义它,因为您不知道可能需要多少位数字。 (4认同)
  • @ilent2:如果它不是编译时常量,我会相当失望。 (3认同)
  • @BoBTFish:当然,像 pi 这样的常量一直在变化。我认为更好的论据是,并非每个人都需要相同精度的常数。 (2认同)
  • 顺便说一句,这在 Gabriel Dos Reis 的[变量模板提案](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3651.pdf) 中用作主要示例。 (2认同)
  • 对于它的价值,请查看http://isocpp.org/files/papers/N3651.pdf,该提案已被投票纳入下一个标准。第一个示例是 pi 的模板定义,适用于表示 pi 的双文字可转换的所有类型。也许他们只是在等待语言有足够的表达能力。 (2认同)