<optional>
関数
make_optional
オブジェクトを省略可能にします。
template <class T>
constexpr optional<see below> make_optional(T&&);
template <class T, class... Args>
constexpr optional<T> make_optional(Args&&... args);
template <class T, class U, class... Args>
constexpr optional<T> make_optional(initializer_list<U> il, Args&&... args);
nullopt
inline constexpr nullopt_t nullopt(unspecified );
スワップ
template <class T>
void swap(optional<T>&, optional<T>&) noexcept(see below );