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