- Patch #3393345: BOOST_FOREACH compatibility. Made Json::iterator more standard compliant, added missing iterator_category and value_type typedefs (contribued by Robert A. Iannucci).
- Patch #3474563: added missing JSON_API on some classes causing link issues when building as a dynamic library on Windows (contributed by Francis Bolduc).
git-svn-id: http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/jsoncpp/include@255 1f120ed1-78a5-a849-adca-83f0a9e25bb6
diff --git a/json/value.h b/json/value.h
index b013c9b..6daa8d1 100644
--- a/json/value.h
+++ b/json/value.h
@@ -507,7 +507,7 @@
/** \brief Experimental and untested: represents an element of the "path" to access a node.
*/
- class PathArgument
+ class JSON_API PathArgument
{
public:
friend class Path;
@@ -540,7 +540,7 @@
* - ".%" => member name is provided as parameter
* - ".[%]" => index is provied as parameter
*/
- class Path
+ class JSON_API Path
{
public:
Path( const std::string &path,
@@ -916,9 +916,10 @@
/** \brief base class for Value iterators.
*
*/
- class ValueIteratorBase
+ class JSON_API ValueIteratorBase
{
public:
+ typedef std::bidirectional_iterator_tag iterator_category;
typedef unsigned int size_t;
typedef int difference_type;
typedef ValueIteratorBase SelfType;
@@ -986,10 +987,11 @@
/** \brief const iterator for object and array value.
*
*/
- class ValueConstIterator : public ValueIteratorBase
+ class JSON_API ValueConstIterator : public ValueIteratorBase
{
friend class Value;
public:
+ typedef const Value value_type;
typedef unsigned int size_t;
typedef int difference_type;
typedef const Value &reference;
@@ -1044,10 +1046,11 @@
/** \brief Iterator for object and array value.
*/
- class ValueIterator : public ValueIteratorBase
+ class JSON_API ValueIterator : public ValueIteratorBase
{
friend class Value;
public:
+ typedef Value value_type;
typedef unsigned int size_t;
typedef int difference_type;
typedef Value &reference;