Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions stl/inc/queue
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,9 @@ struct uses_allocator<queue<_Ty, _Container>, _Alloc> : uses_allocator<_Containe
template <_Format_supported_charT _CharT, class _Ty, formattable<_CharT> _Container>
struct formatter<queue<_Ty, _Container>, _CharT>
: _Adaptor_formatter_base<queue<_Ty, _Container>, _CharT, _RANGES ref_view> {};

template <class _Ty, class _Container>
constexpr bool enable_nonlocking_formatter_optimization<queue<_Ty, _Container>> = false;
#endif // _HAS_CXX23

_EXPORT_STD template <class _Ty, class _Container = vector<_Ty>, class _Pr = less<typename _Container::value_type>>
Expand Down Expand Up @@ -505,6 +508,9 @@ struct uses_allocator<priority_queue<_Ty, _Container, _Pr>, _Alloc> : uses_alloc
template <_Format_supported_charT _CharT, class _Ty, formattable<_CharT> _Container, class _Comp>
struct formatter<priority_queue<_Ty, _Container, _Comp>, _CharT>
: _Adaptor_formatter_base<priority_queue<_Ty, _Container, _Comp>, _CharT, _RANGES ref_view> {};

template <class _Ty, class _Container, class _Compare>
constexpr bool enable_nonlocking_formatter_optimization<priority_queue<_Ty, _Container, _Compare>> = false;
#endif // _HAS_CXX23
_STD_END

Expand Down
3 changes: 3 additions & 0 deletions stl/inc/stack
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,9 @@ struct uses_allocator<stack<_Ty, _Container>, _Alloc> : uses_allocator<_Containe
template <_Format_supported_charT _CharT, class _Ty, formattable<_CharT> _Container>
struct formatter<stack<_Ty, _Container>, _CharT>
: _Adaptor_formatter_base<stack<_Ty, _Container>, _CharT, _RANGES ref_view> {};

template <class _Ty, class _Container>
constexpr bool enable_nonlocking_formatter_optimization<stack<_Ty, _Container>> = false;
#endif // _HAS_CXX23
_STD_END

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@

#include <chrono>
#include <cstddef>
#include <deque>
#include <format>
#include <functional>
#include <list>
#include <queue>
#include <ranges>
#include <stack>
#include <stacktrace>
#include <string>
#include <string_view>
Expand Down Expand Up @@ -142,6 +146,18 @@ static_assert(!enable_nonlocking_formatter_optimization<vector<unoptimized, myal
using R = decltype(vector<int>{} | views::take(3));
static_assert(!enable_nonlocking_formatter_optimization<R>);

// <queue> =====================================================================
static_assert(!enable_nonlocking_formatter_optimization<queue<int>>);
static_assert(!enable_nonlocking_formatter_optimization<queue<int, list<int>>>);
static_assert(!enable_nonlocking_formatter_optimization<priority_queue<int>>);
static_assert(!enable_nonlocking_formatter_optimization<priority_queue<int, deque<int>>>);
static_assert(!enable_nonlocking_formatter_optimization<priority_queue<int, vector<int>, greater<int>>>);
static_assert(!enable_nonlocking_formatter_optimization<priority_queue<int, deque<int>, greater<>>>);

// <stack> =====================================================================
static_assert(!enable_nonlocking_formatter_optimization<stack<int>>);
static_assert(!enable_nonlocking_formatter_optimization<stack<int, vector<int>>>);

// <stacktrace> ================================================================
static_assert(enable_nonlocking_formatter_optimization<stacktrace_entry>);
static_assert(enable_nonlocking_formatter_optimization<stacktrace>);
Expand Down