15template <
typename T>
class Optional;
36 template <
typename... Args>
84 if (
empty() && other.empty()) {
87 if (
empty() || other.empty()) {
90 return *
ptr() == *other.ptr();
126 template <
typename TT,
typename UU>
128 if (!other.template holdsTypeOf<T>()) {
137 return *
ptr() == *other.template
ptr<T>();
141 if (
this != &other) {
142 mValue.swap(other.mValue);
165 other.mPtr =
nullptr;
182 if (
this != &other) {
184 other.mPtr =
nullptr;
201 if (
empty() && other.empty()) {
204 if (
empty() || other.empty()) {
207 return *
mPtr == *other.mPtr;
const T * ptr() const FL_NOEXCEPT
T * operator->() FL_NOEXCEPT
Optional(T &&value) FL_NOEXCEPT
Optional & operator=(nullopt_t) FL_NOEXCEPT
Optional(Optional &&other) FL_NOEXCEPT
T && operator*() FL_NOEXCEPT
bool has_value() const FL_NOEXCEPT
bool operator!=(const Optional &other) const FL_NOEXCEPT
bool operator==(nullopt_t) const FL_NOEXCEPT
const T & operator*() const FL_NOEXCEPT
const T * operator->() const FL_NOEXCEPT
bool empty() const FL_NOEXCEPT
const T & get() const FL_NOEXCEPT
Optional(nullopt_t) FL_NOEXCEPT
Optional(const Optional &) FL_NOEXCEPT=delete
const T & value() const FL_NOEXCEPT
bool operator!() const FL_NOEXCEPT
bool operator!=(nullopt_t) const FL_NOEXCEPT
Optional & operator=(Optional &&other) FL_NOEXCEPT
bool operator==(const Optional &other) const FL_NOEXCEPT
Optional & operator=(const Optional &) FL_NOEXCEPT=delete
bool operator()() const FL_NOEXCEPT
Optional & operator=(nullopt_t) FL_NOEXCEPT
bool operator==(const T &value) const FL_NOEXCEPT
const T & operator*() const FL_NOEXCEPT
void swap(Optional &other) FL_NOEXCEPT
bool operator()() const FL_NOEXCEPT
bool empty() const FL_NOEXCEPT
bool operator==(const variant< TT, UU > &other) const FL_NOEXCEPT
const T * ptr() const FL_NOEXCEPT
const T & value() const FL_NOEXCEPT
T * operator->() FL_NOEXCEPT
void emplace(T &&value) FL_NOEXCEPT
Emplace with rvalue reference.
Optional(Optional &&other) FL_NOEXCEPT
bool operator!=(const Optional &other) const FL_NOEXCEPT
Optional(nullopt_t) FL_NOEXCEPT
T value_or(T &&default_value) const FL_NOEXCEPT
Optional & operator=(Optional &&other) FL_NOEXCEPT
const T * operator->() const FL_NOEXCEPT
T & operator*() FL_NOEXCEPT
Optional(const Optional &other) FL_NOEXCEPT
Optional & operator=(T &&value) FL_NOEXCEPT
bool operator!() const FL_NOEXCEPT
fl::variant< T, Empty > mValue
T value_or(const T &default_value) const FL_NOEXCEPT
bool operator!=(nullopt_t) const FL_NOEXCEPT
bool operator==(nullopt_t) const FL_NOEXCEPT
Optional(const T &value) FL_NOEXCEPT
bool operator==(const Optional &other) const FL_NOEXCEPT
bool has_value() const FL_NOEXCEPT
Optional & operator=(const T &value) FL_NOEXCEPT
void emplace(Args &&... args) FL_NOEXCEPT
Construct value in-place with variadic arguments.
Optional & operator=(const Optional &other) FL_NOEXCEPT
Optional(T &&value) FL_NOEXCEPT
constexpr T && forward(typename remove_reference< T >::type &t) FL_NOEXCEPT
constexpr remove_reference< T >::type && move(T &&t) FL_NOEXCEPT
constexpr int type_rank< T >::value
optional< T > make_optional(const T &value) FL_NOEXCEPT
constexpr nullopt_t nullopt
Base definition for an LED controller.