Template Class optional¶
Defined in File Optional.h
Page Contents
Class Documentation¶
-
template<class T>
class optional : private OptionalBase<T>¶ -
Public Functions
-
constexpr optional() noexcept = default¶
-
template<typename U = T, typename std::enable_if<std::is_constructible<T, U&&>::value && !std::is_same<typename std::decay<U>::type, in_place_t>::value && !std::is_same<typename std::decay<U>::type, optional<T>>::value && std::is_convertible<U&&, T>::value, bool>::type = false>
inline constexpr optional(U &&u)¶
-
template<typename U = T, typename std::enable_if<std::is_constructible<T, U&&>::value && !std::is_same<typename std::decay<U>::type, in_place_t>::value && !std::is_same<typename std::decay<U>::type, optional<T>>::value && !std::is_convertible<U&&, T>::value, bool>::type = false>
inline explicit constexpr optional(U &&u)¶
-
template<class U, class ...Args, typename std::enable_if<std::is_constructible<T, std::initializer_list<U>>::value, bool>::type = false>
inline explicit constexpr optional(in_place_t, std::initializer_list<U> il, Args&&... args)¶
-
~optional() = default¶
-
template<class U = T>
inline auto operator=(U &&v) -> typename std::enable_if<std::is_constructible<T, U>::value && !std::is_same<typename std::decay<U>::type, optional<T>>::value && (std::is_scalar<T>::value || std::is_same<typename std::decay<U>::type, T>::value) && std::is_assignable<T&, U>::value, optional&>::type¶
-
inline void swap(optional<T> &rhs) noexcept(std::is_nothrow_move_constructible<T>::value && noexcept(std::swap(std::declval<T&>(), std::declval<T&>())))¶
-
inline explicit constexpr operator bool() const noexcept¶
-
inline constexpr bool has_value() const noexcept¶
-
inline void reset() noexcept¶
-
constexpr optional() noexcept = default¶