From adc065d3284fc00dc99cfff260b8f4d1b2a5c14a Mon Sep 17 00:00:00 2001 From: Niels Date: Thu, 4 Jun 2015 21:02:16 +0200 Subject: [PATCH] included fixes for MSVC (see #62) 94de11e, f673c8d, 540b763 --- src/json.hpp | 34 ++++++++++++++++++---------------- src/json.hpp.re2c | 34 ++++++++++++++++++---------------- 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 3dbeb65a..a99bb2eb 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -139,9 +139,10 @@ class basic_json /////////////////////////// /// a type for an object - using object_t = ObjectType; + using object_t = + ObjectType, AllocatorType>>; /// a type for an array - using array_t = ArrayType; + using array_t = ArrayType>; /// a type for a string using string_t = StringType; /// a type for a boolean @@ -2350,15 +2351,15 @@ class basic_json public: /// the type of the values when the iterator is dereferenced - using value_type = basic_json::value_type; + using value_type = typename basic_json::value_type; /// a type to represent differences between iterators - using difference_type = basic_json::difference_type; + using difference_type = typename basic_json::difference_type; /// defines a pointer to the type iterated over (value_type) - using pointer = basic_json::pointer; + using pointer = typename basic_json::pointer; /// defines a reference to the type iterated over (value_type) - using reference = basic_json::reference; + using reference = typename basic_json::reference; /// the category of the iterator - using iterator_category = std::bidirectional_iterator_tag; + using iterator_category = typename std::bidirectional_iterator_tag; /// default constructor inline iterator() = default; @@ -2866,15 +2867,15 @@ class basic_json public: /// the type of the values when the iterator is dereferenced - using value_type = basic_json::value_type; + using value_type = typename basic_json::value_type; /// a type to represent differences between iterators - using difference_type = basic_json::difference_type; + using difference_type = typename basic_json::difference_type; /// defines a pointer to the type iterated over (value_type) - using pointer = basic_json::const_pointer; + using pointer = typename basic_json::const_pointer; /// defines a reference to the type iterated over (value_type) - using reference = basic_json::const_reference; + using reference = typename basic_json::const_reference; /// the category of the iterator - using iterator_category = std::bidirectional_iterator_tag; + using iterator_category = typename std::bidirectional_iterator_tag; /// default constructor inline const_iterator() = default; @@ -3394,10 +3395,11 @@ class basic_json }; /// a reverse random access iterator for the basic_json class - class reverse_iterator : private std::reverse_iterator + class reverse_iterator : private std::reverse_iterator { public: - inline reverse_iterator(const typename std::reverse_iterator::iterator_type& + inline reverse_iterator(const typename + std::reverse_iterator::iterator_type& it) : std::reverse_iterator(it) {} @@ -3415,11 +3417,11 @@ class basic_json }; /// a const reverse random access iterator for the basic_json class - class const_reverse_iterator : private std::reverse_iterator + class const_reverse_iterator : private std::reverse_iterator { public: inline const_reverse_iterator(const typename - std::reverse_iterator::iterator_type& it) + std::reverse_iterator::iterator_type& it) : std::reverse_iterator(it) {} /// return the key of an object iterator diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index cace230d..45979a57 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -139,9 +139,10 @@ class basic_json /////////////////////////// /// a type for an object - using object_t = ObjectType; + using object_t = + ObjectType, AllocatorType>>; /// a type for an array - using array_t = ArrayType; + using array_t = ArrayType>; /// a type for a string using string_t = StringType; /// a type for a boolean @@ -2350,15 +2351,15 @@ class basic_json public: /// the type of the values when the iterator is dereferenced - using value_type = basic_json::value_type; + using value_type = typename basic_json::value_type; /// a type to represent differences between iterators - using difference_type = basic_json::difference_type; + using difference_type = typename basic_json::difference_type; /// defines a pointer to the type iterated over (value_type) - using pointer = basic_json::pointer; + using pointer = typename basic_json::pointer; /// defines a reference to the type iterated over (value_type) - using reference = basic_json::reference; + using reference = typename basic_json::reference; /// the category of the iterator - using iterator_category = std::bidirectional_iterator_tag; + using iterator_category = typename std::bidirectional_iterator_tag; /// default constructor inline iterator() = default; @@ -2866,15 +2867,15 @@ class basic_json public: /// the type of the values when the iterator is dereferenced - using value_type = basic_json::value_type; + using value_type = typename basic_json::value_type; /// a type to represent differences between iterators - using difference_type = basic_json::difference_type; + using difference_type = typename basic_json::difference_type; /// defines a pointer to the type iterated over (value_type) - using pointer = basic_json::const_pointer; + using pointer = typename basic_json::const_pointer; /// defines a reference to the type iterated over (value_type) - using reference = basic_json::const_reference; + using reference = typename basic_json::const_reference; /// the category of the iterator - using iterator_category = std::bidirectional_iterator_tag; + using iterator_category = typename std::bidirectional_iterator_tag; /// default constructor inline const_iterator() = default; @@ -3394,10 +3395,11 @@ class basic_json }; /// a reverse random access iterator for the basic_json class - class reverse_iterator : private std::reverse_iterator + class reverse_iterator : private std::reverse_iterator { public: - inline reverse_iterator(const typename std::reverse_iterator::iterator_type& + inline reverse_iterator(const typename + std::reverse_iterator::iterator_type& it) : std::reverse_iterator(it) {} @@ -3415,11 +3417,11 @@ class basic_json }; /// a const reverse random access iterator for the basic_json class - class const_reverse_iterator : private std::reverse_iterator + class const_reverse_iterator : private std::reverse_iterator { public: inline const_reverse_iterator(const typename - std::reverse_iterator::iterator_type& it) + std::reverse_iterator::iterator_type& it) : std::reverse_iterator(it) {} /// return the key of an object iterator