71 virtual explicit operator
bool() const noexcept = 0;
91 bool operator==(
std::nullopt_t)
const
110 return std::partial_ordering::less;
112 return std::partial_ordering::greater;
114 return std::partial_ordering::equivalent;
119 template <
typename T,
typename U,
typename = std::enable_if_t<!is_optional_v<U>, sfinae>>
124 return lhs.get() == rhs;
127 template <
typename T,
typename U,
typename = std::enable_if_t<!is_optional_v<U>, sfinae>>
132 return lhs == rhs.get();
135 template <
typename T,
typename U,
typename = std::enable_if_t<!is_optional_v<U>, sfinae>>
139 return std::partial_ordering::less;
140 return lhs.get() <=> rhs;
143 template <
typename T,
typename U,
typename = std::enable_if_t<!is_optional_v<U>, sfinae>>
147 return std::partial_ordering::greater;
148 return lhs <=> rhs.get();
const value_type * const_pointer
bool operator!=(std::nullopt_t) const
std::partial_ordering operator<=>(const i_optional< T > &that) const
bool operator==(const i_optional< T > &that) const
virtual bool has_value() const noexcept=0
const value_type & const_reference
virtual const_reference value_or(const_reference aDefaultValue) const =0
virtual reference value()=0
constexpr bool is_optional_v
std::partial_ordering operator<=>(const i_container< T, ConstIteratorType, IteratorType > &lhs, const i_container< T, ConstIteratorType, IteratorType > &rhs)
static constexpr bool value