1 #ifndef LIBFILEZILLA_OPTIONAL_HEADER
2 #define LIBFILEZILLA_OPTIONAL_HEADER
30 explicit operator bool()
const {
return v_ != 0; };
32 T& operator*() {
return *v_; }
33 T
const& operator*()
const {
return *v_; }
35 T* operator->() {
return v_; }
36 T
const* operator->()
const {
return v_; }
39 inline bool operator!=(
sparse_optional<T> const& cmp)
const {
return !(*
this == cmp); }
40 bool operator<(sparse_optional<T>
const& cmp)
const;
56 sparse_optional<T>::sparse_optional(T
const& v)
62 sparse_optional<T>::sparse_optional(sparse_optional<T>
const& v)
73 sparse_optional<T>::sparse_optional(sparse_optional<T> && v) noexcept
80 sparse_optional<T>::~sparse_optional()
86 void sparse_optional<T>::clear()
93 sparse_optional<T>& sparse_optional<T>::operator=(sparse_optional<T>
const& v)
109 sparse_optional<T>& sparse_optional<T>::operator=(sparse_optional<T> && v) noexcept
121 bool sparse_optional<T>::operator==(sparse_optional<T>
const& cmp)
const
123 if (!v_ && !cmp.v_) {
127 if (!v_ || !cmp.v_) {
131 return *v_ == *cmp.v_;
135 bool sparse_optional<T>::operator<(sparse_optional<T>
const& cmp)
const
137 if (!v_ || !cmp.v_) {
141 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