std::allocator_arg
Материал из cppreference.com
Определено в заголовочном файле <memory>
|
||
struct allocator_arg_t { explicit allocator_arg_t() = default; }; |
(начиная с C++11) | |
constexpr std::allocator_arg_t allocator_arg = std::allocator_arg_t(); |
(начиная с C++11) (до C++17) |
|
inline constexpr std::allocator_arg_t allocator_arg = std::allocator_arg_t(); |
(начиная с C++17) | |
std::allocator_arg_t
это пустой тип класса, используемый для устранения неоднозначности перегрузок конструкторов и функций-элементов объектов, поддерживающих аллокаторы, включая std::tuple, std::function, std::packaged_task, (до C++17) и std::promise. std::allocator_arg
является его константой.
[править] Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
Номер | Применён | Поведение в стандарте | Корректное поведение |
---|---|---|---|
LWG 2510 | C++11 | конструктор по умолчанию был неявным, что могло привести к двусмысленности | сделан явным |
[править] Смотрите также
(C++11) |
проверяет, поддерживает ли указанный тип конструирование с uses_allocator (шаблон класса) |