@@ -93,7 +93,7 @@ _LIBCPP_HIDE_FROM_ABI constexpr __arg_t __get_packed_type(uint64_t __types, size
9393
9494} // namespace __format
9595
96- // This function is not user observable , so it can directly use the non-standard
96+ // This function is not user obervable , so it can directly use the non-standard
9797// types of the "variant". See __arg_t for more details.
9898template <class _Visitor , class _Context >
9999_LIBCPP_HIDE_FROM_ABI decltype (auto ) __visit_format_arg(_Visitor&& __vis, basic_format_arg<_Context> __arg) {
@@ -144,59 +144,6 @@ _LIBCPP_HIDE_FROM_ABI decltype(auto) __visit_format_arg(_Visitor&& __vis, basic_
144144 __libcpp_unreachable ();
145145}
146146
147- # if _LIBCPP_STD_VER >= 26 && defined(_LIBCPP_HAS_EXPLICIT_THIS_PARAMETER)
148-
149- template <class _Rp , class _Visitor , class _Context >
150- _LIBCPP_HIDE_FROM_ABI _Rp __visit_format_arg (_Visitor&& __vis, basic_format_arg<_Context> __arg) {
151- switch (__arg.__type_ ) {
152- case __format::__arg_t ::__none:
153- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__monostate_ );
154- case __format::__arg_t ::__boolean:
155- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__boolean_ );
156- case __format::__arg_t ::__char_type:
157- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__char_type_ );
158- case __format::__arg_t ::__int:
159- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__int_ );
160- case __format::__arg_t ::__long_long:
161- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__long_long_ );
162- case __format::__arg_t ::__i128:
163- # ifndef _LIBCPP_HAS_NO_INT128
164- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__i128_ );
165- # else
166- __libcpp_unreachable ();
167- # endif
168- case __format::__arg_t ::__unsigned:
169- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__unsigned_ );
170- case __format::__arg_t ::__unsigned_long_long:
171- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__unsigned_long_long_ );
172- case __format::__arg_t ::__u128:
173- # ifndef _LIBCPP_HAS_NO_INT128
174- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__u128_ );
175- # else
176- __libcpp_unreachable ();
177- # endif
178- case __format::__arg_t ::__float:
179- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__float_ );
180- case __format::__arg_t ::__double:
181- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__double_ );
182- case __format::__arg_t ::__long_double:
183- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__long_double_ );
184- case __format::__arg_t ::__const_char_type_ptr:
185- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__const_char_type_ptr_ );
186- case __format::__arg_t ::__string_view:
187- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__string_view_ );
188- case __format::__arg_t ::__ptr:
189- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), __arg.__value_ .__ptr_ );
190- case __format::__arg_t ::__handle:
191- return std::invoke_r<_Rp>(
192- std::forward<_Visitor>(__vis), typename basic_format_arg<_Context>::handle{__arg.__value_ .__handle_ });
193- }
194-
195- __libcpp_unreachable ();
196- }
197-
198- # endif // _LIBCPP_STD_VER >= 26 && defined(_LIBCPP_HAS_EXPLICIT_THIS_PARAMETER)
199-
200147// / Contains the values used in basic_format_arg.
201148// /
202149// / This is a separate type so it's possible to store the values and types in
@@ -280,52 +227,6 @@ class _LIBCPP_TEMPLATE_VIS basic_format_arg {
280227
281228 _LIBCPP_HIDE_FROM_ABI explicit operator bool () const noexcept { return __type_ != __format::__arg_t ::__none; }
282229
283- # if _LIBCPP_STD_VER >= 26 && defined(_LIBCPP_HAS_EXPLICIT_THIS_PARAMETER)
284-
285- // This function is user facing, so it must wrap the non-standard types of
286- // the "variant" in a handle to stay conforming. See __arg_t for more details.
287- template <class _Visitor >
288- _LIBCPP_HIDE_FROM_ABI decltype (auto ) visit(this basic_format_arg __arg, _Visitor&& __vis) {
289- switch (__arg.__type_ ) {
290- # ifndef _LIBCPP_HAS_NO_INT128
291- case __format::__arg_t ::__i128: {
292- typename __basic_format_arg_value<_Context>::__handle __h{__arg.__value_ .__i128_ };
293- return std::invoke (std::forward<_Visitor>(__vis), typename basic_format_arg<_Context>::handle{__h});
294- }
295-
296- case __format::__arg_t ::__u128: {
297- typename __basic_format_arg_value<_Context>::__handle __h{__arg.__value_ .__u128_ };
298- return std::invoke (std::forward<_Visitor>(__vis), typename basic_format_arg<_Context>::handle{__h});
299- }
300- # endif
301- default :
302- return std::__visit_format_arg (std::forward<_Visitor>(__vis), __arg);
303- }
304- }
305-
306- // This function is user facing, so it must wrap the non-standard types of
307- // the "variant" in a handle to stay conforming. See __arg_t for more details.
308- template <class _Rp , class _Visitor >
309- _LIBCPP_HIDE_FROM_ABI _Rp visit (this basic_format_arg __arg, _Visitor&& __vis) {
310- switch (__arg.__type_ ) {
311- # ifndef _LIBCPP_HAS_NO_INT128
312- case __format::__arg_t ::__i128: {
313- typename __basic_format_arg_value<_Context>::__handle __h{__arg.__value_ .__i128_ };
314- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), typename basic_format_arg<_Context>::handle{__h});
315- }
316-
317- case __format::__arg_t ::__u128: {
318- typename __basic_format_arg_value<_Context>::__handle __h{__arg.__value_ .__u128_ };
319- return std::invoke_r<_Rp>(std::forward<_Visitor>(__vis), typename basic_format_arg<_Context>::handle{__h});
320- }
321- # endif
322- default :
323- return std::__visit_format_arg<_Rp>(std::forward<_Visitor>(__vis), __arg);
324- }
325- }
326-
327- # endif // _LIBCPP_STD_VER >= 26 && defined(_LIBCPP_HAS_EXPLICIT_THIS_PARAMETER)
328-
329230private:
330231 using char_type = typename _Context::char_type;
331232
@@ -366,11 +267,7 @@ class _LIBCPP_TEMPLATE_VIS basic_format_arg<_Context>::handle {
366267// This function is user facing, so it must wrap the non-standard types of
367268// the "variant" in a handle to stay conforming. See __arg_t for more details.
368269template <class _Visitor , class _Context >
369- # if _LIBCPP_STD_VER >= 26 && defined(_LIBCPP_HAS_EXPLICIT_THIS_PARAMETER)
370- _LIBCPP_DEPRECATED_IN_CXX26
371- # endif
372- _LIBCPP_HIDE_FROM_ABI decltype (auto )
373- visit_format_arg(_Visitor&& __vis, basic_format_arg<_Context> __arg) {
270+ _LIBCPP_HIDE_FROM_ABI decltype (auto ) visit_format_arg(_Visitor&& __vis, basic_format_arg<_Context> __arg) {
374271 switch (__arg.__type_ ) {
375272# ifndef _LIBCPP_HAS_NO_INT128
376273 case __format::__arg_t ::__i128: {
@@ -382,7 +279,7 @@ _LIBCPP_DEPRECATED_IN_CXX26
382279 typename __basic_format_arg_value<_Context>::__handle __h{__arg.__value_ .__u128_ };
383280 return std::invoke (std::forward<_Visitor>(__vis), typename basic_format_arg<_Context>::handle{__h});
384281 }
385- # endif // _LIBCPP_STD_VER >= 26 && defined(_LIBCPP_HAS_EXPLICIT_THIS_PARAMETER)
282+ # endif
386283 default :
387284 return std::__visit_format_arg (std::forward<_Visitor>(__vis), __arg);
388285 }
0 commit comments