[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<Allocator>​::​destroy and
then the storage is deallocated[.](#2.sentence-1)
