File tree Expand file tree Collapse file tree 7 files changed +7
-12
lines changed Expand file tree Collapse file tree 7 files changed +7
-12
lines changed Original file line number Diff line number Diff line change @@ -28,11 +28,6 @@ _LIBCPP_BEGIN_NAMESPACE_STD
28
28
template <class _Tp >
29
29
concept __class_or_enum = is_class_v<_Tp> || is_union_v<_Tp> || is_enum_v<_Tp>;
30
30
31
- // Work around Clang bug https://llvm.org/PR52970
32
- // TODO: remove this workaround once libc++ no longer has to support Clang 13 (it was fixed in Clang 14).
33
- template <class _Tp >
34
- concept __workaround_52970 = is_class_v<__remove_cvref_t <_Tp>> || is_union_v<__remove_cvref_t <_Tp>>;
35
-
36
31
#endif // _LIBCPP_STD_VER >= 20
37
32
38
33
_LIBCPP_END_NAMESPACE_STD
Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ concept __can_borrow = is_lvalue_reference_v<_Tp> || enable_borrowed_range<remov
41
41
namespace ranges {
42
42
namespace __begin {
43
43
template <class _Tp >
44
- concept __member_begin = __can_borrow<_Tp> && __workaround_52970<_Tp> && requires (_Tp&& __t ) {
44
+ concept __member_begin = __can_borrow<_Tp> && requires (_Tp&& __t ) {
45
45
{ _LIBCPP_AUTO_CAST (__t .begin ()) } -> input_or_output_iterator;
46
46
};
47
47
@@ -103,7 +103,7 @@ using iterator_t = decltype(ranges::begin(std::declval<_Tp&>()));
103
103
namespace ranges {
104
104
namespace __end {
105
105
template <class _Tp >
106
- concept __member_end = __can_borrow<_Tp> && __workaround_52970<_Tp> && requires (_Tp&& __t ) {
106
+ concept __member_end = __can_borrow<_Tp> && requires (_Tp&& __t ) {
107
107
typename iterator_t <_Tp>;
108
108
{ _LIBCPP_AUTO_CAST (__t .end ()) } -> sentinel_for<iterator_t <_Tp>>;
109
109
};
Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ template <class _Tp>
40
40
concept __ptr_to_object = is_pointer_v<_Tp> && is_object_v<remove_pointer_t <_Tp>>;
41
41
42
42
template <class _Tp >
43
- concept __member_data = __can_borrow<_Tp> && __workaround_52970<_Tp> && requires (_Tp&& __t ) {
43
+ concept __member_data = __can_borrow<_Tp> && requires (_Tp&& __t ) {
44
44
{ _LIBCPP_AUTO_CAST (__t .data ()) } -> __ptr_to_object;
45
45
};
46
46
Original file line number Diff line number Diff line change @@ -29,7 +29,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
29
29
namespace ranges {
30
30
namespace __empty {
31
31
template <class _Tp >
32
- concept __member_empty = __workaround_52970<_Tp> && requires (_Tp&& __t ) { bool (__t .empty ()); };
32
+ concept __member_empty = requires (_Tp&& __t ) { bool (__t .empty ()); };
33
33
34
34
template <class _Tp >
35
35
concept __can_invoke_size = !__member_empty<_Tp> && requires (_Tp&& __t ) { ranges::size (__t ); };
Original file line number Diff line number Diff line change @@ -36,7 +36,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
36
36
namespace ranges {
37
37
namespace __rbegin {
38
38
template <class _Tp >
39
- concept __member_rbegin = __can_borrow<_Tp> && __workaround_52970<_Tp> && requires (_Tp&& __t ) {
39
+ concept __member_rbegin = __can_borrow<_Tp> && requires (_Tp&& __t ) {
40
40
{ _LIBCPP_AUTO_CAST (__t .rbegin ()) } -> input_or_output_iterator;
41
41
};
42
42
Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
37
37
namespace ranges {
38
38
namespace __rend {
39
39
template <class _Tp >
40
- concept __member_rend = __can_borrow<_Tp> && __workaround_52970<_Tp> && requires (_Tp&& __t ) {
40
+ concept __member_rend = __can_borrow<_Tp> && requires (_Tp&& __t ) {
41
41
ranges::rbegin (__t );
42
42
{ _LIBCPP_AUTO_CAST (__t .rend ()) } -> sentinel_for<decltype (ranges::rbegin (__t ))>;
43
43
};
Original file line number Diff line number Diff line change @@ -47,7 +47,7 @@ template <class _Tp>
47
47
concept __size_enabled = !disable_sized_range<remove_cvref_t <_Tp>>;
48
48
49
49
template <class _Tp >
50
- concept __member_size = __size_enabled<_Tp> && __workaround_52970<_Tp> && requires (_Tp&& __t ) {
50
+ concept __member_size = __size_enabled<_Tp> && requires (_Tp&& __t ) {
51
51
{ _LIBCPP_AUTO_CAST (__t .size ()) } -> __integer_like;
52
52
};
53
53
You can’t perform that action at this time.
0 commit comments