However, there is an important constant missing: The circle constant "Tau", symbol "𝜏", with a value of 2*𝜋 or about 6.283185307179586476925286766559...
I have written a proposal document below, I would greatly appreciate for feedback on this and will do whatever I can to help move it forward. The instructions for submitting a proposal also suggest to include an abstract cover page, which I think is not necessary given the small scope of this proposal. If more information is needed, see the link in the "Acknowledgements" section.
Introduction, Motivation and Scope, Impact On the Standard, Design Decisions, Technical Specifications
II. Introduction
Tau 𝜏 is a mathematical constant representing the ratio of a circle's circumference to its radius. This is also known as the circle constant, and is equal to about 6.283185307179586476925286766559... or exactly 2*𝜋 or 2*pi, representing one full turn in radians. The value Pi 𝜋 represents half of the circle constant, it is famous in mathematics and is already present in the ISO C++ standard.
III. Motivation and Scope
The Tau 𝜏 constant allows referring to the full circle constant with
one constexpr value that can be used in place of (2*pi), making many
expressions easier to read, since
(2*pi) is so common to see in code. While Pi is already present in ISO C++, Pi is usually accompanied by a multiplication by 2, so 2*pi. Math libraries often define a constant for this value due to how common this is. It makes sense to add the Tau
constant into ISO C++ to make it available for all C++ users, rather
than requiring libraries to
define their own constant for this. This constant is intended to be useful for all users, and is widespread in many programming languages and libraries, including Java, Python, C#, Nim, Rust, GDScript, Processing, Crystal, Raku, Zig, and even another ISO language, Eiffel. Tau is also defined in many libraries and engines such as Unity, Godot, MathJS, and more.
IV. Impact On the Standard
This constant does not depend on anything, and nothing depends on it. It purely extends the available standard with one additional constant. It can be implemented in current C++ compilers and libraries, but the goal here is to put it in the standard along with the other mathematical constants since Tau is such a common and useful mathematical constant.
V. Design Decisions
The only two possible alternative designs are to use a different name or to not implement the constant. Some languages use "2PI" or "TWO_PI", but the former starts with a number so it is tricky to use as an identifier, and it can be confused with another constant in some languages, "2_PI" or "M_2_PI" in GCC,