34 template<
typename T, T value>
37 static constexpr T
get() {
return value;}
38 static bool is(
const T& v) {
return get() == v;}
41 template<
typename T, std::
int64_t numerator, std::
int64_t denominator = 1>
44 static constexpr T
get() {
return (T) numerator / denominator;}
45 static bool is(
const T& v) {
return get() == v;}
51 static constexpr T
get() {
return std::numeric_limits<T>::quiet_NaN();}
52 static bool is(
const T& v) {
return std::isnan(v);}
58 template <
typename T,
typename DEFAULT>
64 bool is_default ()
const {
return DEFAULT::is(value_);}
65 bool is_set ()
const {
return !is_default();}
67 const T&
get ()
const {
return value_;}
68 T&
get () {
return value_;}
69 operator const T&()
const {
return get();}
70 operator T&() {
return get();}
78 template<
typename T, T default_value_>
81 template<
typename T, std::
int64_t numerator, std::
int64_t denominator = 1>
84 template<std::
int64_t numerator, std::
int64_t denominator = 1>
87 template<std::
int64_t numerator, std::
int64_t denominator = 1>
Definition: value_with_default.h:42
Enumerates the possible types a cell can be determined by it's current value.
Definition: cell.hpp:36
Encapsulates a value with a default value
Definition: value_with_default.h:59
Definition: value_with_default.h:35
Definition: value_with_default.h:49