std::allocator_arg, std::allocator_arg_t
Min standard notice:
Header: <memory>
- std::allocator_arg_t is an empty class type used to disambiguate the overloads of constructors and member functions of allocator-aware objects, including std::tuple, std::function, std::packaged_task,(until C++17) and std::promise.
# Declarations
struct allocator_arg_t { explicit allocator_arg_t() = default; };
(since C++11)
constexpr std::allocator_arg_t allocator_arg {};
(since C++11) (inline since C++17)
# Defect reports
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 2510 | C++11 | the default constructor was non-explicit, which could lead to ambiguity | made explicit |