55 #ifndef _GLIBCXX_STACK
56 #define _GLIBCXX_STACK 1
58 #ifdef _GLIBCXX_SYSHDR
59 #pragma GCC system_header
64 #define __glibcxx_want_adaptor_iterator_pair_constructor
65 #define __glibcxx_want_containers_ranges
71 #ifdef __glibcxx_format_ranges // C++ >= 23 && HOSTED
74 namespace std _GLIBCXX_VISIBILITY(default)
76 _GLIBCXX_BEGIN_NAMESPACE_VERSION
79 template<__format::__char _CharT,
typename _Tp,
80 formattable<_CharT> _Container>
81 struct formatter<stack<_Tp, _Container>, _CharT>
84 using __maybe_const_adaptor
86 __format::__const_formattable_range<_Container, _CharT>,
87 const stack<_Tp, _Container>, stack<_Tp, _Container>>;
92 constexpr
typename basic_format_parse_context<_CharT>::iterator
93 parse(basic_format_parse_context<_CharT>& __pc)
94 {
return _M_f.parse(__pc); }
98 template<
typename _Out>
99 typename basic_format_context<_Out, _CharT>::iterator
100 format(__maybe_const_adaptor& __a,
101 basic_format_context<_Out, _CharT>& __fc)
const
102 {
return _M_f.format(__a.c, __fc); }
106 range_formatter<_Tp, _CharT> _M_f;
109 #if __glibcxx_print >= 202406L
112 template<
typename _Tp,
typename _Container>
114 enable_nonlocking_formatter_optimization<stack<_Tp, _Container>> =
false;
116 _GLIBCXX_END_NAMESPACE_VERSION
118 #endif // __glibcxx_format_ranges