1 #ifndef SIPLASPLAS_VARIANT_OPTIONAL_HPP 2 #define SIPLASPLAS_VARIANT_OPTIONAL_HPP 15 template<
typename Arg,
typename... Args>
16 Optional(Arg&& arg, Args&&... args) :
17 _variant{T{std::forward<Arg>(arg), std::forward<Args>(args)...}}
22 Optional{other.empty() ? Optional() : other.get()}
27 Optional{other.empty() ? Optional() : std::move(std::move(other).
get())}
31 Optional& operator=(U&& value)
33 _variant = T{std::forward<U>(value)};
46 _variant = other.get();
61 _variant = std::move(std::move(other).
get());
69 return _variant.template get<T>();
74 return _variant.template get<T>();
77 const T* operator->()
const 94 return _variant.empty();
97 explicit operator bool()
const 129 #endif // SIPLASPLAS_VARIANT_OPTIONAL_HPP Definition: messaging.hpp:8
Definition: optional.hpp:106
Definition: optional.hpp:10