32 template<typename T, typename = std::enable_if_t<std::is_integral<T>::value>>
47 Value(
const std::string &stringValue)
95 ValueType
type()
const {
return m_data.type; }
179 template<typename T, typename = std::enable_if_t<std::is_integral<T>::value>>
240 value_add(&v1.m_data, &v2.m_data, &ret.m_data);
268 value_mod(&v1.m_data, &v2.m_data, &ret.m_data);
friend Value operator-(const Value &v1, const Value &v2)
Definition value.h:244
bool isString() const
Definition value.h:119
const Value & operator=(T v)
Definition value.h:180
~Value()
Definition value.h:80
friend Value operator/(const Value &v1, const Value &v2)
Definition value.h:258
friend bool operator>(const Value &v1, const Value &v2)
Definition value.h:229
friend Value operator*(const Value &v1, const Value &v2)
Definition value.h:251
std::string toString() const
Definition value.h:137
const Value & operator=(const std::string &v)
Definition value.h:192
friend bool operator>=(const Value &v1, const Value &v2)
Definition value.h:233
friend Value operator+(const Value &v1, const Value &v2)
Definition value.h:237
void subtract(const Value &v)
Definition value.h:162
long toLong() const
Definition value.h:128
void mod(const Value &v)
Definition value.h:171
Value(T numberValue)
Definition value.h:33
Value(const void *pointerValue)
Definition value.h:61
friend Value operator%(const Value &v1, const Value &v2)
Definition value.h:265
ValueType type() const
Definition value.h:95
const ValueData & data() const
Definition value.h:86
const void * toPointer() const
Definition value.h:156
int toInt() const
Definition value.h:125
const Value & operator=(const char *v)
Definition value.h:198
const Value & operator=(const Value &v)
Definition value.h:216
friend bool operator<=(const Value &v1, const Value &v2)
Definition value.h:235
bool isNegativeInfinity() const
Definition value.h:101
bool isInfinity() const
Definition value.h:98
bool isInt() const
Definition value.h:113
void add(const Value &v)
Definition value.h:159
void multiply(const Value &v)
Definition value.h:165
Value(bool boolValue)
Definition value.h:40
Value(const Value &v)
Definition value.h:74
friend bool operator!=(const Value &v1, const Value &v2)
Definition value.h:227
bool isNaN() const
Definition value.h:104
bool toBool() const
Definition value.h:134
friend bool operator<(const Value &v1, const Value &v2)
Definition value.h:231
bool isBool() const
Definition value.h:116
Rgb toRgba() const
Definition value.h:153
ValueData & data()
Definition value.h:92
const Value & operator=(bool v)
Definition value.h:186
const Value & operator=(const ValueData &v)
Definition value.h:210
Value(double numberValue=0.0)
Definition value.h:25
bool isPointer() const
Definition value.h:122
const Value & operator=(const void *v)
Definition value.h:204
Value(const char *stringValue)
Definition value.h:54
std::u16string toUtf16() const
Definition value.h:145
bool isValidNumber() const
Definition value.h:110
void divide(const Value &v)
Definition value.h:168
Value(const ValueData &v)
Definition value.h:68
bool isNumber() const
Definition value.h:107
const Value & operator=(double v)
Definition value.h:173
double toDouble() const
Definition value.h:131
friend bool operator==(const Value &v1, const Value &v2)
Definition value.h:225
Value(const std::string &stringValue)
Definition value.h:47
#define LIBSCRATCHCPP_EXPORT
Definition global.h:17
The main namespace of the library.
Definition asset.h:10
void value_mod(const ValueData *v1, const ValueData *v2, ValueData *dst)
Definition value_functions.cpp:526
bool value_isInfinity(const ValueData *v)
Definition value_functions.cpp:121
bool value_isNaN(const ValueData *v)
Definition value_functions.cpp:147
unsigned int Rgb
Definition value_functions.h:11
int value_toInt(const ValueData *v)
Definition value_functions.cpp:240
void value_assign_copy(ValueData *v, const ValueData *another)
Definition value_functions.cpp:94
void value_assign_pointer(ValueData *v, const void *pointerValue)
Definition value_functions.cpp:85
double value_toDouble(const ValueData *v)
Definition value_functions.cpp:253
bool value_lower(const ValueData *v1, const ValueData *v2)
Definition value_functions.cpp:548
void value_free(ValueData *v)
Definition value_functions.cpp:18
void value_toString(const ValueData *v, std::string *dst)
Definition value_functions.cpp:282
void value_multiply(const ValueData *v1, const ValueData *v2, ValueData *dst)
Definition value_functions.cpp:514
void value_toUtf16(const ValueData *v, std::u16string *dst)
Definition value_functions.cpp:305
bool value_isValidNumber(const ValueData *v)
Definition value_functions.cpp:166
void value_init(ValueData *v)
Definition value_functions.cpp:30
void value_assign_bool(ValueData *v, bool boolValue)
Definition value_functions.cpp:48
bool value_toBool(const ValueData *v)
Definition value_functions.cpp:266
void value_assign_string(ValueData *v, const std::string &stringValue)
Definition value_functions.cpp:57
bool value_isPointer(const ValueData *v)
Definition value_functions.cpp:207
bool value_isString(const ValueData *v)
Definition value_functions.cpp:219
const void * value_toPointer(const ValueData *v)
Definition value_functions.cpp:366
void value_divide(const ValueData *v1, const ValueData *v2, ValueData *dst)
Definition value_functions.cpp:520
bool value_isNumber(const ValueData *v)
Definition value_functions.cpp:160
bool value_isBool(const ValueData *v)
Definition value_functions.cpp:213
bool value_isInt(const ValueData *v)
Definition value_functions.cpp:186
void value_subtract(const ValueData *v1, const ValueData *v2, ValueData *dst)
Definition value_functions.cpp:508
bool value_isNegativeInfinity(const ValueData *v)
Definition value_functions.cpp:134
void value_add(const ValueData *v1, const ValueData *v2, ValueData *dst)
Definition value_functions.cpp:502
void value_assign_double(ValueData *v, double numberValue)
Definition value_functions.cpp:39
long value_toLong(const ValueData *v)
Definition value_functions.cpp:227
bool value_greater(const ValueData *v1, const ValueData *v2)
Definition value_functions.cpp:542
Rgb value_toRgba(const ValueData *v)
Definition value_functions.cpp:314
void value_assign_cstring(ValueData *v, const char *stringValue)
Definition value_functions.cpp:63
bool value_equals(const ValueData *v1, const ValueData *v2)
Definition value_functions.cpp:536
The ValueData struct holds the data of Value. It's used in compiled Scratch code for better performan...
Definition valuedata.h:26