33
33
#include < __type_traits/invoke.h>
34
34
#include < __type_traits/is_object.h>
35
35
#include < __type_traits/is_reference.h>
36
+ #include < __type_traits/is_referenceable.h>
36
37
#include < __type_traits/maybe_const.h>
37
38
#include < __type_traits/remove_cvref.h>
38
39
#include < __utility/forward.h>
39
40
#include < __utility/in_place.h>
40
41
#include < __utility/move.h>
41
- #include < tuple>
42
42
43
43
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
44
44
# pragma GCC system_header
@@ -53,16 +53,16 @@ namespace ranges {
53
53
template <move_constructible _Fn, input_range... _Views>
54
54
requires (view<_Views> && ...) &&
55
55
(sizeof ...(_Views) > 0 ) && is_object_v<_Fn> && regular_invocable<_Fn&, range_reference_t <_Views>...> &&
56
- __can_reference <invoke_result_t <_Fn&, range_reference_t <_Views>...>>
56
+ __referenceable <invoke_result_t <_Fn&, range_reference_t <_Views>...>>
57
57
class zip_transform_view : public view_interface <zip_transform_view<_Fn, _Views...>> {
58
58
_LIBCPP_NO_UNIQUE_ADDRESS zip_view<_Views...> __zip_;
59
59
_LIBCPP_NO_UNIQUE_ADDRESS __movable_box<_Fn> __fun_;
60
60
61
61
using _InnerView = zip_view<_Views...>;
62
62
template <bool _Const>
63
63
using __ziperator = iterator_t <__maybe_const<_Const, _InnerView>>;
64
- template <bool Const >
65
- using __zentinel = sentinel_t <__maybe_const<Const , _InnerView>>;
64
+ template <bool _Const >
65
+ using __zentinel = sentinel_t <__maybe_const<_Const , _InnerView>>;
66
66
67
67
template <bool >
68
68
class __iterator ;
@@ -153,7 +153,7 @@ struct __zip_transform_iterator_category_base<_Const, _Fn, _Views...> {
153
153
template <move_constructible _Fn, input_range... _Views>
154
154
requires (view<_Views> && ...) &&
155
155
(sizeof ...(_Views) > 0 ) && is_object_v<_Fn> && regular_invocable<_Fn&, range_reference_t <_Views>...> &&
156
- __can_reference <invoke_result_t <_Fn&, range_reference_t <_Views>...>>
156
+ __referenceable <invoke_result_t <_Fn&, range_reference_t <_Views>...>>
157
157
template <bool _Const>
158
158
class zip_transform_view <_Fn, _Views...>::__iterator
159
159
: public __zip_transform_iterator_category_base<_Const, _Fn, _Views...> {
@@ -285,7 +285,7 @@ class zip_transform_view<_Fn, _Views...>::__iterator
285
285
template <move_constructible _Fn, input_range... _Views>
286
286
requires (view<_Views> && ...) &&
287
287
(sizeof ...(_Views) > 0 ) && is_object_v<_Fn> && regular_invocable<_Fn&, range_reference_t <_Views>...> &&
288
- __can_reference <invoke_result_t <_Fn&, range_reference_t <_Views>...>>
288
+ __referenceable <invoke_result_t <_Fn&, range_reference_t <_Views>...>>
289
289
template <bool _Const>
290
290
class zip_transform_view <_Fn, _Views...>::__sentinel {
291
291
__zentinel<_Const> __inner_;
0 commit comments