[allocator.requirements.completeness] # 16 Library introduction [[library]](./#library) ## 16.4 Library-wide requirements [[requirements]](requirements#allocator.requirements.completeness) ### 16.4.4 Requirements on types and expressions [[utility.requirements]](utility.requirements#allocator.requirements.completeness) #### 16.4.4.6 *Cpp17Allocator* requirements [[allocator.requirements]](allocator.requirements#completeness) #### 16.4.4.6.2 Allocator completeness requirements [allocator.requirements.completeness] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L2964) If X is an allocator class for type T,X additionally meets the allocator completeness requirements if, whether or not T is a complete type: - [(1.1)](#1.1) X is a complete type, and - [(1.2)](#1.2) all the member types of [allocator_traits](allocator.traits "20.2.9 Allocator traits [allocator.traits]") other than value_type are complete types[.](#1.sentence-1)