std::experimental::optional::optional - cppreference.com ([original](http://en.cppreference.com/w/cpp/experimental/optional/optional.html)) (raw)
| Technical Specification |
|---|
| Filesystem library (filesystem TS) |
| Library fundamentals (library fundamentals TS) |
| Library fundamentals 2 (library fundamentals TS v2) |
| Library fundamentals 3 (library fundamentals TS v3) |
| Extensions for parallelism (parallelism TS) |
| Extensions for parallelism 2 (parallelism TS v2) |
| Extensions for concurrency (concurrency TS) |
| Extensions for concurrency 2 (concurrency TS v2) |
| Concepts (concepts TS) |
| Ranges (ranges TS) |
| Reflection (reflection TS) |
| Mathematical special functions (special functions TR) |
| Experimental Non-TS |
| Pattern Matching |
| Linear Algebra |
| std::execution |
| Contracts |
| 2D Graphics |
| Member functions |
|---|
| optional::optional |
| optional::~optional |
| optional::operator= |
| Observers |
| optional::operator->optional::operator* |
| optional::operator bool |
| optional::value |
| optional::value_or |
| Modifiers |
| optional::emplace |
| optional::swap |
| Non-member functions |
| operator==operator!=operator<operator<=operator>operator>= |
| make_optional |
| swap |
| Helper classes |
| hash |
| nullopt_t |
| in_place_t |
| bad_optional_access |
| Helper objects |
| nullopt |
| in_place |
| ~optional(); | | (library fundamentals TS) | | ------------- | | ------------------------- |
If the object contains a value and the type T is not trivially destructible (see std::is_trivially_destructible), destroys the contained value by calling its destructor, as if by val->T::~T().
Otherwise, does nothing.
[edit] Notes
If T is trivially-destructible, then this destructor is also trivial, so optional<T> is also trivially-destructible.