29#ifndef NOMLIB_SYSTEM_PTREE_VALUE_ITERATOR_BASE_HPP
30#define NOMLIB_SYSTEM_PTREE_VALUE_ITERATOR_BASE_HPP
35#include "nomlib/config.hpp"
36#include "nomlib/ptree/ptree_config.hpp"
37#include "nomlib/ptree/ptree_types.hpp"
38#include "nomlib/ptree/ptree_forwards.hpp"
39#include "nomlib/ptree/Value.hpp"
48 typedef nom::size_type DifferenceType;
49 typedef Value& ValueTypeReference;
50 typedef Value* ValueTypePointer;
85 const char*
key()
const;
89 bool key(
const std::string& member)
const;
91 bool operator ==(
const SelfType& rhs)
const;
93 bool operator !=(
const SelfType& rhs)
const;
95 DifferenceType operator -(
const SelfType& rhs)
const;
98 void copy(
const SelfType& rhs);
99 ValueTypeReference dereference()
const;
100 ValueTypePointer pointer()
const;
103 DifferenceType distance(
const SelfType& rhs)
const;
106 enum IteratorType type()
const;
111 enum IteratorType type_;
Generic interface for opaque data containers.
ValueIteratorBase()
Default constructor.
virtual ~ValueIteratorBase()
Destructor.
bool valid() const
query validity of the object.
const char * key() const
Obtain the current index or member key value.
bool key(const std::string &member) const
Query if the member key exists at the current position of the iterator object.
ObjectIterator object_
A pointer to the object type iterator.
ArrayIndex index() const
Obtain the index of the referenced value.