Files
cppdraft_translate/cppdraft/allocator/uses/trait.md
2025-10-25 03:02:53 +03:00

1.6 KiB
Raw Blame History

[allocator.uses.trait]

20 Memory management library [mem]

20.2 Memory [memory]

20.2.8 uses_allocator [allocator.uses]

20.2.8.1 uses_allocator trait [allocator.uses.trait]

🔗

template<class T, class Alloc> struct uses_allocator;

1

#

Remarks: Automatically detects whether T has a nested allocator_type that is convertible from Alloc.

Meets the Cpp17BinaryTypeTrait requirements ([meta.rqmts]).

The implementation shall provide a definition that is derived from true_type if the qualified-id T::allocator_type is valid and denotes a type ([temp.deduct]) andis_convertible_v<Alloc, T::allocator_type> != false, otherwise it shall be derived from false_type.

A program may specialize this template to derive fromtrue_type for a program-defined type T that does not have a nestedallocator_type but nonetheless can be constructed with an allocator where either:

the first argument of a constructor has type allocator_arg_t and the second argument has type Alloc or

the last argument of a constructor has type Alloc.