#include <eckit/utils/Optional.h>
template<typename T>
Optional class
Base classes
-
template<typename T, typename Enable = void>class OptionalBase<T>
Constructors, destructors, conversion operators
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::auto operator=(U&& arg) -> Optional<T>&
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> -
template<typename... Args>auto emplace(Args && ... args) -> T&
-
template<class U, class... Args, typename enable = typename std::auto emplace(std::
enable_if<std:: is_constructible<T, std:: initializer_list<U>&, Args && ...>::value>::type> 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*