[indirect.dtor] # 20 Memory management library [[mem]](./#mem) ## 20.4 Types for composite class design [[mem.composite.types]](mem.composite.types#indirect.dtor) ### 20.4.1 Class template indirect [[indirect]](indirect#dtor) #### 20.4.1.4 Destructor [indirect.dtor] [🔗](#lib:indirect,destructor) `constexpr ~indirect(); ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/memory.tex#L6338) *Mandates*: T is a complete type[.](#1.sentence-1) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/memory.tex#L6342) *Effects*: If *this is not valueless, destroys the owned object using allocator_traits​::​destroy and then the storage is deallocated[.](#2.sentence-1)