[all-commits] [llvm/llvm-project] f9b6fd: [libc++] Support immovable return types in std::fu...

Quuxplusone via All-commits all-commits at lists.llvm.org
Mon Jan 25 16:39:26 PST 2021


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f9b6fd269b6fd2b085c3537b6730a02503430ef0
      https://github.com/llvm/llvm-project/commit/f9b6fd269b6fd2b085c3537b6730a02503430ef0
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2021-01-25 (Mon, 25 Jan 2021)

  Changed paths:
    M libcxx/include/__functional_base
    M libcxx/include/functional
    M libcxx/include/type_traits
    A libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/noncopyable_return_type.pass.cpp

  Log Message:
  -----------
  [libc++] Support immovable return types in std::function.

LWG reflector consensus is that this was a bug in libc++.
(In particular, MSVC also will fix it in their STL, soon.)
Bug originally discovered by Logan Smith.

Also fix `std::function<const void()>`, which should work
the same way as `std::function<void()>` in terms of allowing
"conversions" from non-void types.

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




More information about the All-commits mailing list