Switch code style in Value definition a bit

This commit is contained in:
Oleg Kalachev
2026-08-22 19:49:57 +03:00
parent de155a58ba
commit 19b92060b3
+12 -12
View File
@@ -71,27 +71,27 @@ struct Value {
enum { EMPTY, FLOAT, INT, BOOL, FLOAT_FN, INT_FN, BOOL_FN } type;
union {
void *pointer;
float *_float;
int *_int;
bool *_bool;
float *float_;
int *int_;
bool *bool_;
float (*floatFn)();
int (*intFn)();
bool (*boolFn)();
};
Value() : type(EMPTY), pointer(nullptr) {};
Value(float *pt) : type(FLOAT), _float(pt) {};
Value(int *pt) : type(INT), _int(pt) {};
Value(bool *pt) : type(BOOL), _bool(pt) {};
Value(float *pt) : type(FLOAT), float_(pt) {};
Value(int *pt) : type(INT), int_(pt) {};
Value(bool *pt) : type(BOOL), bool_(pt) {};
Value(float (*fn)()) : type(FLOAT_FN), floatFn(fn) {};
Value(int (*fn)()) : type(INT_FN), intFn(fn) {};
Value(bool (*fn)()) : type(BOOL_FN), boolFn(fn) {};
float get() const {
switch (type) {
case FLOAT: return *_float;
case INT: return *_int;
case BOOL: return *_bool ? 1 : 0;
case FLOAT: return *float_;
case INT: return *int_;
case BOOL: return *bool_ ? 1 : 0;
case FLOAT_FN: return floatFn();
case INT_FN: return intFn();
case BOOL_FN: return boolFn() ? 1 : 0;
@@ -101,9 +101,9 @@ struct Value {
bool set(float value) const {
switch (type) {
case FLOAT: *_float = value; break;
case INT: if (!isfinite(value)) return false; *_int = value; break;
case BOOL: *_bool = (value != 0); break;
case FLOAT: *float_ = value; break;
case INT: if (!isfinite(value)) return false; *int_ = value; break;
case BOOL: *bool_ = (value != 0); break;
default: return false;
}
return true;