[all-commits] [llvm/llvm-project] 1679b2: [libc++] Refactor __tuple_like and __pair_like (#8...

Nikolas Klauser via All-commits all-commits at lists.llvm.org
Sun Mar 31 23:47:18 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1679b27959bbe21b713725017b1cf36ac66dfadc
      https://github.com/llvm/llvm-project/commit/1679b27959bbe21b713725017b1cf36ac66dfadc
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-04-01 (Mon, 01 Apr 2024)

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/mismatch.h
    M libcxx/include/__memory/uses_allocator_construction.h
    M libcxx/include/__memory_resource/polymorphic_allocator.h
    M libcxx/include/__ranges/subrange.h
    R libcxx/include/__tuple/pair_like.h
    M libcxx/include/__tuple/tuple_like.h
    A libcxx/include/__tuple/tuple_like_no_subrange.h
    M libcxx/include/__utility/pair.h
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap
    M libcxx/include/variant
    M libcxx/test/libcxx/utilities/tuple/__tuple_like.compile.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.elements/range.concept.compile.pass.cpp

  Log Message:
  -----------
  [libc++] Refactor __tuple_like and __pair_like (#85206)

The exposition-only type trait `pair-like` includes `ranges::subrange`,
but in every single case excludes `ranges::subrange` from the list. This
patch introduces two new traits `__tuple_like_no_subrange` and
`__pair_like_no_subrange`, which exclude `ranges::subrange` from the
possible matches. `__pair_like` is no longer required, and thus removed.
`__tuple_like` is implemented as `__tuple_like_no_subrange` or a
`ranges::subrange` specialization.



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