std::allocator_arg
Defined in | memory |
inline constexpr std::allocator_arg_t allocator_arg = std::allocator_arg_t();
struct allocator_arg_t { explicit allocator_arg_t() = default; };
constexpr std::allocator_arg_t allocator_arg = std::allocator_arg_t(); // Until C++17
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, (do C++17)and std::promise. std::allocator_arg is a constant of it.
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
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 |