14 #include <string_view> 19 int64_t str2int64(std::string_view, int64_t fallback = 0);
20 int64_t str2int64(std::wstring_view, int64_t fallback = 0);
21 uint64_t str2uint64(std::string_view, uint64_t fallback = 0);
22 uint64_t str2uint64(std::wstring_view, uint64_t fallback = 0);
23 double str2double(std::string_view,
double fallback = 0.0);
24 double str2double(std::wstring_view,
double fallback = 0.0);
26 #ifdef TARGET_WINDOWS_STORE 40 VariantTypeUnsignedInteger,
44 VariantTypeWideString,
53 CVariant(
unsigned int unsignedinteger);
59 CVariant(
const char *str,
unsigned int length);
63 CVariant(
const wchar_t *str,
unsigned int length);
66 CVariant(
const std::vector<std::string> &strArray);
67 CVariant(std::vector<std::string>&& strArray);
68 CVariant(
const std::map<std::string, std::string> &strMap);
69 CVariant(std::map<std::string, std::string>&& strMap);
70 CVariant(
const std::map<std::string, CVariant> &variantMap);
71 CVariant(std::map<std::string, CVariant>&& variantMap);
78 bool isInteger()
const;
79 bool isSignedInteger()
const;
80 bool isUnsignedInteger()
const;
81 bool isBoolean()
const;
82 bool isString()
const;
83 bool isWideString()
const;
84 bool isDouble()
const;
86 bool isObject()
const;
89 VariantType type()
const;
91 int64_t asInteger(int64_t fallback = 0)
const;
92 int32_t asInteger32(int32_t fallback = 0)
const;
93 uint64_t asUnsignedInteger(uint64_t fallback = 0u)
const;
94 uint32_t asUnsignedInteger32(uint32_t fallback = 0u)
const;
95 bool asBoolean(
bool fallback =
false)
const;
96 std::string asString(std::string_view =
"")
const&;
97 std::string asString(std::string_view =
"") &&;
98 std::wstring asWideString(std::wstring_view = L
"")
const&;
99 std::wstring asWideString(std::wstring_view = L
"") &&;
100 double asDouble(
double fallback = 0.0)
const;
101 float asFloat(
float fallback = 0.0f)
const;
103 CVariant& operator[](
const std::string& key) &;
104 const CVariant& operator[](
const std::string& key)
const&;
105 CVariant operator[](
const std::string& key) &&;
106 CVariant& operator[](
unsigned int position) &;
107 const CVariant& operator[](
unsigned int position)
const&;
108 CVariant operator[](
unsigned int position) &&;
112 bool operator==(
const CVariant &rhs)
const;
113 bool operator!=(
const CVariant &rhs)
const {
return !(*
this == rhs); }
115 void reserve(
size_t length);
116 void push_back(
const CVariant &variant);
118 void append(
const CVariant &variant);
121 const char *c_str()
const;
126 typedef std::vector<CVariant> VariantArray;
127 typedef std::map<std::string, CVariant> VariantMap;
130 typedef VariantArray::iterator iterator_array;
131 typedef VariantArray::const_iterator const_iterator_array;
133 typedef VariantMap::iterator iterator_map;
134 typedef VariantMap::const_iterator const_iterator_map;
136 iterator_array begin_array();
137 const_iterator_array begin_array()
const;
138 iterator_array end_array();
139 const_iterator_array end_array()
const;
141 iterator_map begin_map();
142 const_iterator_map begin_map()
const;
143 iterator_map end_map();
144 const_iterator_map end_map()
const;
146 unsigned int size()
const;
149 void erase(
const std::string &key);
150 void erase(
unsigned int position);
152 bool isMember(
const std::string &key)
const;
161 bool operator==(
const Null&)
const {
return true; }
165 bool operator==(
const ConstNull&)
const {
return true; }
181 static VariantArray EMPTY_ARRAY;
182 static VariantMap EMPTY_MAP;
185 #ifdef TARGET_WINDOWS_STORE