[all-commits] [llvm/llvm-project] 30f589: [libc++] Constexpr-proof some machinery in not_fn....

Quuxplusone via All-commits all-commits at lists.llvm.org
Mon Dec 28 10:25:49 PST 2020


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 30f589c912115b4653f596eb3fd5bf62412f8aa7
      https://github.com/llvm/llvm-project/commit/30f589c912115b4653f596eb3fd5bf62412f8aa7
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2020-12-28 (Mon, 28 Dec 2020)

  Changed paths:
    M libcxx/test/std/utilities/function.objects/func.not_fn/not_fn.pass.cpp

  Log Message:
  -----------
  [libc++] Constexpr-proof some machinery in not_fn.pass.cpp. NFCI.

We don't need to use global variables here; we can store the "State"
of this machinery on the stack, so that it's constexpr-friendly.


  Commit: 7b00e9fae3853d4693e608cc52f6d6da5059f5ff
      https://github.com/llvm/llvm-project/commit/7b00e9fae3853d4693e608cc52f6d6da5059f5ff
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2020-12-28 (Mon, 28 Dec 2020)

  Changed paths:
    M libcxx/docs/Cxx2aStatusPaperStatus.csv
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/include/__functional_base
    M libcxx/include/functional
    M libcxx/include/type_traits
    M libcxx/include/version
    M libcxx/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
    A libcxx/test/std/utilities/function.objects/func.invoke/invoke_constexpr.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.memfn/member_data.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.memfn/member_function.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.memfn/member_function_const.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.not_fn/not_fn.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.search/func.search.default/default.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.search/func.search.default/default.pred.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++] [P1065] Constexpr invoke, reference_wrapper, mem_fn, not_fn, default_searcher.

This completes the implementation of P1065 "constexpr INVOKE":
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1065r2.html

This doesn't yet complete the implementation of P1032 "Misc constexpr bits,"
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1032r1.html
but it does complete all of the <functional> bits, which means
that we can now set `__cpp_lib_constexpr_functional` for C++20.

This could use more constexpr tests for `std::reference_wrapper<T>`,
but the existing tests are extremely non-constexpr-friendly and
so I don't want to get into that rabbit-hole today.

Differential Revision: https://reviews.llvm.org/D93815


Compare: https://github.com/llvm/llvm-project/compare/4b33b2387787...7b00e9fae385


More information about the All-commits mailing list