24 #include "VariantSrc.hpp" 26 #include <type_traits> 47 using data_t = variantSrc::variant<T, detail::Empty>;
69 m_data.template emplace<0>(std::move(other.
get()));
82 m_data.template emplace<0>(other.
get());
91 bool operator==(
Option const &other)
const 105 return get() == other.
get();
110 bool operator!=(
Option const &other)
const 112 return !(*
this == other);
120 return m_data.index() == 0;
126 operator bool()
const 139 return variantSrc::template get<T>(m_data);
150 return variantSrc::template get<T>(m_data);
154 template <
typename T>
Option(T data)
Create a full Option.
Definition: Option.hpp:60
Option()
Create an empty Option.
Definition: Option.hpp:53
Definition: Container.cpp:50
Simple Option type based on variantSrc::variant.
Definition: Option.hpp:45
Public definitions of openPMD-api.
Definition: Date.cpp:28
T const & get() const
Access the emplaced object if one is present.
Definition: Option.hpp:137
Definition: Option.hpp:35
bool has_value() const
Definition: Option.hpp:118