Skip to content

Commit c97f7c5

Browse files
author
slymz
committed
Proposed disable mixed &-prvalue reference implementation.
1 parent e7c3476 commit c97f7c5

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

impl/concat/concat.hpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,17 @@ using concat_rvalue_reference_t = common_reference_t<range_rvalue_reference_t<Rs
3434
template <class... Rs>
3535
using concat_value_t = common_type_t<range_value_t<Rs>...>;
3636

37+
template <class ConcatRef, class EachRef>
38+
concept concat_no_prref = is_reference_v<ConcatRef> ||
39+
(is_reference_v<EachRef> &&
40+
!same_as<std::remove_reference_t<EachRef>, ConcatRef>);
41+
3742
// clang-format off
3843
template <class Ref, class RRef, class It>
3944
concept concat_indirectly_readable_impl = requires (const It it){
4045
{ *it } -> convertible_to<Ref>;
4146
{ ranges::iter_move(it) } -> convertible_to<RRef>;
42-
};
47+
} && concat_no_prref<Ref, iter_reference_t<It>>;
4348

4449
template <class... Rs>
4550
concept concat_indirectly_readable =

0 commit comments

Comments
 (0)