- 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).
This commit is contained in:
Baptiste Lepilleur 2013-04-12 14:10:13 +00:00
parent f92ace5e82
commit a8afdd40af
3 changed files with 20 additions and 5 deletions

View File

@ -31,6 +31,17 @@ New in SVN
representable using an Int64, or asDouble() combined with minInt64 and representable using an Int64, or asDouble() combined with minInt64 and
maxInt64 to figure out whether it is approximately representable. maxInt64 to figure out whether it is approximately representable.
* Value
- Patch #3393345: BOOST_FOREACH compatibility. Made Json::iterator more
standard compliant, added missing iterator_category and value_type
typedefs (contribued by Robert A. Iannucci).
* Compilation
- Patch #3474563: added missing JSON_API on some classes causing link issues
when building as a dynamic library on Windows
(contributed by Francis Bolduc).
* Bug fixes * Bug fixes
- Patch #3539678: Copy constructor does not initialize allocated_ for stringValue - Patch #3539678: Copy constructor does not initialize allocated_ for stringValue
(contributed by rmongia). (contributed by rmongia).

View File

@ -2,6 +2,7 @@
\section ms_release Makes JsonCpp ready for release \section ms_release Makes JsonCpp ready for release
- Build system clean-up: - Build system clean-up:
- Fix build on Windows (shared-library build is broken) - Fix build on Windows (shared-library build is broken)
- Compile and run tests using shared library on Windows to ensure no JSON_API macro is missing.
- Add enable/disable flag for static and shared library build - Add enable/disable flag for static and shared library build
- Enhance help - Enhance help
- Platform portability check: (Notes: was ok on last check) - Platform portability check: (Notes: was ok on last check)

View File

@ -507,7 +507,7 @@ namespace Json {
/** \brief Experimental and untested: represents an element of the "path" to access a node. /** \brief Experimental and untested: represents an element of the "path" to access a node.
*/ */
class PathArgument class JSON_API PathArgument
{ {
public: public:
friend class Path; friend class Path;
@ -540,7 +540,7 @@ namespace Json {
* - ".%" => member name is provided as parameter * - ".%" => member name is provided as parameter
* - ".[%]" => index is provied as parameter * - ".[%]" => index is provied as parameter
*/ */
class Path class JSON_API Path
{ {
public: public:
Path( const std::string &path, Path( const std::string &path,
@ -916,9 +916,10 @@ public: // overridden from ValueArrayAllocator
/** \brief base class for Value iterators. /** \brief base class for Value iterators.
* *
*/ */
class ValueIteratorBase class JSON_API ValueIteratorBase
{ {
public: public:
typedef std::bidirectional_iterator_tag iterator_category;
typedef unsigned int size_t; typedef unsigned int size_t;
typedef int difference_type; typedef int difference_type;
typedef ValueIteratorBase SelfType; typedef ValueIteratorBase SelfType;
@ -986,10 +987,11 @@ public: // overridden from ValueArrayAllocator
/** \brief const iterator for object and array value. /** \brief const iterator for object and array value.
* *
*/ */
class ValueConstIterator : public ValueIteratorBase class JSON_API ValueConstIterator : public ValueIteratorBase
{ {
friend class Value; friend class Value;
public: public:
typedef const Value value_type;
typedef unsigned int size_t; typedef unsigned int size_t;
typedef int difference_type; typedef int difference_type;
typedef const Value &reference; typedef const Value &reference;
@ -1044,10 +1046,11 @@ public: // overridden from ValueArrayAllocator
/** \brief Iterator for object and array value. /** \brief Iterator for object and array value.
*/ */
class ValueIterator : public ValueIteratorBase class JSON_API ValueIterator : public ValueIteratorBase
{ {
friend class Value; friend class Value;
public: public:
typedef Value value_type;
typedef unsigned int size_t; typedef unsigned int size_t;
typedef int difference_type; typedef int difference_type;
typedef Value &reference; typedef Value &reference;