nw::Variant

template<typename ...Ts>
struct Variant

Wrapper around std::variant.

Public Functions

Variant() = default
Variant(const Variant&) = default
Variant(Variant&&) = default
Variant &operator=(const Variant&) = default
Variant &operator=(Variant&&) = default
template<typename T>
inline Variant(T value)
template<typename T>
inline bool is() const noexcept

Checks variant value is T

template<typename T>
inline T &as()

Gets variant value as T

template<typename T>
inline const T &as() const

Gets variant value as T

template<typename T>
inline std::optional<T> get() const

Checks variant value is std::optional<T>

Note

This does entail a copy

inline bool operator<(const Variant &rhs) const noexcept
inline bool operator==(const Variant &rhs) const noexcept
inline bool empty() const noexcept

Public Members

std::variant<std::monostate, Ts...> payload_