template<typename T>
eckit::Optional class

Base classes

template<typename T, typename Enable = void>
class OptionalBase<T>

Constructors, destructors, conversion operators

Optional() constexpr noexcept
Optional(T&& v) explicit constexpr noexcept
Optional(const T& v) explicit constexpr
Optional(const Optional<T>& rhs) constexpr
~Optional() defaulted
Optional(Optional<T>&& rhs) noexcept
operator bool() const explicit constexpr

Public functions

void reset() noexcept
auto operator=(const Optional<T>& other) -> Optional<T>&
auto operator=(Optional<T>&& other) -> Optional<T>& noexcept
auto operator=(const None&) -> Optional<T>&
template<typename U, typename enable = typename std::enable_if< ((!std::is_same<typename std::decay<U>::type, Optional<T>>::value)&& (std::is_constructible<T, U>::value)&& (std::is_assignable<T&, U>::value))>::type>
auto operator=(U&& arg) -> Optional<T>&
template<typename... Args>
auto emplace(Args && ... args) -> T&
template<class U, class... Args, typename enable = typename std::enable_if<std::is_constructible<T, std::initializer_list<U>&, Args && ...>::value>::type>
auto emplace(std::initializer_list<U> ilist, Args && ... args) -> T&
auto has_value() const -> bool constexpr
auto value() const & -> const T&
auto value() & -> T&
auto value() && -> T&&
auto operator*() const & -> const T& constexpr
auto operator*() & -> T&
auto operator*() && -> T&&
auto operator()() const & -> const T& constexpr
auto operator()() & -> T&
auto operator()() && -> T&&
auto operator->() const & -> const T* constexpr
auto operator->() & -> T*
This website is beyond its original expiry date and the content may be out of date. The site owner has been notified and may choose to extend the expiry date and remove this banner. If you have any questions about this, please visit our support portal.