std::allocator_arg, std::allocator_arg_t
Определён в заголовочном файле <memory> | ||
|---|---|---|
struct allocator_arg_t { explicit allocator_arg_t() = default; };
| (1) | (начиная с C++11) |
constexpr std::allocator_arg_t allocator_arg {};
| (2) | (начиная с C++11) (inline начиная с C++17) |
1)
std::allocator_arg_t — это тип пустого класса, используемый для устранения неоднозначности перегрузок конструкторов и функций-членов объектов, учитывающих аллокатор, включая std::tuple, std::function, std::packaged_task,(до C++17) и std::promise.
2)
std::allocator_arg — это экземпляр (1), который можно передавать конструкторам и функциям-членам таких разрешённых типов.Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение согласно опубликованной версии | Корректное поведение |
|---|---|---|---|
| LWG 2510 | C++11 | конструктор по умолчанию не был явным, что могло привести к неоднозначности | сделан явным |
См. также
|
(C++11) | проверяет, поддерживает ли указанный тип конструирование с использованием аллокатора (шаблон класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/allocator_arg_t