13#if !defined(ULTRA_VALUE_H)
28enum class param_address : std::size_t;
30constexpr param_address
operator""_addr(
unsigned long long a)
32 return static_cast<param_address
>(a);
38enum domain_t {d_void = 0, d_int, d_double, d_string, d_nullary, d_address,
39 d_variable, d_ivector};
41using D_VOID = std::monostate;
43using D_DOUBLE = double;
44using D_STRING = std::string;
45using D_NULLARY = nullary;
46using D_ADDRESS = param_address;
47using D_VARIABLE = src::variable;
48using D_IVECTOR = std::vector<int>;
54using value_t = std::variant<D_VOID, D_INT, D_DOUBLE, D_STRING,
55 const D_NULLARY *, D_ADDRESS,
const D_VARIABLE *,
65std::ostream &operator<<(std::ostream &,
const value_t &);
Definition symbol_set.h:115
bool load(std::istream &in, F *f)
Definition fitness.tcc:190
const D_NULLARY * get_if_nullary(const value_t &v) noexcept
Definition value.cc:86
bool save(std::ostream &out, F f)
Definition fitness.h:151
bool basic_data_type(domain_t d) noexcept
Definition value.cc:40
bool has_value(const value_t &v) noexcept
Definition value.cc:31
std::variant< D_VOID, D_INT, D_DOUBLE, D_STRING, const D_NULLARY *, D_ADDRESS, const D_VARIABLE *, D_IVECTOR > value_t
Definition value.h:54
bool numerical_data_type(domain_t d) noexcept
Definition value.cc:65
domain_t
Definition value.h:38