[allocator.tag]

# 20 Memory management library [[mem]](./#mem)

## 20.2 Memory [[memory]](memory#allocator.tag)

### 20.2.7 Allocator argument tag [allocator.tag]

[ð](#lib:allocator_arg_t)

`namespace std {
  struct allocator_arg_t { explicit allocator_arg_t() = default; };
  inline constexpr allocator_arg_t allocator_arg{};
}
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/memory.tex#L1271)

The allocator_arg_t struct is an empty class type used as a unique type to
disambiguate constructor and function overloading[.](#1.sentence-1)

Specifically, several types (seetuple [[tuple]](tuple "22.4 Tuples")) have constructors with allocator_arg_t as the first
argument, immediately followed by an argument of a type that meets the[*Cpp17Allocator*](allocator.requirements.general#:Cpp17Allocator "16.4.4.6.1 General [allocator.requirements.general]") requirements ([[allocator.requirements.general]](allocator.requirements.general "16.4.4.6.1 General"))[.](#1.sentence-2)
