21 const Value::ObjectValues::iterator& current)
22 : current_(current), isNull_(false) {}
38 if (isNull_ && other.isNull_) {
48 for (Value::ObjectValues::iterator it = current_; it != other.current_;
59 return current_ == other.current_;
63 current_ = other.current_;
64 isNull_ = other.isNull_;
68 const Value::CZString czstring = (*current_).first;
69 if (czstring.data()) {
70 if (czstring.isStaticString())
72 return Value(czstring.data(), czstring.data() + czstring.length());
74 return Value(czstring.index());
78 const Value::CZString czstring = (*current_).first;
80 return czstring.index();
94 const char* cname = (*current_).first.data();
95 return cname ? cname :
"";
99 const char* cname = (*current_).first.data();
104 *end = cname + (*current_).first.length();
119 const Value::ObjectValues::iterator& current)
146 throwRuntimeError(
"ConstIterator to Iterator should never be allowed.");
difference_type computeDistance(const SelfType &other) const
bool isEqual(const SelfType &other) const
base class for Value iterators.
const Value & deref() const
Lightweight wrapper to tag static string.
void copy(const SelfType &other)
const iterator for object and array value.
UInt index() const
Return the index of the referenced Value, or -1 if it is not an arrayValue.
Value key() const
Return either the index or the member name of the referenced value as a Value.
SelfType & operator=(const SelfType &other)
JSON (JavaScript Object Notation).
SelfType & operator=(const ValueIteratorBase &other)
Iterator for object and array value.
char const * memberName(char const **end) const
Return the member name of the referenced Value, or NULL if it is not an objectValue.
String name() const
Return the member name of the referenced Value, or "" if it is not an objectValue.
std::basic_string< char, std::char_traits< char >, Allocator< char > > String