17 int64_t str2int64(
const std::string &str, int64_t fallback = 0);
18 int64_t str2int64(
const std::wstring &str, int64_t fallback = 0);
19 uint64_t str2uint64(
const std::string &str, uint64_t fallback = 0);
20 uint64_t str2uint64(
const std::wstring &str, uint64_t fallback = 0);
21 double str2double(
const std::string &str,
double fallback = 0.0);
22 double str2double(
const std::wstring &str,
double fallback = 0.0);
24 #ifdef TARGET_WINDOWS_STORE 35 VariantTypeUnsignedInteger,
38 VariantTypeWideString,
50 CVariant(
unsigned int unsignedinteger);
56 CVariant(
const char *str,
unsigned int length);
60 CVariant(
const wchar_t *str,
unsigned int length);
63 CVariant(
const std::vector<std::string> &strArray);
64 CVariant(
const std::map<std::string, std::string> &strMap);
65 CVariant(
const std::map<std::string, CVariant> &variantMap);
72 bool isInteger()
const;
73 bool isSignedInteger()
const;
74 bool isUnsignedInteger()
const;
75 bool isBoolean()
const;
76 bool isString()
const;
77 bool isWideString()
const;
78 bool isDouble()
const;
80 bool isObject()
const;
83 VariantType type()
const;
85 int64_t asInteger(int64_t fallback = 0)
const;
86 int32_t asInteger32(int32_t fallback = 0)
const;
87 uint64_t asUnsignedInteger(uint64_t fallback = 0u)
const;
88 uint32_t asUnsignedInteger32(uint32_t fallback = 0u)
const;
89 bool asBoolean(
bool fallback =
false)
const;
90 std::string asString(
const std::string &fallback =
"")
const;
91 std::wstring asWideString(
const std::wstring &fallback = L
"")
const;
92 double asDouble(
double fallback = 0.0)
const;
93 float asFloat(
float fallback = 0.0f)
const;
95 CVariant &operator[](
const std::string &key);
96 const CVariant &operator[](
const std::string &key)
const;
97 CVariant &operator[](
unsigned int position);
98 const CVariant &operator[](
unsigned int position)
const;
102 bool operator==(
const CVariant &rhs)
const;
103 bool operator!=(
const CVariant &rhs)
const {
return !(*
this == rhs); }
105 void reserve(
size_t length);
106 void push_back(
const CVariant &variant);
108 void append(
const CVariant &variant);
111 const char *c_str()
const;
116 typedef std::vector<CVariant> VariantArray;
117 typedef std::map<std::string, CVariant> VariantMap;
120 typedef VariantArray::iterator iterator_array;
121 typedef VariantArray::const_iterator const_iterator_array;
123 typedef VariantMap::iterator iterator_map;
124 typedef VariantMap::const_iterator const_iterator_map;
126 iterator_array begin_array();
127 const_iterator_array begin_array()
const;
128 iterator_array end_array();
129 const_iterator_array end_array()
const;
131 iterator_map begin_map();
132 const_iterator_map begin_map()
const;
133 iterator_map end_map();
134 const_iterator_map end_map()
const;
136 unsigned int size()
const;
139 void erase(
const std::string &key);
140 void erase(
unsigned int position);
142 bool isMember(
const std::string &key)
const;
151 uint64_t unsignedinteger;
155 std::wstring *wstring;
163 static VariantArray EMPTY_ARRAY;
164 static VariantMap EMPTY_MAP;
167 #ifdef TARGET_WINDOWS_STORE