46 template <
typename T,
typename = sfinae>
49 typedef std::optional<T>
type;
54 typedef std::optional<enum_t<T>>
type;
70 iValue{ aDefaultValue }
74 iValue{ aOther.iValue }
84 return setting_type_v<T>;
88 return setting_type_name_v<T>;
96 iValue = std::nullopt;
107 return get<T>() == aRhs.
get<T>();
117 return get<T>() < aRhs.
get<T>();
120 void const* data()
const override
126 void* data()
override
abstract_return_t< T const > get() const
virtual bool is_set() const =0
virtual setting_type type() const =0
i_setting_value abstract_type
i_string const & type_name() const override
bool operator==(const i_setting_value &aRhs) const
bool is_set() const override
setting_value(i_setting_value const &aOther)
setting_type type() const override
setting_value(T const &aDefaultValue)
bool operator<(const i_setting_value &aRhs) const
setting_value(self_type const &aOther)
setting_container_type< T >::type container_type
std::optional< enum_t< T > > type