1 #ifndef LIBFILEZILLA_OPTIONAL_HEADER 2 #define LIBFILEZILLA_OPTIONAL_HEADER 34 explicit operator bool()
const {
return v_ !=
nullptr; };
36 T& operator*() {
return *v_; }
37 T
const& operator*()
const {
return *v_; }
39 T* operator->() {
return v_; }
40 T
const* operator->()
const {
return v_; }
43 inline bool operator!=(
sparse_optional<T> const& cmp)
const {
return !(*
this == cmp); }
44 bool operator<(sparse_optional<T>
const& cmp)
const;
60 sparse_optional<T>::sparse_optional(T
const& v)
83 sparse_optional<T>::sparse_optional(sparse_optional<T> && v) noexcept
90 sparse_optional<T>::~sparse_optional()
96 void sparse_optional<T>::clear()
103 sparse_optional<T>& sparse_optional<T>::operator=(sparse_optional<T>
const& v)
119 sparse_optional<T>& sparse_optional<T>::operator=(sparse_optional<T> && v) noexcept
131 bool sparse_optional<T>::operator==(sparse_optional<T>
const& cmp)
const 133 if (!v_ && !cmp.v_) {
137 if (!v_ || !cmp.v_) {
141 return *v_ == *cmp.v_;
145 bool sparse_optional<T>::operator<(sparse_optional<T>
const& cmp)
const 147 if (!v_ || !cmp.v_) {
148 return cmp.v_ !=
nullptr;
151 return *v_ < *cmp.v_;
The namespace used by libfilezilla.
Definition: apply.hpp:16
Similar to C++17's std::optional, but stores the data in dynamic memory.
Definition: optional.hpp:19