std::allocator_arg(3)

NAME
std::allocator_arg - std::allocator_arg

Synopsis
   Defined in header <memory>
   struct allocator_arg_t { explicit allocator_arg_t() = default; }; (since C++11)
   constexpr std::allocator_arg_t allocator_arg = (since C++11)
   std::allocator_arg_t(); (until C++17)
   inline constexpr std::allocator_arg_t allocator_arg = (since C++17)
   std::allocator_arg_t();
   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. 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 made explicit
                       could lead to ambiguity

See also
   uses_allocator checks if the specified type supports uses-allocator construction
   (C++11) (class template)