49 typename T::value_type;
51 typename T::const_iterator;
52 { t.begin() } -> std::input_or_output_iterator;
53 { t.end() } -> std::input_or_output_iterator;
54 { t.size() } -> std::convertible_to<std::size_t>;
55 { t.empty() } -> std::convertible_to<bool>;
75 { t.front() } -> std::same_as<typename T::value_type&>;
76 { t.back() } -> std::same_as<typename T::value_type&>;
96 { t.find(std::declval<typename T::key_type>()) } -> std::same_as<typename T::iterator>;
97 { t.count(std::declval<typename T::key_type>()) } -> std::convertible_to<std::size_t>;
118 typename T::mapped_type;
141 { t.capacity() } -> std::convertible_to<std::size_t>;
176 { t.insert(it, v) } -> std::same_as<typename T::iterator>;
193 { t.erase(it) } -> std::same_as<typename T::iterator>;
210 { t[i] } -> std::same_as<typename T::value_type&>;
229 { t.max_size() } -> std::convertible_to<std::size_t>;
270 { t.release(std::declval<
decltype(t.acquire())>()) };
271 { t.available_count() } -> std::convertible_to<std::size_t>;
291 { t.full() } -> std::convertible_to<bool>;
292 { t.capacity() } -> std::convertible_to<std::size_t>;
A container that provides key-based access.
A container with fixed maximum capacity.
A container that operates as a circular buffer.
A container that can be cleared.
A type that satisfies basic container requirements.
A container that supports erase operations.
A container that supports insert operations.
A container that maps keys to values.
A container that supports object pooling operations.
A container that supports random access via operator[].
A container that can be resized.
A container that provides sequential access and modification.
A container designed for thread-safe access.