[all-commits] [llvm/llvm-project] fdb11c: [libc++] Disallow specializing `common_reference` ...

A. Jiang via All-commits all-commits at lists.llvm.org
Wed Jun 4 05:42:20 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fdb11c1be6683e2cff365e3c50ca2d63717e5ea9
      https://github.com/llvm/llvm-project/commit/fdb11c1be6683e2cff365e3c50ca2d63717e5ea9
  Author: A. Jiang <de34 at live.cn>
  Date:   2025-06-04 (Wed, 04 Jun 2025)

  Changed paths:
    M libcxx/docs/ReleaseNotes/21.rst
    M libcxx/include/__type_traits/common_reference.h
    M libcxx/test/libcxx/type_traits/no_specializations.verify.cpp
    M libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/indirectly_readable.compile.pass.cpp

  Log Message:
  -----------
  [libc++] Disallow specializing `common_reference` (#141465)

`common_reference` isn't an exception for [meta.rqmts]/4, so it's better
to disallow users to specialize it.

`indirectly_readable.compile.pass.cpp` was a bit problematic. It
attempted to opt-out common reference type in some wrong ways. Also, the
standard effectively forbids opting-out common reference type for `T&`
and `T&&`. This patch removes and adjusts some problematic cases.

---------

Co-authored-by: Nikolas Klauser <nikolasklauser at berlin.de>



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