23 General utilities library [utilities]

23.10 Memory [memory]

23.10.7 uses_­allocator [allocator.uses]

23.10.7.1 uses_­allocator trait [allocator.uses.trait]

template <class T, class Alloc> struct uses_allocator;

Remarks: Автоматически определяет, T есть ли вложенный allocator_­type конвертируемый из Alloc. Отвечает BinaryTypeTrait требованиям. Реализация должна обеспечивать определение, производное от true_­type того, qualified-id T​::​allocator_­type является ли действительным и обозначает тип ([temp.deduct]), а в is_­convertible_­v<Alloc, T​::​allocator_­type> != falseпротивном случае оно должно быть производным от false_­type. Программа может специализировать этот шаблон, чтобы он производился от true_­type определяемого пользователем типа T , который не имеет вложенного, allocator_­type но, тем не менее, может быть создан с помощью распределителя, где либо:

  • первый аргумент конструктора имеет тип, allocator_­arg_­t а второй аргумент имеет тип Alloc или

  • последний аргумент конструктора имеет тип Alloc.