52 const var& thisObject;
57 using NativeFunction = std::function<var(const NativeFunctionArgs&)>;
66 var (
const var& valueToCopy);
67 var (
int value) noexcept;
68 var (int64 value) noexcept;
69 var (
bool value) noexcept;
70 var (
double value) noexcept;
71 var (
const char* value);
72 var (
const wchar_t* value);
77 var (NativeFunction method) noexcept;
78 var (
const void* binaryData,
size_t dataSize);
81 var& operator= (
const var& valueToCopy);
82 var& operator= (
int value);
83 var& operator= (int64 value);
84 var& operator= (
bool value);
85 var& operator= (
double value);
86 var& operator= (
const char* value);
87 var& operator= (
const wchar_t* value);
92 var& operator= (NativeFunction method);
98 var& operator= (
var&&) noexcept;
101 void swapWith (
var& other) noexcept;
104 static var undefined() noexcept;
107 operator int()
const noexcept;
108 operator int64()
const noexcept;
109 operator bool()
const noexcept;
110 operator float()
const noexcept;
111 operator double()
const noexcept;
135 bool isVoid()
const noexcept;
136 bool isUndefined()
const noexcept;
137 bool isInt()
const noexcept;
138 bool isInt64()
const noexcept;
139 bool isBool()
const noexcept;
140 bool isDouble()
const noexcept;
141 bool isString()
const noexcept;
142 bool isObject()
const noexcept;
143 bool isArray()
const noexcept;
144 bool isBinaryData()
const noexcept;
145 bool isMethod()
const noexcept;
152 bool equals (
const var& other)
const noexcept;
158 bool equalsWithSameType (
const var& other)
const noexcept;
161 bool hasSameTypeAs (
const var& other)
const noexcept;
167 var clone()
const noexcept;
182 const var& operator[] (
int arrayIndex)
const;
191 var& operator[] (
int arrayIndex);
200 void append (
const var& valueToAppend);
209 void insert (
int index,
const var& value);
216 void remove (
int index);
224 void resize (
int numArrayElementsWanted);
230 int indexOf (
const var& value)
const;
234 const var& operator[] (
const Identifier& propertyName)
const;
236 const var& operator[] (
const char* propertyName)
const;
239 var getProperty (
const Identifier& propertyName,
const var& defaultReturnValue)
const;
241 bool hasProperty (
const Identifier& propertyName)
const noexcept;
256 var invoke (
const Identifier& method,
const var* arguments,
int numArguments)
const;
258 NativeFunction getNativeFunction()
const;
282 JUCE_DEPRECATED_STATIC (
static const var null;)
287 class VariantType_Void;
288 class VariantType_Undefined;
289 class VariantType_Int;
290 class VariantType_Int64;
291 class VariantType_Double;
292 class VariantType_Bool;
293 class VariantType_String;
294 class VariantType_Object;
295 class VariantType_Array;
296 class VariantType_Binary;
297 class VariantType_Method;
305 char stringValue[
sizeof (
String)];
308 NativeFunction* methodValue;
311 friend bool canCompare (
const var&,
const var&);
313 const VariantType* type;
317 var (
const VariantType&) noexcept;
322 var (
const void*) =
delete;
323 var& operator= (
const void*) =
delete;
327 JUCE_API
bool operator== (
const var&,
const var&);
329 JUCE_API
bool operator!= (
const var&,
const var&);
331 JUCE_API
bool operator< (
const var&,
const var&);
333 JUCE_API
bool operator<= (
const var&,
const var&);
335 JUCE_API
bool operator> (
const var&,
const var&);
337 JUCE_API
bool operator>= (
const var&,
const var&);
339 JUCE_API
bool operator== (
const var&,
const String&);
340 JUCE_API
bool operator!= (
const var&,
const String&);
341 JUCE_API
bool operator== (
const var&,
const char*);
342 JUCE_API
bool operator!= (
const var&,
const char*);
349 template <
typename Type>
352 static Type fromVar (
const var& v) {
return static_cast<Type
> (v); }
353 static var toVar (
const Type& t) {
return t; }
360 static String fromVar (
const var& v) {
return v.toString(); }
361 static var toVar (
const String& s) {
return s; }