std::optional<T>::reset
| void reset() noexcept; | (since C++17) | 
If *this contains a value, destroy that value as if by value().T::~T(). Otherwise, there are no effects.
*this does not contain a value after this call.
See also
| assigns contents (public member function) | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    http://en.cppreference.com/w/cpp/utility/optional/reset