[libc++] [C++20] [P0415] Constexpr for std::complex.
authorMarek Kurdej <marek.kurdej+llvm.org@gmail.com>
Thu, 15 Dec 2022 01:19:59 +0000 (02:19 +0100)
committerNikolas Klauser <nikolasklauser@berlin.de>
Sun, 8 Jan 2023 14:46:51 +0000 (15:46 +0100)
commit7223bcf04c4ce3c1585df9408c6a6663cc8364ea
treee9ef182fdf755ad3528e603a88b4ab8f4488ec3b
parentc9602e02fc16e8a3fcb6f7b58d8615b04a8fde38
[libc++] [C++20] [P0415] Constexpr for std::complex.

This patch adds constexpr to <complex> header: operators, member operators, and member functions (real, imag, norm, conj).

https://eel.is/c++draft/complex.numbers
https://wg21.link/p0415

Reviewed By: ldionne, #libc

Spies: philnik, danilaml, Quuxplusone, wmaxey, arichardson, libcxx-commits

Differential Revision: https://reviews.llvm.org/D79555
45 files changed:
libcxx/docs/FeatureTestMacroTable.rst
libcxx/docs/ReleaseNotes.rst
libcxx/docs/Status/Cxx20Papers.csv
libcxx/include/__config
libcxx/include/cmath
libcxx/include/complex
libcxx/include/math.h
libcxx/include/version
libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
libcxx/test/std/numerics/complex.number/cases.h
libcxx/test/std/numerics/complex.number/cmplx.over/conj.pass.cpp
libcxx/test/std/numerics/complex.number/cmplx.over/norm.pass.cpp
libcxx/test/std/numerics/complex.number/complex.member.ops/assignment_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.member.ops/assignment_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.member.ops/divide_equal_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.member.ops/divide_equal_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.member.ops/minus_equal_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.member.ops/minus_equal_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.member.ops/plus_equal_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.member.ops/plus_equal_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.member.ops/times_equal_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.member.ops/times_equal_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.members/real_imag.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_divide_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_divide_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_equals_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_equals_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_minus_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_minus_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_not_equals_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_not_equals_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_plus_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_plus_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_times_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/complex_times_scalar.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/scalar_divide_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/scalar_equals_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/scalar_minus_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/scalar_not_equals_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/scalar_plus_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/scalar_times_complex.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/unary_minus.pass.cpp
libcxx/test/std/numerics/complex.number/complex.ops/unary_plus.pass.cpp
libcxx/utils/generate_feature_test_macro_components.py