@@ -46,7 +46,7 @@ struct __key_value_iterator {
4646
4747 struct __arrow_proxy {
4848 __reference __ref_;
49- _LIBCPP_HIDE_FROM_ABI __reference* operator ->() { return std::addressof (__ref_); }
49+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __reference* operator ->() { return std::addressof (__ref_); }
5050 };
5151
5252 __key_iterator __key_iter_;
@@ -69,99 +69,113 @@ struct __key_value_iterator {
6969
7070 _LIBCPP_HIDE_FROM_ABI __key_value_iterator () = default;
7171
72- _LIBCPP_HIDE_FROM_ABI __key_value_iterator (__key_value_iterator<_Owner, _KeyContainer, _MappedContainer, !_Const> __i)
72+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
73+ __key_value_iterator (__key_value_iterator<_Owner, _KeyContainer, _MappedContainer, !_Const> __i)
7374 requires _Const && convertible_to<typename _KeyContainer::iterator, __key_iterator> &&
7475 convertible_to<typename _MappedContainer::iterator, __mapped_iterator>
7576 : __key_iter_(std::move(__i.__key_iter_)), __mapped_iter_(std::move(__i.__mapped_iter_)) {}
7677
77- _LIBCPP_HIDE_FROM_ABI __key_value_iterator (__key_iterator __key_iter, __mapped_iterator __mapped_iter)
78+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26
79+ __key_value_iterator (__key_iterator __key_iter, __mapped_iterator __mapped_iter)
7880 : __key_iter_(std::move(__key_iter)), __mapped_iter_(std::move(__mapped_iter)) {}
7981
80- _LIBCPP_HIDE_FROM_ABI __reference operator *() const { return __reference (*__key_iter_, *__mapped_iter_); }
81- _LIBCPP_HIDE_FROM_ABI __arrow_proxy operator ->() const { return __arrow_proxy{**this }; }
82+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __reference operator *() const {
83+ return __reference (*__key_iter_, *__mapped_iter_);
84+ }
85+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __arrow_proxy operator ->() const { return __arrow_proxy{**this }; }
8286
83- _LIBCPP_HIDE_FROM_ABI __key_value_iterator& operator ++() {
87+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __key_value_iterator& operator ++() {
8488 ++__key_iter_;
8589 ++__mapped_iter_;
8690 return *this ;
8791 }
8892
89- _LIBCPP_HIDE_FROM_ABI __key_value_iterator operator ++(int ) {
93+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __key_value_iterator operator ++(int ) {
9094 __key_value_iterator __tmp (*this );
9195 ++*this ;
9296 return __tmp;
9397 }
9498
95- _LIBCPP_HIDE_FROM_ABI __key_value_iterator& operator --() {
99+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __key_value_iterator& operator --() {
96100 --__key_iter_;
97101 --__mapped_iter_;
98102 return *this ;
99103 }
100104
101- _LIBCPP_HIDE_FROM_ABI __key_value_iterator operator --(int ) {
105+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __key_value_iterator operator --(int ) {
102106 __key_value_iterator __tmp (*this );
103107 --*this ;
104108 return __tmp;
105109 }
106110
107- _LIBCPP_HIDE_FROM_ABI __key_value_iterator& operator +=(difference_type __x) {
111+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __key_value_iterator& operator +=(difference_type __x) {
108112 __key_iter_ += __x;
109113 __mapped_iter_ += __x;
110114 return *this ;
111115 }
112116
113- _LIBCPP_HIDE_FROM_ABI __key_value_iterator& operator -=(difference_type __x) {
117+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __key_value_iterator& operator -=(difference_type __x) {
114118 __key_iter_ -= __x;
115119 __mapped_iter_ -= __x;
116120 return *this ;
117121 }
118122
119- _LIBCPP_HIDE_FROM_ABI __reference operator [](difference_type __n) const { return *(*this + __n); }
123+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 __reference operator [](difference_type __n) const {
124+ return *(*this + __n);
125+ }
120126
121- _LIBCPP_HIDE_FROM_ABI friend constexpr bool
127+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend bool
122128 operator ==(const __key_value_iterator& __x, const __key_value_iterator& __y) {
123129 return __x.__key_iter_ == __y.__key_iter_ ;
124130 }
125131
126- _LIBCPP_HIDE_FROM_ABI friend bool operator <(const __key_value_iterator& __x, const __key_value_iterator& __y) {
132+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend bool
133+ operator <(const __key_value_iterator& __x, const __key_value_iterator& __y) {
127134 return __x.__key_iter_ < __y.__key_iter_ ;
128135 }
129136
130- _LIBCPP_HIDE_FROM_ABI friend bool operator >(const __key_value_iterator& __x, const __key_value_iterator& __y) {
137+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend bool
138+ operator >(const __key_value_iterator& __x, const __key_value_iterator& __y) {
131139 return __y < __x;
132140 }
133141
134- _LIBCPP_HIDE_FROM_ABI friend bool operator <=(const __key_value_iterator& __x, const __key_value_iterator& __y) {
142+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend bool
143+ operator <=(const __key_value_iterator& __x, const __key_value_iterator& __y) {
135144 return !(__y < __x);
136145 }
137146
138- _LIBCPP_HIDE_FROM_ABI friend bool operator >=(const __key_value_iterator& __x, const __key_value_iterator& __y) {
147+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend bool
148+ operator >=(const __key_value_iterator& __x, const __key_value_iterator& __y) {
139149 return !(__x < __y);
140150 }
141151
142- _LIBCPP_HIDE_FROM_ABI friend auto operator <=>(const __key_value_iterator& __x, const __key_value_iterator& __y)
152+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend auto
153+ operator <=>(const __key_value_iterator& __x, const __key_value_iterator& __y)
143154 requires three_way_comparable<__key_iterator>
144155 {
145156 return __x.__key_iter_ <=> __y.__key_iter_ ;
146157 }
147158
148- _LIBCPP_HIDE_FROM_ABI friend __key_value_iterator operator +(const __key_value_iterator& __i, difference_type __n) {
159+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend __key_value_iterator
160+ operator +(const __key_value_iterator& __i, difference_type __n) {
149161 auto __tmp = __i;
150162 __tmp += __n;
151163 return __tmp;
152164 }
153165
154- _LIBCPP_HIDE_FROM_ABI friend __key_value_iterator operator +(difference_type __n, const __key_value_iterator& __i) {
166+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend __key_value_iterator
167+ operator +(difference_type __n, const __key_value_iterator& __i) {
155168 return __i + __n;
156169 }
157170
158- _LIBCPP_HIDE_FROM_ABI friend __key_value_iterator operator -(const __key_value_iterator& __i, difference_type __n) {
171+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend __key_value_iterator
172+ operator -(const __key_value_iterator& __i, difference_type __n) {
159173 auto __tmp = __i;
160174 __tmp -= __n;
161175 return __tmp;
162176 }
163177
164- _LIBCPP_HIDE_FROM_ABI friend difference_type
178+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 friend difference_type
165179 operator -(const __key_value_iterator& __x, const __key_value_iterator& __y) {
166180 return difference_type (__x.__key_iter_ - __y.__key_iter_ );
167181 }
0 commit comments