~optional();
Effects: Если is_trivially_destructible_v<T> != true и *this содержит значение, вызывает
val->T::~T()
Remarks: Если is_trivially_destructible_v<T> == true тогда этот деструктор должен быть тривиальным деструктором.