[all-commits] [llvm/llvm-project] a061d4: [libc++] Fix expression-equivalence for `mem_fn` (...

A. Jiang via All-commits all-commits at lists.llvm.org
Tue Oct 15 07:34:12 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a061d4d5cedf8f4651a01ea2e8cf98bd8863bf0f
      https://github.com/llvm/llvm-project/commit/a061d4d5cedf8f4651a01ea2e8cf98bd8863bf0f
  Author: A. Jiang <de34 at live.cn>
  Date:   2024-10-15 (Tue, 15 Oct 2024)

  Changed paths:
    M libcxx/include/__functional/mem_fn.h
    M libcxx/include/__functional/weak_result_type.h
    M libcxx/include/functional
    A libcxx/test/std/utilities/function.objects/func.memfn/mem_fn.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.memfn/member_data.compile.fail.cpp
    R libcxx/test/std/utilities/function.objects/func.memfn/member_data.pass.cpp
    R libcxx/test/std/utilities/function.objects/func.memfn/member_function.pass.cpp
    R libcxx/test/std/utilities/function.objects/func.memfn/member_function_const.pass.cpp
    R libcxx/test/std/utilities/function.objects/func.memfn/member_function_const_volatile.pass.cpp
    R libcxx/test/std/utilities/function.objects/func.memfn/member_function_volatile.pass.cpp

  Log Message:
  -----------
  [libc++] Fix expression-equivalence for `mem_fn` (#111307)

Previously, SFINAE constraints and exception specification propagation
were missing in the return type of libc++'s `std::mem_fn`. The
requirements on expression-equivalence (or even plain "equivalent" in
pre-C++20 specification) in [func.memfn] are actually requiring them.

This PR adds the missed stuffs. Fixes #86043.

Drive-by changes:
- removing no longer used `__invoke_return`,
- updating synopsis comments in several files, and
- merging several test files for `mem_fn` into one.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list