Template Class Optional< T & >#

Nested Relationships#

Nested Types#

Class Documentation#

template<typename T>
class Optional<T&>#

Public Types

using value_type = T&#

Public Functions

constexpr Optional() noexcept = default#
inline constexpr Optional(NullOptT) noexcept#
constexpr Optional(const Optional &other) noexcept = default#
constexpr Optional(Optional &&other) noexcept = default#
template<typename U = T>
inline explicit(!std::is_convertible_v<U, T>) constexpr Optional(U &&u) noexcept#
template<typename U>
inline explicit(!std::is_convertible_v<U, T>) constexpr Optional(const Optional<U> &rhs) noexcept#
constexpr ~Optional() = default#
inline constexpr Optional &operator=(NullOptT) noexcept#
constexpr Optional &operator=(const Optional &rhs) noexcept = default#
constexpr Optional &operator=(Optional &&rhs) noexcept = default#
template<typename U = T>
inline constexpr Optional &operator=(U &&u)#
template<typename U>
inline constexpr Optional &operator=(const Optional<U> &rhs) noexcept#
inline constexpr const T *operator->() const noexcept#
inline constexpr T *operator->() noexcept#
inline constexpr T &operator*() noexcept#
inline constexpr T &operator*() const noexcept#
inline explicit constexpr operator bool() const noexcept#
inline constexpr bool HasValue() const noexcept#
inline constexpr T &Value()#
inline constexpr const T &Value() const#
template<typename U>
inline constexpr T ValueOr(U &&u) const#
template<typename U>
inline constexpr Optional &Emplace(U &&u) noexcept#
inline constexpr void Swap(Optional &rhs) noexcept#
inline constexpr void Reset() noexcept#
inline constexpr Optional Take()#
template<typename F, typename Ret = std::remove_cv_t<std::invoke_result_t<F, T&>>>
inline constexpr auto Transform(F &&f) &#
template<typename F, typename Ret = std::remove_cv_t<std::invoke_result_t<F, const T&>>>
inline constexpr auto Transform(F &&f) const &#
template<typename F, typename Ret = std::remove_cv_t<std::invoke_result_t<F, T>>>
inline constexpr auto Transform(F &&f) &&#
template<typename F, typename Ret = std::remove_cv_t<std::invoke_result_t<F, const T>>>
inline constexpr auto Transform(F &&f) const &&#
template<typename F>
inline constexpr auto AndThen(F &&f) &#
template<typename F>
inline constexpr auto AndThen(F &&f) const &#
template<typename F>
inline constexpr auto AndThen(F &&f) &&#
template<typename F>
inline constexpr auto AndThen(F &&f) const &&#
template<typename F>
inline constexpr Optional<T> OrElse(F &&f) const &#
template<typename F>
inline constexpr Optional<T> OrElse(F &&f) &&#
template<typename F>
inline constexpr T ValueOrElse(F &&f) const &#
template<typename F>
inline constexpr T ValueOrElse(F &&f) &&#
template<typename F, typename U>
inline constexpr auto TransformOrElse(F &&f, U &&u) const &#
template<typename F, typename U>
inline constexpr auto TransformOrElse(F &&f, U &&u) &&#
template<typename F, typename U>
inline constexpr U TransformOr(F &&f, U &&u) const &#
template<typename F, typename U>
inline constexpr U TransformOr(F &&f, U &&u) &&#