[libcxx-commits] [PATCH] D79555: [libc++] [P0415] [C++20] - Constexpr for std::complex.

Marek Kurdej via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu May 7 00:33:56 PDT 2020


curdeius created this revision.
curdeius added reviewers: ldionne, EricWF, mclow.lists.
Herald added subscribers: libcxx-commits, broadwaylamb, dexonsmith.
Herald added a project: libc++.
Herald added a reviewer: libc++.

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

TODO:

- Test default implementation (and not only specializations for float, double, long double).
- Test edge cases in constexpr.
- Split constexpr/non-constexpr tests?

Format.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D79555

Files:
  libcxx/docs/FeatureTestMacroTable.rst
  libcxx/include/complex
  libcxx/include/version
  libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
  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_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_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_minus_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
  libcxx/www/cxx2a_status.html

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79555.262558.patch
Type: text/x-patch
Size: 94213 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20200507/daeeb63e/attachment-0001.bin>


More information about the libcxx-commits mailing list