#pragma one #include namespace osdev::components { class Variant { public: enum Type { Invalid, // Unknown Bool, // bool Int, // int (standard) UInt, // Unsigned int Double, // double Float, // float Char, // char String, // std::string UInt8, // uint8_t UInt16, // uint16_t UInt32, // uint32_t UInt64, // uint64_t Int8, // int8_t Int16, // int16_t Int32, // int32_t Int64 // int64_t }; /*! * All Constructors available */ Variant(); Variant(Type type); Variant(bool value); Variant(int value); Variant(uint value); Variant(double value); Variant(float value); Variant(char value); Variant(std::string value); Variant(uint8_t value); Variant(uint16_t value); Variant(uint32_t value); Variant(uint64_t value); Variant(int8_t value); Variant(int16_t value); Variant(int32_t value); Variant(int64_t value); }; } /* End namespace osdev::components */