std::uses_allocator<std::flat_map>

Header: <flat_map>

Provides a transparent specialization of the std::uses_allocator type trait for std::flat_map: the container adaptor uses allocator if and only if the underlying container does.

# Declarations

template< class Key, class T, class Compare,
class KeyContainer, class MappedContainer, class Allocator >
struct uses_allocator<std::flat_map<Key, T, Compare,
KeyContainer, MappedContainer>, Allocator>
: std::bool_constant<std::uses_allocator_v<KeyContainer, Allocator> &&
std::uses_allocator_v<MappedContainer, Allocator>> {};

(since C++23)

# Example

#include <memory>
#include <flat_map>
 
static_assert(
    std::uses_allocator<std::flat_map<int, int>, void>::value == false &&
    std::uses_allocator<std::flat_map<int, int>, std::allocator<int>>::value == true
);
 
int main() {}

# See also