BloombergLP::bslma::AllocatorUtil_Traits

Traits extending allocator_traits to pointer-to-memory-resource types.

Synopsis

Declared in <bslma_allocatorutil.h>

template<
    class t_ALLOCATOR,
    class t_TYPE = char>
struct AllocatorUtil_Traits
    : bsl::allocator_traits<t_ALLOCATOR>::rebind_traits<t_TYPE>

Description

Extend the notion of allocator_traits to apply to both standard allocator and to pointer-to-memory-resource types. If the (template parameter) t_ALLOCATOR is a non-pointer type (i.e., an allocator class), then inherits from bsl::allocator_traits<t_ALLOCATOR>::rebind_traits<t_TYPE>. However, if t_ALLOCATOR is a pointer type, then inherits from bsl::allocator_traits<bsl::allocator<t_TYPE>> for pointers to classes derived from bslma::Allocator and from bsl::allocator_traits<bsl::polymorphic_allocator<t_TYPE>> for pointers to other classes derived from bsl::memory_resource. This primary template is for non-pointer t_ALLOCATOR template arguments.

Base Classes

NameDescription
bsl::allocator_traits<t_ALLOCATOR>::rebind_traits<t_TYPE>

Specializations

NameDescription
AllocatorUtil_Traits<t_MEMORY_RSRC*, t_TYPE> Traits for an allocator expressed as a pointer to a memory resource.