15#ifndef _A_UTILS_UTIL_VARIANT_VARIANT_HEADER_INCLUDED_
16#define _A_UTILS_UTIL_VARIANT_VARIANT_HEADER_INCLUDED_
234 void reset(
const bool* array_storage, std::size_t array_size);
241 void reset(
const std::int8_t* array_storage, std::size_t array_size);
248 void reset(
const std::uint8_t* array_storage, std::size_t array_size);
255 void reset(
const std::int16_t* array_storage, std::size_t array_size);
262 void reset(
const std::uint16_t* array_storage, std::size_t array_size);
269 void reset(
const std::int32_t* array_storage, std::size_t array_size);
276 void reset(
const std::uint32_t* array_storage, std::size_t array_size);
283 void reset(
const std::int64_t* array_storage, std::size_t array_size);
290 void reset(
const std::uint64_t* array_storage, std::size_t array_size);
297 void reset(
const float* array_storage, std::size_t array_size);
304 void reset(
const double* array_storage, std::size_t array_size);
314 bool getBool(std::size_t array_index = 0)
const;
316 std::int8_t
getInt8(std::size_t array_index = 0)
const;
318 std::uint8_t
getUInt8(std::size_t array_index = 0)
const;
320 std::int16_t
getInt16(std::size_t array_index = 0)
const;
322 std::uint16_t
getUInt16(std::size_t array_index = 0)
const;
324 std::int32_t
getInt32(std::size_t array_index = 0)
const;
326 std::uint32_t
getUInt32(std::size_t array_index = 0)
const;
328 std::int64_t
getInt64(std::size_t array_index = 0)
const;
330 std::uint64_t
getUInt64(std::size_t array_index = 0)
const;
380 operator bool()
const;
386 operator std::int8_t()
const;
392 operator std::uint8_t()
const;
398 operator std::int16_t()
const;
404 operator std::uint16_t()
const;
410 operator std::int32_t()
const;
416 operator std::uint32_t()
const;
422 operator std::int64_t()
const;
428 operator std::uint64_t()
const;
434 operator float()
const;
440 operator double()
const;
446 operator std::string()
const;
530 class Implementation;
531 std::unique_ptr<Implementation> _impl;
void reset(const std::uint64_t *array_storage, std::size_t array_size)
Variant & operator=(const char *value)
bool getBool(std::size_t array_index=0) const
void reset(std::int8_t value)
Variant(std::int8_t value)
void reset(const std::int8_t *array_storage, std::size_t array_size)
std::uint8_t getUInt8(std::size_t array_index=0) const
Variant & operator=(std::uint16_t value)
std::uint32_t getUInt32(std::size_t array_index=0) const
void reset(const float *array_storage, std::size_t array_size)
void reset(std::uint16_t value)
Variant & operator=(std::int32_t value)
void reset()
Resets the instance to VT_Empty.
std::int32_t getInt32(std::size_t array_index=0) const
std::int64_t getInt64(std::size_t array_index=0) const
Variant(std::uint16_t value)
std::size_t getArraySize() const
Variant & operator=(float value)
Variant & operator=(Variant &&other) noexcept
float getFloat32(std::size_t array_index=0) const
VariantType getType() const
Returns the current underlying data type of the instance.
void reset(std::uint64_t value)
void reset(const bool *array_storage, std::size_t array_size)
std::size_t getStringSize() const
std::int8_t asInt8() const
std::string asString() const
Variant(std::uint32_t value)
void reset(const std::uint8_t *array_storage, std::size_t array_size)
std::int16_t getInt16(std::size_t array_index=0) const
void reset(const std::int64_t *array_storage, std::size_t array_size)
bool isArray() const
Returns whether the instance stores an array of any kind.
double getFloat64(std::size_t array_index=0) const
Variant & operator=(std::uint8_t value)
Variant & operator=(std::uint64_t value)
std::int32_t asInt32() const
std::uint8_t asUInt8() const
Variant(std::int32_t value)
Variant & operator=(bool value)
Variant(std::uint64_t value)
Variant(Variant &&other) noexcept
Variant & operator=(std::uint32_t value)
~Variant()
Non-virtual DTOR.
double getDouble(std::size_t array_index=0) const
void reset(std::int32_t value)
float getFloat(std::size_t array_index=0) const
void reset(const std::int16_t *array_storage, std::size_t array_size)
Variant & operator=(const Variant &other)
Variant(std::uint8_t value)
Variant(const Variant &other)
std::uint64_t asUInt64() const
Variant(std::int16_t value)
void reset(const std::uint32_t *array_storage, std::size_t array_size)
Variant & operator=(std::int16_t value)
std::int16_t asInt16() const
void reset(std::int64_t value)
void reset(const double *array_storage, std::size_t array_size)
Variant(const char *value)
std::uint32_t asUInt32() const
Variant(std::int64_t value)
void reset(const std::uint16_t *array_storage, std::size_t array_size)
std::uint16_t getUInt16(std::size_t array_index=0) const
Variant & operator=(std::int64_t value)
friend bool operator==(const Variant &lhs, const Variant &rhs)
void reset(const std::int32_t *array_storage, std::size_t array_size)
std::uint64_t getUInt64(std::size_t array_index=0) const
void reset(std::uint8_t value)
Variant & operator=(std::int8_t value)
std::int8_t getInt8(std::size_t array_index=0) const
void reset(const char *value)
std::int64_t asInt64() const
Variant & operator=(double value)
void reset(std::uint32_t value)
const char * getString() const
std::uint16_t asUInt16() const
bool isEmpty() const
Returns whether the instance is in the empty state (VT_Empty)
void reset(std::int16_t value)
bool operator!=(const Variant &lhs, const Variant &rhs)
VariantType
Enumeration of supported Variant types.
Definition variant.h:25
@ VT_Empty
Variant type is empty.
Definition variant.h:26
@ VT_UInt32
Variant type is std::uint32_t.
Definition variant.h:33
@ VT_Float32
Variant type is float.
Definition variant.h:39
@ VT_Int32
Variant type is std::int32_t.
Definition variant.h:32
@ VT_Double
Variant type is double.
Definition variant.h:37
@ VT_String
Variant type is const char*.
Definition variant.h:38
@ VT_Float64
Variant type is double.
Definition variant.h:40
@ VT_Int8
Variant type is std::int8_t.
Definition variant.h:28
@ VT_UInt64
Variant type is std::uint64_t.
Definition variant.h:35
@ VT_Bool
Variant type is bool.
Definition variant.h:27
@ VT_UInt16
Variant type is std::uint16_t.
Definition variant.h:31
@ VT_Int16
Variant type is std::int16_t.
Definition variant.h:30
@ VT_Float
Variant type is float.
Definition variant.h:36
@ VT_Int64
Variant type is std::int64_t.
Definition variant.h:34
@ VT_UInt8
Variant type is std::uint8_t.
Definition variant.h:29
Serves as the root component, with common functionality documented in core functionality.
Definition base.h:24