19 : current_(), isNull_(true) {
23 const Value::ObjectValues::iterator& current)
24 : current_(current), isNull_(false) {}
27 return current_->second;
40 #ifdef JSON_USE_CPPTL_SMALLMAP 41 return other.current_ - current_;
48 if (isNull_ && other.isNull_) {
58 for (Value::ObjectValues::iterator it = current_; it != other.current_;
70 return current_ == other.current_;
74 current_ = other.current_;
75 isNull_ = other.isNull_;
79 const Value::CZString czstring = (*current_).first;
80 if (czstring.data()) {
81 if (czstring.isStaticString())
83 return Value(czstring.data(), czstring.data() + czstring.length());
85 return Value(czstring.index());
89 const Value::CZString czstring = (*current_).first;
91 return czstring.index();
104 const char* cname = (*current_).first.data();
105 return cname ? cname :
"";
109 const char* cname = (*current_).first.data();
114 *end = cname + (*current_).first.length();
129 const Value::ObjectValues::iterator& current)
156 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.
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.
std::string name() const
Return the member name of the referenced Value, or "" if it is not an objectValue.
SelfType & operator=(const SelfType &other)
JSON (JavaScript Object Notation).
SelfType & operator=(const ValueIteratorBase &other)
Iterator for object and array value.
char const * memberName() const
Return the member name of the referenced Value.