template struct utils::StrongOptionalType
Overview
std::optional specialization of the Strong type pattern. More…
#include <StrongOptionalType.h> template <typename ValueType, typename PhantomType> struct StrongOptionalType: public utils::StrongType { // typedefs typedef std::optional<ValueType> OptionalValueType; // methods StrongOptionalType<ValueType, PhantomType>& operator=(const OptionalValueType& value); bool HasValue() const; const ValueType& Value() const; };
Inherited Members
public: // methods template <typename RT> std::enable_if_t<std::is_arithmetic_v<RT>, RT> As() const; bool operator==(const StrongType& other) const; bool operator!=(const StrongType& other) const; bool operator<(const StrongType& other) const; bool operator>(const StrongType& other) const; const ValueType& operator*() const; protected: // fields ValueType value_;
Detailed Documentation
std::optional specialization of the Strong type pattern.
Contains value() and has_value() functions to access the underlying optional.
Methods
bool HasValue() const
Proxy function to access the underlying optional’s has_value() function.
const ValueType& Value() const
Proxy function to access the underlying optional’s value() function.