From 6b78b5c2be7e24cd4a1c59c7fa13a62c2ae33508 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Sat, 3 Dec 2016 19:05:09 -0500
Subject: [PATCH 001/174] Added strtonum for locale-independent number parsing

---
 src/json.hpp                 | 374 ++++++++++++++++++++++-------------
 src/json.hpp.re2c            | 374 ++++++++++++++++++++++-------------
 test/src/unit-regression.cpp |   4 +-
 3 files changed, 483 insertions(+), 269 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 6fed0a12..e28333bd 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9060,65 +9060,225 @@ basic_json_parser_66:
             return result;
         }
 
+       
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
         /*!
-        @brief parse floating point number
+        @brief parse string into a built-in arithmetic type as if
+               the current locale is POSIX.
 
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
+               e.g. const auto x = static_cast<float>("123.4");
 
-        @param[in] type  the @ref number_float_t in use
-
-        @param[in,out] endptr recieves a pointer to the first character after
-        the number
-
-        @return the floating point number
+               throw if can't parse the entire string as a number,
+               or if the destination type is integral and the value
+               is outside of the type's range.
         */
-        long double str_to_float_t(long double* /* type */, char** endptr) const
+        struct strtonum
         {
-            return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
+        public:
+            strtonum(const char* start, const char* end) 
+                : m_start(start), m_end(end)
+            {}
 
-        /*!
-        @brief parse floating point number
+            template<typename T,
+                     typename = typename std::enable_if<
+                         std::is_arithmetic<T>::value>::type >
+            operator T() const
+            {
+                T val{0};
 
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
+                if(parse(val, std::is_integral<T>())) {
+                    return val;
+                }
 
-        @param[in] type  the @ref number_float_t in use
+                throw std::invalid_argument(
+                        std::string()
+                      + "Can't parse '" 
+                      + std::string(m_start, m_end)
+                      + "' as type "
+                      + typeid(T).name());
+            }
 
-        @param[in,out] endptr  recieves a pointer to the first character after
-        the number
+            /// return true iff token matches ^[+-]\d+$
+            bool is_integral() const
+            {
+                const char* p = m_start;
 
-        @return the floating point number
-        */
-        double str_to_float_t(double* /* type */, char** endptr) const
-        {
-            return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
+                if(!p) {
+                    return false;
+                }
 
-        /*!
-        @brief parse floating point number
+                if(*p == '-' or *p == '+') {
+                    ++p;
+                }
 
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
+                if(p == m_end) {
+                    return false;
+                }
 
-        @param[in] type  the @ref number_float_t in use
+                while(p < m_end and *p >= '0' and *p <= '9') {
+                    ++p;
+                }
 
-        @param[in,out] endptr  recieves a pointer to the first character after
-        the number
+                return p == m_end;
+            }
 
-        @return the floating point number
-        */
-        float str_to_float_t(float* /* type */, char** endptr) const
-        {
-            return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
+        private:
+            const char* const m_start = nullptr;
+            const char* const m_end  = nullptr;
+
+            static void strtof(float& f,
+                               const char* str,
+                               char** endptr)
+            {
+                f = std::strtof(str, endptr);
+            }
+
+            static void strtof(double& f,
+                               const char* str,
+                               char** endptr)
+            {
+                f = std::strtod(str, endptr);
+            }
+
+            static void strtof(long double& f,
+                               const char* str,
+                               char** endptr)
+            {
+                f = std::strtold(str, endptr);
+            }
+
+            template<typename T>
+            bool parse(T& value, /*is_integral=*/std::false_type) const
+            {
+                const char* data = m_start;
+                const size_t len = static_cast<size_t>(m_end - m_start);
+
+                const char decimal_point_char =
+                    std::use_facet< std::numpunct<char> >(
+                        std::locale()).decimal_point();
+
+                // replace decimal separator with locale-specific
+                // version, if necessary; data will be repointed
+                // to either buf or tempstr containing the fixed
+                // string.
+                std::string tempstr;
+                std::array<char, 64> buf;
+                do {
+                    if(decimal_point_char == '.') {
+                        break; // don't need to convert
+                    }
+
+                    const size_t ds_pos = static_cast<size_t>(
+                        std::find(m_start, m_end, '.') - m_start );
+
+                    if(ds_pos == len) {
+                        break; // no decimal separator
+                    }
+
+                    // copy the data into the local buffer or
+                    // tempstr, if buffer is too small;
+                    // replace decimal separator, and update
+                    // data to point to the modified bytes
+                    if(len + 1 < buf.size()) {
+                        std::copy(m_start, m_end, buf.data());
+                        buf[len] = 0;
+                        buf[ds_pos] = decimal_point_char;
+                        data = buf.data();
+                    } else {
+                        tempstr.assign(m_start, m_end);
+                        tempstr[ds_pos] = decimal_point_char;
+                        data = tempstr.c_str();
+                    }
+                } while(0);
+
+                char* endptr = nullptr;
+                value = 0;
+                strtof(value, data, &endptr);
+
+
+
+                // note that reading past the end is OK, the data may be,
+                // for example, "123.", where the parsed token only contains "123",
+                // but strtod will read the dot as well.
+                const bool ok = endptr >= data + len
+                                and len > 0;
+
+                if(ok and value == 0.0 and *data == '-') {
+                    // some implementations forget to negate the zero
+                    value = -0.0;
+                }
+
+                if(!ok) {
+                    std::cerr << "data:" <<  data 
+                              << " token:" << std::string(m_start, len) 
+                              << " value:" << value 
+                              << " len:"   << len 
+                              << " parsed_len:" << (endptr - data) << std::endl;
+                }
+
+                return ok;
+            }
+
+            template<typename T>
+            bool parse(T& value, /*is_integral=*/std::true_type) const
+            {
+                const char*       beg = m_start;
+                const char* const end = m_end;
+
+                if(beg == end) {
+                    return false;
+                }
+
+                const bool is_negative = (*beg == '-');
+
+                // json numbers can't start with '+' but
+                // this code is not json-specific
+                if(is_negative or *beg == '+') {
+                    ++beg; // skip the leading sign
+                }
+
+                bool valid = beg < end       // must have some digits;
+                         and ( T(-1) < 0     // type must be signed
+                           or !is_negative); // if value is negative
+                value = 0;
+
+                while(beg < end and valid) {
+                    const uint8_t c = static_cast<uint8_t>(*beg - '0');
+                    const T upd_value = value * 10 + c;
+                    valid &= value <= std::numeric_limits<T>::max() / 10
+                             and value <= upd_value // did not overflow
+                             and c < 10;            // char was digit
+                    value = upd_value;
+                    ++beg;
+                }
+
+                if(is_negative) {
+                    value = 0 - value;
+                }
+
+                if(!valid) {
+                    std::cerr << " token:" << std::string(m_start, m_end) 
+                              << std::endl;
+                }
+
+                return valid;
+            }
+        };
 
         /*!
         @brief return number value for number tokens
@@ -9126,111 +9286,57 @@ basic_json_parser_66:
         This function translates the last token into the most appropriate
         number type (either integer, unsigned integer or floating point),
         which is passed back to the caller via the result parameter.
+    
+        integral numbers that don't fit into the the range of the respective
+        type are parsed as number_float_t
 
-        This function parses the integer component up to the radix point or
-        exponent while collecting information about the 'floating point
-        representation', which it stores in the result parameter. If there is
-        no radix point or exponent, and the number can fit into a @ref
-        number_integer_t or @ref number_unsigned_t then it sets the result
-        parameter accordingly.
+        floating-point values do not satisfy std::isfinite predicate
+        are converted to value_t::null
+        
+        throws if the entire string [m_start .. m_cursor) cannot be 
+        interpreted as a number
 
-        If the number is a floating point number the number is then parsed
-        using @a std:strtod (or @a std:strtof or @a std::strtold).
-
-        @param[out] result  @ref basic_json object to receive the number, or
-        NAN if the conversion read past the current token. The latter case
-        needs to be treated by the caller function.
+        @param[out] result  @ref basic_json object to receive the number.
         */
         void get_number(basic_json& result) const
         {
             assert(m_start != nullptr);
+            assert(m_start < m_cursor);
+        
+            strtonum num(reinterpret_cast<const char*>(m_start), 
+                         reinterpret_cast<const char*>(m_cursor));
 
-            const lexer::lexer_char_t* curptr = m_start;
+            const bool is_negative = *m_start == '-';
 
-            // accumulate the integer conversion result (unsigned for now)
-            number_unsigned_t value = 0;
-
-            // maximum absolute value of the relevant integer type
-            number_unsigned_t max;
-
-            // temporarily store the type to avoid unecessary bitfield access
-            value_t type;
-
-            // look for sign
-            if (*curptr == '-')
-            {
-                type = value_t::number_integer;
-                max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1;
-                curptr++;
-            }
-            else
-            {
-                type = value_t::number_unsigned;
-                max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)());
-            }
-
-            // count the significant figures
-            for (; curptr < m_cursor; curptr++)
-            {
-                // quickly skip tests if a digit
-                if (*curptr < '0' || *curptr > '9')
+            try {
+                if(not num.is_integral()) {
+                    ;
+                } 
+                else if(is_negative) 
                 {
-                    if (*curptr == '.')
-                    {
-                        // don't count '.' but change to float
-                        type = value_t::number_float;
-                        continue;
-                    }
-                    // assume exponent (if not then will fail parse): change to
-                    // float, stop counting and record exponent details
-                    type = value_t::number_float;
-                    break;
-                }
-
-                // skip if definitely not an integer
-                if (type != value_t::number_float)
+                    result.m_type  = value_t::number_integer;
+                    result.m_value = static_cast<number_integer_t>(num);
+                    return;
+                } 
+                else 
                 {
-                    // multiply last value by ten and add the new digit
-                    auto temp = value * 10 + *curptr - '0';
-
-                    // test for overflow
-                    if (temp < value || temp > max)
-                    {
-                        // overflow
-                        type = value_t::number_float;
-                    }
-                    else
-                    {
-                        // no overflow - save it
-                        value = temp;
-                    }
+                    result.m_type  = value_t::number_unsigned;
+                    result.m_value = static_cast<number_unsigned_t>(num);
+                    return;
                 }
+            } catch (std::invalid_argument&) {
+                ; // overflow - will parse as double
             }
 
-            // save the value (if not a float)
-            if (type == value_t::number_unsigned)
-            {
-                result.m_value.number_unsigned = value;
-            }
-            else if (type == value_t::number_integer)
-            {
-                result.m_value.number_integer = -static_cast<number_integer_t>(value);
-            }
-            else
-            {
-                // parse with strtod
-                result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), NULL);
+            result.m_type  = value_t::number_float;
+            result.m_value = static_cast<number_float_t>(num);
 
-                // replace infinity and NAN by null
-                if (not std::isfinite(result.m_value.number_float))
-                {
-                    type = value_t::null;
-                    result.m_value = basic_json::json_value();
-                }
+            // replace infinity and NAN by null
+            if (not std::isfinite(result.m_value.number_float))
+            {
+                result.m_type  = value_t::null;
+                result.m_value = basic_json::json_value();
             }
-
-            // save the type
-            result.m_type = type;
         }
 
       private:
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index c6a99b89..72c413ba 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8209,65 +8209,225 @@ class basic_json
             return result;
         }
 
+       
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
         /*!
-        @brief parse floating point number
+        @brief parse string into a built-in arithmetic type as if
+               the current locale is POSIX.
 
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
+               e.g. const auto x = static_cast<float>("123.4");
 
-        @param[in] type  the @ref number_float_t in use
-
-        @param[in,out] endptr recieves a pointer to the first character after
-        the number
-
-        @return the floating point number
+               throw if can't parse the entire string as a number,
+               or if the destination type is integral and the value
+               is outside of the type's range.
         */
-        long double str_to_float_t(long double* /* type */, char** endptr) const
+        struct strtonum
         {
-            return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
+        public:
+            strtonum(const char* start, const char* end) 
+                : m_start(start), m_end(end)
+            {}
 
-        /*!
-        @brief parse floating point number
+            template<typename T,
+                     typename = typename std::enable_if<
+                         std::is_arithmetic<T>::value>::type >
+            operator T() const
+            {
+                T val{0};
 
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
+                if(parse(val, std::is_integral<T>())) {
+                    return val;
+                }
 
-        @param[in] type  the @ref number_float_t in use
+                throw std::invalid_argument(
+                        std::string()
+                      + "Can't parse '" 
+                      + std::string(m_start, m_end)
+                      + "' as type "
+                      + typeid(T).name());
+            }
 
-        @param[in,out] endptr  recieves a pointer to the first character after
-        the number
+            /// return true iff token matches ^[+-]\d+$
+            bool is_integral() const
+            {
+                const char* p = m_start;
 
-        @return the floating point number
-        */
-        double str_to_float_t(double* /* type */, char** endptr) const
-        {
-            return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
+                if(!p) {
+                    return false;
+                }
 
-        /*!
-        @brief parse floating point number
+                if(*p == '-' or *p == '+') {
+                    ++p;
+                }
 
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
+                if(p == m_end) {
+                    return false;
+                }
 
-        @param[in] type  the @ref number_float_t in use
+                while(p < m_end and *p >= '0' and *p <= '9') {
+                    ++p;
+                }
 
-        @param[in,out] endptr  recieves a pointer to the first character after
-        the number
+                return p == m_end;
+            }
 
-        @return the floating point number
-        */
-        float str_to_float_t(float* /* type */, char** endptr) const
-        {
-            return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
+        private:
+            const char* const m_start = nullptr;
+            const char* const m_end  = nullptr;
+
+            static void strtof(float& f,
+                               const char* str,
+                               char** endptr)
+            {
+                f = std::strtof(str, endptr);
+            }
+
+            static void strtof(double& f,
+                               const char* str,
+                               char** endptr)
+            {
+                f = std::strtod(str, endptr);
+            }
+
+            static void strtof(long double& f,
+                               const char* str,
+                               char** endptr)
+            {
+                f = std::strtold(str, endptr);
+            }
+
+            template<typename T>
+            bool parse(T& value, /*is_integral=*/std::false_type) const
+            {
+                const char* data = m_start;
+                const size_t len = static_cast<size_t>(m_end - m_start);
+
+                const char decimal_point_char =
+                    std::use_facet< std::numpunct<char> >(
+                        std::locale()).decimal_point();
+
+                // replace decimal separator with locale-specific
+                // version, if necessary; data will be repointed
+                // to either buf or tempstr containing the fixed
+                // string.
+                std::string tempstr;
+                std::array<char, 64> buf;
+                do {
+                    if(decimal_point_char == '.') {
+                        break; // don't need to convert
+                    }
+
+                    const size_t ds_pos = static_cast<size_t>(
+                        std::find(m_start, m_end, '.') - m_start );
+
+                    if(ds_pos == len) {
+                        break; // no decimal separator
+                    }
+
+                    // copy the data into the local buffer or
+                    // tempstr, if buffer is too small;
+                    // replace decimal separator, and update
+                    // data to point to the modified bytes
+                    if(len + 1 < buf.size()) {
+                        std::copy(m_start, m_end, buf.data());
+                        buf[len] = 0;
+                        buf[ds_pos] = decimal_point_char;
+                        data = buf.data();
+                    } else {
+                        tempstr.assign(m_start, m_end);
+                        tempstr[ds_pos] = decimal_point_char;
+                        data = tempstr.c_str();
+                    }
+                } while(0);
+
+                char* endptr = nullptr;
+                value = 0;
+                strtof(value, data, &endptr);
+
+
+
+                // note that reading past the end is OK, the data may be,
+                // for example, "123.", where the parsed token only contains "123",
+                // but strtod will read the dot as well.
+                const bool ok = endptr >= data + len
+                                and len > 0;
+
+                if(ok and value == 0.0 and *data == '-') {
+                    // some implementations forget to negate the zero
+                    value = -0.0;
+                }
+
+                if(!ok) {
+                    std::cerr << "data:" <<  data 
+                              << " token:" << std::string(m_start, len) 
+                              << " value:" << value 
+                              << " len:"   << len 
+                              << " parsed_len:" << (endptr - data) << std::endl;
+                }
+
+                return ok;
+            }
+
+            template<typename T>
+            bool parse(T& value, /*is_integral=*/std::true_type) const
+            {
+                const char*       beg = m_start;
+                const char* const end = m_end;
+
+                if(beg == end) {
+                    return false;
+                }
+
+                const bool is_negative = (*beg == '-');
+
+                // json numbers can't start with '+' but
+                // this code is not json-specific
+                if(is_negative or *beg == '+') {
+                    ++beg; // skip the leading sign
+                }
+
+                bool valid = beg < end       // must have some digits;
+                         and ( T(-1) < 0     // type must be signed
+                           or !is_negative); // if value is negative
+                value = 0;
+
+                while(beg < end and valid) {
+                    const uint8_t c = static_cast<uint8_t>(*beg - '0');
+                    const T upd_value = value * 10 + c;
+                    valid &= value <= std::numeric_limits<T>::max() / 10
+                             and value <= upd_value // did not overflow
+                             and c < 10;            // char was digit
+                    value = upd_value;
+                    ++beg;
+                }
+
+                if(is_negative) {
+                    value = 0 - value;
+                }
+
+                if(!valid) {
+                    std::cerr << " token:" << std::string(m_start, m_end) 
+                              << std::endl;
+                }
+
+                return valid;
+            }
+        };
 
         /*!
         @brief return number value for number tokens
@@ -8275,111 +8435,57 @@ class basic_json
         This function translates the last token into the most appropriate
         number type (either integer, unsigned integer or floating point),
         which is passed back to the caller via the result parameter.
+    
+        integral numbers that don't fit into the the range of the respective
+        type are parsed as number_float_t
 
-        This function parses the integer component up to the radix point or
-        exponent while collecting information about the 'floating point
-        representation', which it stores in the result parameter. If there is
-        no radix point or exponent, and the number can fit into a @ref
-        number_integer_t or @ref number_unsigned_t then it sets the result
-        parameter accordingly.
+        floating-point values do not satisfy std::isfinite predicate
+        are converted to value_t::null
+        
+        throws if the entire string [m_start .. m_cursor) cannot be 
+        interpreted as a number
 
-        If the number is a floating point number the number is then parsed
-        using @a std:strtod (or @a std:strtof or @a std::strtold).
-
-        @param[out] result  @ref basic_json object to receive the number, or
-        NAN if the conversion read past the current token. The latter case
-        needs to be treated by the caller function.
+        @param[out] result  @ref basic_json object to receive the number.
         */
         void get_number(basic_json& result) const
         {
             assert(m_start != nullptr);
+            assert(m_start < m_cursor);
+        
+            strtonum num(reinterpret_cast<const char*>(m_start), 
+                         reinterpret_cast<const char*>(m_cursor));
 
-            const lexer::lexer_char_t* curptr = m_start;
+            const bool is_negative = *m_start == '-';
 
-            // accumulate the integer conversion result (unsigned for now)
-            number_unsigned_t value = 0;
-
-            // maximum absolute value of the relevant integer type
-            number_unsigned_t max;
-
-            // temporarily store the type to avoid unecessary bitfield access
-            value_t type;
-
-            // look for sign
-            if (*curptr == '-')
-            {
-                type = value_t::number_integer;
-                max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1;
-                curptr++;
-            }
-            else
-            {
-                type = value_t::number_unsigned;
-                max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)());
-            }
-
-            // count the significant figures
-            for (; curptr < m_cursor; curptr++)
-            {
-                // quickly skip tests if a digit
-                if (*curptr < '0' || *curptr > '9')
+            try {
+                if(not num.is_integral()) {
+                    ;
+                } 
+                else if(is_negative) 
                 {
-                    if (*curptr == '.')
-                    {
-                        // don't count '.' but change to float
-                        type = value_t::number_float;
-                        continue;
-                    }
-                    // assume exponent (if not then will fail parse): change to
-                    // float, stop counting and record exponent details
-                    type = value_t::number_float;
-                    break;
-                }
-
-                // skip if definitely not an integer
-                if (type != value_t::number_float)
+                    result.m_type  = value_t::number_integer;
+                    result.m_value = static_cast<number_integer_t>(num);
+                    return;
+                } 
+                else 
                 {
-                    // multiply last value by ten and add the new digit
-                    auto temp = value * 10 + *curptr - '0';
-
-                    // test for overflow
-                    if (temp < value || temp > max)
-                    {
-                        // overflow
-                        type = value_t::number_float;
-                    }
-                    else
-                    {
-                        // no overflow - save it
-                        value = temp;
-                    }
+                    result.m_type  = value_t::number_unsigned;
+                    result.m_value = static_cast<number_unsigned_t>(num);
+                    return;
                 }
+            } catch (std::invalid_argument&) {
+                ; // overflow - will parse as double
             }
 
-            // save the value (if not a float)
-            if (type == value_t::number_unsigned)
-            {
-                result.m_value.number_unsigned = value;
-            }
-            else if (type == value_t::number_integer)
-            {
-                result.m_value.number_integer = -static_cast<number_integer_t>(value);
-            }
-            else
-            {
-                // parse with strtod
-                result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), NULL);
+            result.m_type  = value_t::number_float;
+            result.m_value = static_cast<number_float_t>(num);
 
-                // replace infinity and NAN by null
-                if (not std::isfinite(result.m_value.number_float))
-                {
-                    type = value_t::null;
-                    result.m_value = basic_json::json_value();
-                }
+            // replace infinity and NAN by null
+            if (not std::isfinite(result.m_value.number_float))
+            {
+                result.m_type  = value_t::null;
+                result.m_value = basic_json::json_value();
             }
-
-            // save the type
-            result.m_type = type;
         }
 
       private:
diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index e04513ca..679b7f3d 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -375,7 +375,7 @@ TEST_CASE("regression tests")
         };
 
         // change locale to mess with decimal points
-        std::locale::global(std::locale(std::locale(), new CommaDecimalSeparator));
+        auto orig_locale = std::locale::global(std::locale(std::locale(), new CommaDecimalSeparator));
 
         CHECK(j1a.dump() == "23.42");
         CHECK(j1b.dump() == "23.42");
@@ -399,6 +399,8 @@ TEST_CASE("regression tests")
         CHECK(j3c.dump() == "10000");
         //CHECK(j3b.dump() == "1E04"); // roundtrip error
         //CHECK(j3c.dump() == "1e04"); // roundtrip error
+
+        std::locale::global(orig_locale);
     }
 
     SECTION("issue #233 - Can't use basic_json::iterator as a base iterator for std::move_iterator")

From 4eafaab8164667a2c309ac5b346981542b0873e5 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Sat, 3 Dec 2016 22:54:36 -0500
Subject: [PATCH 002/174] Improved overflow detection; removed debugging output
 statements.

---
 src/json.hpp      | 47 ++++++++++++++++++++++++-----------------------
 src/json.hpp.re2c | 47 ++++++++++++++++++++++++-----------------------
 2 files changed, 48 insertions(+), 46 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index e28333bd..70bfce5a 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9223,14 +9223,6 @@ basic_json_parser_66:
                     value = -0.0;
                 }
 
-                if(!ok) {
-                    std::cerr << "data:" <<  data 
-                              << " token:" << std::string(m_start, len) 
-                              << " value:" << value 
-                              << " len:"   << len 
-                              << " parsed_len:" << (endptr - data) << std::endl;
-                }
-
                 return ok;
             }
 
@@ -9252,31 +9244,40 @@ basic_json_parser_66:
                     ++beg; // skip the leading sign
                 }
 
+                // using unsigned accumulator x because the signed
+                // type can't hold absolute value of largest
+                // negative value of this type, so overflow detection 
+                // becomes problematic.
+                using unsigned_T = typename std::make_unsigned<T>::type;
+                unsigned_T x = 0;
+
                 bool valid = beg < end       // must have some digits;
                          and ( T(-1) < 0     // type must be signed
                            or !is_negative); // if value is negative
-                value = 0;
 
                 while(beg < end and valid) {
                     const uint8_t c = static_cast<uint8_t>(*beg - '0');
-                    const T upd_value = value * 10 + c;
-                    valid &= value <= std::numeric_limits<T>::max() / 10
-                             and value <= upd_value // did not overflow
-                             and c < 10;            // char was digit
-                    value = upd_value;
+                    const unsigned_T upd_x = x * 10 + c;
+
+                    using lim_T = std::numeric_limits<T>;
+                    constexpr unsigned_T thr1 = lim_T::max() / 10;
+                    valid &=     c <  10     // char was digit
+                             and x <= thr1   // multiplication did not overflow
+                             and x <= upd_x; // addition did not overflow.
+
+                    // note that x <= upd_x alone can't detect overflow since
+                    // we're not just adding a value of decltype(x) but
+                    // also multiplying by 10
+
+                    x = upd_x;
                     ++beg;
                 }
 
-                if(is_negative) {
-                    value = 0 - value;
-                }
+                value = static_cast<T>(is_negative ? 0 - x : x);
 
-                if(!valid) {
-                    std::cerr << " token:" << std::string(m_start, m_end) 
-                              << std::endl;
-                }
-
-                return valid;
+                // the final check to make sure the value did not roll over
+                // into positives is for edge cases, e.g. -2^63
+                return valid && (is_negative == (value < 0));
             }
         };
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 72c413ba..418e302c 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8372,14 +8372,6 @@ class basic_json
                     value = -0.0;
                 }
 
-                if(!ok) {
-                    std::cerr << "data:" <<  data 
-                              << " token:" << std::string(m_start, len) 
-                              << " value:" << value 
-                              << " len:"   << len 
-                              << " parsed_len:" << (endptr - data) << std::endl;
-                }
-
                 return ok;
             }
 
@@ -8401,31 +8393,40 @@ class basic_json
                     ++beg; // skip the leading sign
                 }
 
+                // using unsigned accumulator x because the signed
+                // type can't hold absolute value of largest
+                // negative value of this type, so overflow detection 
+                // becomes problematic.
+                using unsigned_T = typename std::make_unsigned<T>::type;
+                unsigned_T x = 0;
+
                 bool valid = beg < end       // must have some digits;
                          and ( T(-1) < 0     // type must be signed
                            or !is_negative); // if value is negative
-                value = 0;
 
                 while(beg < end and valid) {
                     const uint8_t c = static_cast<uint8_t>(*beg - '0');
-                    const T upd_value = value * 10 + c;
-                    valid &= value <= std::numeric_limits<T>::max() / 10
-                             and value <= upd_value // did not overflow
-                             and c < 10;            // char was digit
-                    value = upd_value;
+                    const unsigned_T upd_x = x * 10 + c;
+
+                    using lim_T = std::numeric_limits<T>;
+                    constexpr unsigned_T thr1 = lim_T::max() / 10;
+                    valid &=     c <  10     // char was digit
+                             and x <= thr1   // multiplication did not overflow
+                             and x <= upd_x; // addition did not overflow.
+
+                    // note that x <= upd_x alone can't detect overflow since
+                    // we're not just adding a value of decltype(x) but
+                    // also multiplying by 10
+
+                    x = upd_x;
                     ++beg;
                 }
 
-                if(is_negative) {
-                    value = 0 - value;
-                }
+                value = static_cast<T>(is_negative ? 0 - x : x);
 
-                if(!valid) {
-                    std::cerr << " token:" << std::string(m_start, m_end) 
-                              << std::endl;
-                }
-
-                return valid;
+                // the final check to make sure the value did not roll over
+                // into positives is for edge cases, e.g. -2^63
+                return valid && (is_negative == (value < 0));
             }
         };
 

From c75efedc6ec7048244300a6305b25b2e117b440c Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Sat, 3 Dec 2016 23:19:43 -0500
Subject: [PATCH 003/174] stylistic changes

---
 src/json.hpp      | 92 ++++++++++++++++++++++++++---------------------
 src/json.hpp.re2c | 92 ++++++++++++++++++++++++++---------------------
 2 files changed, 104 insertions(+), 80 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 70bfce5a..56949a4c 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9060,22 +9060,6 @@ basic_json_parser_66:
             return result;
         }
 
-       
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
  
         /*!
         @brief parse string into a built-in arithmetic type as if
@@ -9086,6 +9070,9 @@ basic_json_parser_66:
                throw if can't parse the entire string as a number,
                or if the destination type is integral and the value
                is outside of the type's range.
+
+               note: in floating-point case strtod may parse 
+               past the token's end - this is not an error.
         */
         struct strtonum
         {
@@ -9101,7 +9088,8 @@ basic_json_parser_66:
             {
                 T val{0};
 
-                if(parse(val, std::is_integral<T>())) {
+                if (parse(val, std::is_integral<T>())) 
+                {
                     return val;
                 }
 
@@ -9113,24 +9101,35 @@ basic_json_parser_66:
                       + typeid(T).name());
             }
 
-            /// return true iff token matches ^[+-]\d+$
+            // return true iff token matches ^[+-]\d+$
+            //
+            // this is a helper to determine whether to
+            // parse the token into floating-point or
+            // integral type. We wouldn't need it if
+            // we had separate token types for interal
+            // and floating-point cases.
             bool is_integral() const
             {
                 const char* p = m_start;
 
-                if(!p) {
+                if (!p) 
+                {
                     return false;
                 }
 
-                if(*p == '-' or *p == '+') {
+                if (*p == '-' or *p == '+') 
+                {
                     ++p;
                 }
 
-                if(p == m_end) {
+                if (p == m_end) 
+                {
                     return false;
                 }
 
-                while(p < m_end and *p >= '0' and *p <= '9') {
+                while (p < m_end and *p >= '0' 
+                                 and *p <= '9') 
+                {
                     ++p;
                 }
 
@@ -9141,6 +9140,9 @@ basic_json_parser_66:
             const char* const m_start = nullptr;
             const char* const m_end  = nullptr;
 
+            // overloaded wrappers for strtod/strtof/strtold
+            // that will be called from parse<floating_point_t>
+
             static void strtof(float& f,
                                const char* str,
                                char** endptr)
@@ -9173,20 +9175,22 @@ basic_json_parser_66:
                         std::locale()).decimal_point();
 
                 // replace decimal separator with locale-specific
-                // version, if necessary; data will be repointed
+                // version, when necessary; data will be repointed
                 // to either buf or tempstr containing the fixed
                 // string.
                 std::string tempstr;
                 std::array<char, 64> buf;
                 do {
-                    if(decimal_point_char == '.') {
+                    if (decimal_point_char == '.') 
+                    {
                         break; // don't need to convert
                     }
 
                     const size_t ds_pos = static_cast<size_t>(
                         std::find(m_start, m_end, '.') - m_start );
 
-                    if(ds_pos == len) {
+                    if (ds_pos == len) 
+                    {
                         break; // no decimal separator
                     }
 
@@ -9194,31 +9198,33 @@ basic_json_parser_66:
                     // tempstr, if buffer is too small;
                     // replace decimal separator, and update
                     // data to point to the modified bytes
-                    if(len + 1 < buf.size()) {
+                    if (len + 1 < buf.size()) 
+                    {
                         std::copy(m_start, m_end, buf.data());
                         buf[len] = 0;
                         buf[ds_pos] = decimal_point_char;
                         data = buf.data();
-                    } else {
+                    }
+                    else 
+                    {
                         tempstr.assign(m_start, m_end);
                         tempstr[ds_pos] = decimal_point_char;
                         data = tempstr.c_str();
                     }
-                } while(0);
+                } while (0);
 
                 char* endptr = nullptr;
                 value = 0;
                 strtof(value, data, &endptr);
 
-
-
                 // note that reading past the end is OK, the data may be,
-                // for example, "123.", where the parsed token only contains "123",
-                // but strtod will read the dot as well.
+                // for example, "123.", where the parsed token only 
+                // contains "123", but strtod will read the dot as well.
                 const bool ok = endptr >= data + len
                                 and len > 0;
 
-                if(ok and value == 0.0 and *data == '-') {
+                if (ok and value == 0.0 and *data == '-') 
+                {
                     // some implementations forget to negate the zero
                     value = -0.0;
                 }
@@ -9232,15 +9238,17 @@ basic_json_parser_66:
                 const char*       beg = m_start;
                 const char* const end = m_end;
 
-                if(beg == end) {
+                if (beg == end) 
+                {
                     return false;
                 }
 
                 const bool is_negative = (*beg == '-');
 
                 // json numbers can't start with '+' but
-                // this code is not json-specific
-                if(is_negative or *beg == '+') {
+                // this code is not strictly json-specific
+                if (is_negative or *beg == '+') 
+                {
                     ++beg; // skip the leading sign
                 }
 
@@ -9255,7 +9263,8 @@ basic_json_parser_66:
                          and ( T(-1) < 0     // type must be signed
                            or !is_negative); // if value is negative
 
-                while(beg < end and valid) {
+                while (beg < end and valid) 
+                {
                     const uint8_t c = static_cast<uint8_t>(*beg - '0');
                     const unsigned_T upd_x = x * 10 + c;
 
@@ -9310,10 +9319,11 @@ basic_json_parser_66:
             const bool is_negative = *m_start == '-';
 
             try {
-                if(not num.is_integral()) {
+                if (not num.is_integral()) 
+                {
                     ;
                 } 
-                else if(is_negative) 
+                else if (is_negative) 
                 {
                     result.m_type  = value_t::number_integer;
                     result.m_value = static_cast<number_integer_t>(num);
@@ -9325,7 +9335,9 @@ basic_json_parser_66:
                     result.m_value = static_cast<number_unsigned_t>(num);
                     return;
                 }
-            } catch (std::invalid_argument&) {
+            }
+            catch (std::invalid_argument&) 
+            {
                 ; // overflow - will parse as double
             }
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 418e302c..d97057a8 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8209,22 +8209,6 @@ class basic_json
             return result;
         }
 
-       
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
  
         /*!
         @brief parse string into a built-in arithmetic type as if
@@ -8235,6 +8219,9 @@ class basic_json
                throw if can't parse the entire string as a number,
                or if the destination type is integral and the value
                is outside of the type's range.
+
+               note: in floating-point case strtod may parse 
+               past the token's end - this is not an error.
         */
         struct strtonum
         {
@@ -8250,7 +8237,8 @@ class basic_json
             {
                 T val{0};
 
-                if(parse(val, std::is_integral<T>())) {
+                if (parse(val, std::is_integral<T>())) 
+                {
                     return val;
                 }
 
@@ -8262,24 +8250,35 @@ class basic_json
                       + typeid(T).name());
             }
 
-            /// return true iff token matches ^[+-]\d+$
+            // return true iff token matches ^[+-]\d+$
+            //
+            // this is a helper to determine whether to
+            // parse the token into floating-point or
+            // integral type. We wouldn't need it if
+            // we had separate token types for interal
+            // and floating-point cases.
             bool is_integral() const
             {
                 const char* p = m_start;
 
-                if(!p) {
+                if (!p) 
+                {
                     return false;
                 }
 
-                if(*p == '-' or *p == '+') {
+                if (*p == '-' or *p == '+') 
+                {
                     ++p;
                 }
 
-                if(p == m_end) {
+                if (p == m_end) 
+                {
                     return false;
                 }
 
-                while(p < m_end and *p >= '0' and *p <= '9') {
+                while (p < m_end and *p >= '0' 
+                                 and *p <= '9') 
+                {
                     ++p;
                 }
 
@@ -8290,6 +8289,9 @@ class basic_json
             const char* const m_start = nullptr;
             const char* const m_end  = nullptr;
 
+            // overloaded wrappers for strtod/strtof/strtold
+            // that will be called from parse<floating_point_t>
+
             static void strtof(float& f,
                                const char* str,
                                char** endptr)
@@ -8322,20 +8324,22 @@ class basic_json
                         std::locale()).decimal_point();
 
                 // replace decimal separator with locale-specific
-                // version, if necessary; data will be repointed
+                // version, when necessary; data will be repointed
                 // to either buf or tempstr containing the fixed
                 // string.
                 std::string tempstr;
                 std::array<char, 64> buf;
                 do {
-                    if(decimal_point_char == '.') {
+                    if (decimal_point_char == '.') 
+                    {
                         break; // don't need to convert
                     }
 
                     const size_t ds_pos = static_cast<size_t>(
                         std::find(m_start, m_end, '.') - m_start );
 
-                    if(ds_pos == len) {
+                    if (ds_pos == len) 
+                    {
                         break; // no decimal separator
                     }
 
@@ -8343,31 +8347,33 @@ class basic_json
                     // tempstr, if buffer is too small;
                     // replace decimal separator, and update
                     // data to point to the modified bytes
-                    if(len + 1 < buf.size()) {
+                    if (len + 1 < buf.size()) 
+                    {
                         std::copy(m_start, m_end, buf.data());
                         buf[len] = 0;
                         buf[ds_pos] = decimal_point_char;
                         data = buf.data();
-                    } else {
+                    }
+                    else 
+                    {
                         tempstr.assign(m_start, m_end);
                         tempstr[ds_pos] = decimal_point_char;
                         data = tempstr.c_str();
                     }
-                } while(0);
+                } while (0);
 
                 char* endptr = nullptr;
                 value = 0;
                 strtof(value, data, &endptr);
 
-
-
                 // note that reading past the end is OK, the data may be,
-                // for example, "123.", where the parsed token only contains "123",
-                // but strtod will read the dot as well.
+                // for example, "123.", where the parsed token only 
+                // contains "123", but strtod will read the dot as well.
                 const bool ok = endptr >= data + len
                                 and len > 0;
 
-                if(ok and value == 0.0 and *data == '-') {
+                if (ok and value == 0.0 and *data == '-') 
+                {
                     // some implementations forget to negate the zero
                     value = -0.0;
                 }
@@ -8381,15 +8387,17 @@ class basic_json
                 const char*       beg = m_start;
                 const char* const end = m_end;
 
-                if(beg == end) {
+                if (beg == end) 
+                {
                     return false;
                 }
 
                 const bool is_negative = (*beg == '-');
 
                 // json numbers can't start with '+' but
-                // this code is not json-specific
-                if(is_negative or *beg == '+') {
+                // this code is not strictly json-specific
+                if (is_negative or *beg == '+') 
+                {
                     ++beg; // skip the leading sign
                 }
 
@@ -8404,7 +8412,8 @@ class basic_json
                          and ( T(-1) < 0     // type must be signed
                            or !is_negative); // if value is negative
 
-                while(beg < end and valid) {
+                while (beg < end and valid) 
+                {
                     const uint8_t c = static_cast<uint8_t>(*beg - '0');
                     const unsigned_T upd_x = x * 10 + c;
 
@@ -8459,10 +8468,11 @@ class basic_json
             const bool is_negative = *m_start == '-';
 
             try {
-                if(not num.is_integral()) {
+                if (not num.is_integral()) 
+                {
                     ;
                 } 
-                else if(is_negative) 
+                else if (is_negative) 
                 {
                     result.m_type  = value_t::number_integer;
                     result.m_value = static_cast<number_integer_t>(num);
@@ -8474,7 +8484,9 @@ class basic_json
                     result.m_value = static_cast<number_unsigned_t>(num);
                     return;
                 }
-            } catch (std::invalid_argument&) {
+            }
+            catch (std::invalid_argument&) 
+            {
                 ; // overflow - will parse as double
             }
 

From e41a956782fd64a2bdf253a13f05bc5e8239ec61 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Sun, 4 Dec 2016 13:23:39 -0500
Subject: [PATCH 004/174] Alternative handling of integer types relying on
 strto[u]ll

---
 src/json.hpp      | 46 ++++++++++++++++++++++++++++++++++++++++++++--
 src/json.hpp.re2c | 46 ++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 88 insertions(+), 4 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 56949a4c..51b19518 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9073,6 +9073,8 @@ basic_json_parser_66:
 
                note: in floating-point case strtod may parse 
                past the token's end - this is not an error.
+
+               any leading blanks are not handled.
         */
         struct strtonum
         {
@@ -9232,6 +9234,45 @@ basic_json_parser_66:
                 return ok;
             }
 
+
+#if 1 // parsing with strto[u]ll - easier to understand but slightly slower
+
+            signed long long parse_integral(
+                    char** endptr, 
+                    /*is_signed*/std::true_type) const
+            {
+                return std::strtoll(m_start, endptr, 10);
+            }
+
+            unsigned long long parse_integral(
+                    char** endptr, 
+                    /*is_signed*/std::false_type) const
+            {
+                return std::strtoull(m_start, endptr, 10);
+            }
+
+            template<typename T>
+            bool parse(T& value, /*is_integral=*/std::true_type) const
+            {
+                char* endptr = nullptr;
+                errno        = 0; // these are thread-local
+                const auto x = parse_integral(&endptr, std::is_signed<T>());
+
+                static_assert(std::is_signed<T>() // called right overload?
+                           == std::is_signed<decltype(x)>(), "");
+
+                value = static_cast<T>(x);
+
+                return x == static_cast<decltype(x)>(value) // x fits into destination T
+                   and (x != 0 or is_integral())            // strto[u]ll did nto fail
+                   and errno == 0                           // strto[u]ll did not overflow
+                   and m_start < m_end                      // token was not empty
+                   and endptr == m_end                      // parsed entire token exactly
+                   and (x < 0) == (*m_start == '-');        // input was sign-compatible
+            }
+
+#else // parsing integral types manually
+
             template<typename T>
             bool parse(T& value, /*is_integral=*/std::true_type) const
             {
@@ -9240,7 +9281,7 @@ basic_json_parser_66:
 
                 if (beg == end) 
                 {
-                    return false;
+                    return false; // empty token
                 }
 
                 const bool is_negative = (*beg == '-');
@@ -9261,7 +9302,7 @@ basic_json_parser_66:
 
                 bool valid = beg < end       // must have some digits;
                          and ( T(-1) < 0     // type must be signed
-                           or !is_negative); // if value is negative
+                           or !is_negative); // ...if value is negative
 
                 while (beg < end and valid) 
                 {
@@ -9288,6 +9329,7 @@ basic_json_parser_66:
                 // into positives is for edge cases, e.g. -2^63
                 return valid && (is_negative == (value < 0));
             }
+#endif
         };
 
         /*!
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index d97057a8..e5f344b2 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8222,6 +8222,8 @@ class basic_json
 
                note: in floating-point case strtod may parse 
                past the token's end - this is not an error.
+
+               any leading blanks are not handled.
         */
         struct strtonum
         {
@@ -8381,6 +8383,45 @@ class basic_json
                 return ok;
             }
 
+
+#if 1 // parsing with strto[u]ll - easier to understand but slightly slower
+
+            signed long long parse_integral(
+                    char** endptr, 
+                    /*is_signed*/std::true_type) const
+            {
+                return std::strtoll(m_start, endptr, 10);
+            }
+
+            unsigned long long parse_integral(
+                    char** endptr, 
+                    /*is_signed*/std::false_type) const
+            {
+                return std::strtoull(m_start, endptr, 10);
+            }
+
+            template<typename T>
+            bool parse(T& value, /*is_integral=*/std::true_type) const
+            {
+                char* endptr = nullptr;
+                errno        = 0; // these are thread-local
+                const auto x = parse_integral(&endptr, std::is_signed<T>());
+
+                static_assert(std::is_signed<T>() // called right overload?
+                           == std::is_signed<decltype(x)>(), "");
+
+                value = static_cast<T>(x);
+
+                return x == static_cast<decltype(x)>(value) // x fits into destination T
+                   and (x != 0 or is_integral())            // strto[u]ll did nto fail
+                   and errno == 0                           // strto[u]ll did not overflow
+                   and m_start < m_end                      // token was not empty
+                   and endptr == m_end                      // parsed entire token exactly
+                   and (x < 0) == (*m_start == '-');        // input was sign-compatible
+            }
+
+#else // parsing integral types manually
+
             template<typename T>
             bool parse(T& value, /*is_integral=*/std::true_type) const
             {
@@ -8389,7 +8430,7 @@ class basic_json
 
                 if (beg == end) 
                 {
-                    return false;
+                    return false; // empty token
                 }
 
                 const bool is_negative = (*beg == '-');
@@ -8410,7 +8451,7 @@ class basic_json
 
                 bool valid = beg < end       // must have some digits;
                          and ( T(-1) < 0     // type must be signed
-                           or !is_negative); // if value is negative
+                           or !is_negative); // ...if value is negative
 
                 while (beg < end and valid) 
                 {
@@ -8437,6 +8478,7 @@ class basic_json
                 // into positives is for edge cases, e.g. -2^63
                 return valid && (is_negative == (value < 0));
             }
+#endif
         };
 
         /*!

From d64336057569281386aafed096a6db77d8aa901a Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Tue, 6 Dec 2016 00:43:12 -0500
Subject: [PATCH 005/174] Bugfix: when working with C formatting functions we
 need to query C locales (localeconv) rather than std::locale

---
 src/json.hpp      | 12 +++++++++++-
 src/json.hpp.re2c | 12 +++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 51b19518..f1666c6c 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9108,7 +9108,7 @@ basic_json_parser_66:
             // this is a helper to determine whether to
             // parse the token into floating-point or
             // integral type. We wouldn't need it if
-            // we had separate token types for interal
+            // we had separate token types for integral
             // and floating-point cases.
             bool is_integral() const
             {
@@ -9172,9 +9172,19 @@ basic_json_parser_66:
                 const char* data = m_start;
                 const size_t len = static_cast<size_t>(m_end - m_start);
 
+#if 0
                 const char decimal_point_char =
                     std::use_facet< std::numpunct<char> >(
                         std::locale()).decimal_point();
+#else
+                // Since dealing with strtod family of functions,
+                // need to use the C locales instead of C++
+                const auto loc = localeconv();
+                assert(loc != nullptr);
+                const char decimal_point_char = 
+                    !loc->decimal_point ? '.'
+                   : loc->decimal_point[0];
+#endif
 
                 // replace decimal separator with locale-specific
                 // version, when necessary; data will be repointed
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index e5f344b2..b8059035 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8257,7 +8257,7 @@ class basic_json
             // this is a helper to determine whether to
             // parse the token into floating-point or
             // integral type. We wouldn't need it if
-            // we had separate token types for interal
+            // we had separate token types for integral
             // and floating-point cases.
             bool is_integral() const
             {
@@ -8321,9 +8321,19 @@ class basic_json
                 const char* data = m_start;
                 const size_t len = static_cast<size_t>(m_end - m_start);
 
+#if 0
                 const char decimal_point_char =
                     std::use_facet< std::numpunct<char> >(
                         std::locale()).decimal_point();
+#else
+                // Since dealing with strtod family of functions,
+                // need to use the C locales instead of C++
+                const auto loc = localeconv();
+                assert(loc != nullptr);
+                const char decimal_point_char = 
+                    !loc->decimal_point ? '.'
+                   : loc->decimal_point[0];
+#endif
 
                 // replace decimal separator with locale-specific
                 // version, when necessary; data will be repointed

From 0c87d5d6b34d8595ceb645be1e0b82c4a4eaafe2 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Tue, 6 Dec 2016 19:41:05 -0500
Subject: [PATCH 006/174] Refactored preprocessing with a lambda instead of
 do{...}while(0)

---
 src/json.hpp | 48 ++++++++++++++++++++++--------------------------
 1 file changed, 22 insertions(+), 26 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index f1666c6c..19f1f109 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9169,33 +9169,28 @@ basic_json_parser_66:
             template<typename T>
             bool parse(T& value, /*is_integral=*/std::false_type) const
             {
-                const char* data = m_start;
-                const size_t len = static_cast<size_t>(m_end - m_start);
-
-#if 0
-                const char decimal_point_char =
-                    std::use_facet< std::numpunct<char> >(
-                        std::locale()).decimal_point();
-#else
-                // Since dealing with strtod family of functions,
-                // need to use the C locales instead of C++
-                const auto loc = localeconv();
-                assert(loc != nullptr);
-                const char decimal_point_char = 
-                    !loc->decimal_point ? '.'
-                   : loc->decimal_point[0];
-#endif
-
                 // replace decimal separator with locale-specific
-                // version, when necessary; data will be repointed
-                // to either buf or tempstr containing the fixed
-                // string.
+                // version, when necessary; data will point to
+                // either the original string, or buf, or tempstr
+                // containing the fixed string.
                 std::string tempstr;
                 std::array<char, 64> buf;
-                do {
+                const size_t len = static_cast<size_t>(m_end - m_start);
+
+                const char* const data = [this, &tempstr, &buf, len]() -> const char*
+                {
+                    // Since dealing with strtod family of functions,
+                    // we're getting the decimal point char from the
+                    // C locale facilities instead of C++'s numpunct
+                    // facet of the current std::locale;
+                    const auto loc = localeconv();
+                    assert(loc != nullptr);
+                    const char decimal_point_char = !loc->decimal_point ? '.'
+                                                   : loc->decimal_point[0];
+
                     if (decimal_point_char == '.') 
                     {
-                        break; // don't need to convert
+                        return m_start; // don't need to convert
                     }
 
                     const size_t ds_pos = static_cast<size_t>(
@@ -9203,7 +9198,7 @@ basic_json_parser_66:
 
                     if (ds_pos == len) 
                     {
-                        break; // no decimal separator
+                        return m_start; // no decimal separator
                     }
 
                     // copy the data into the local buffer or
@@ -9215,18 +9210,19 @@ basic_json_parser_66:
                         std::copy(m_start, m_end, buf.data());
                         buf[len] = 0;
                         buf[ds_pos] = decimal_point_char;
-                        data = buf.data();
+                        return buf.data();
                     }
                     else 
                     {
                         tempstr.assign(m_start, m_end);
                         tempstr[ds_pos] = decimal_point_char;
-                        data = tempstr.c_str();
+                        return tempstr.c_str();
                     }
-                } while (0);
+                }();
 
                 char* endptr = nullptr;
                 value = 0;
+                // this calls appropriate overload depending on T
                 strtof(value, data, &endptr);
 
                 // note that reading past the end is OK, the data may be,

From 7a081244a575284246d38a594fb0436ca2b6dacc Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Tue, 6 Dec 2016 19:41:31 -0500
Subject: [PATCH 007/174] Refactored preprocessing with a lambda instead of
 do{...}while(0)

---
 src/json.hpp.re2c | 48 ++++++++++++++++++++++-------------------------
 1 file changed, 22 insertions(+), 26 deletions(-)

diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index b8059035..27a53fb7 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8318,33 +8318,28 @@ class basic_json
             template<typename T>
             bool parse(T& value, /*is_integral=*/std::false_type) const
             {
-                const char* data = m_start;
-                const size_t len = static_cast<size_t>(m_end - m_start);
-
-#if 0
-                const char decimal_point_char =
-                    std::use_facet< std::numpunct<char> >(
-                        std::locale()).decimal_point();
-#else
-                // Since dealing with strtod family of functions,
-                // need to use the C locales instead of C++
-                const auto loc = localeconv();
-                assert(loc != nullptr);
-                const char decimal_point_char = 
-                    !loc->decimal_point ? '.'
-                   : loc->decimal_point[0];
-#endif
-
                 // replace decimal separator with locale-specific
-                // version, when necessary; data will be repointed
-                // to either buf or tempstr containing the fixed
-                // string.
+                // version, when necessary; data will point to
+                // either the original string, or buf, or tempstr
+                // containing the fixed string.
                 std::string tempstr;
                 std::array<char, 64> buf;
-                do {
+                const size_t len = static_cast<size_t>(m_end - m_start);
+
+                const char* const data = [this, &tempstr, &buf, len]() -> const char*
+                {
+                    // Since dealing with strtod family of functions,
+                    // we're getting the decimal point char from the
+                    // C locale facilities instead of C++'s numpunct
+                    // facet of the current std::locale;
+                    const auto loc = localeconv();
+                    assert(loc != nullptr);
+                    const char decimal_point_char = !loc->decimal_point ? '.'
+                                                   : loc->decimal_point[0];
+
                     if (decimal_point_char == '.') 
                     {
-                        break; // don't need to convert
+                        return m_start; // don't need to convert
                     }
 
                     const size_t ds_pos = static_cast<size_t>(
@@ -8352,7 +8347,7 @@ class basic_json
 
                     if (ds_pos == len) 
                     {
-                        break; // no decimal separator
+                        return m_start; // no decimal separator
                     }
 
                     // copy the data into the local buffer or
@@ -8364,18 +8359,19 @@ class basic_json
                         std::copy(m_start, m_end, buf.data());
                         buf[len] = 0;
                         buf[ds_pos] = decimal_point_char;
-                        data = buf.data();
+                        return buf.data();
                     }
                     else 
                     {
                         tempstr.assign(m_start, m_end);
                         tempstr[ds_pos] = decimal_point_char;
-                        data = tempstr.c_str();
+                        return tempstr.c_str();
                     }
-                } while (0);
+                }();
 
                 char* endptr = nullptr;
                 value = 0;
+                // this calls appropriate overload depending on T
                 strtof(value, data, &endptr);
 
                 // note that reading past the end is OK, the data may be,

From 6e8da7d8c4aada79740076755ed487da505ceb28 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Tue, 6 Dec 2016 19:45:48 -0500
Subject: [PATCH 008/174] Added unit-test for issue #379 (locale-independent
 str-to-num)

---
 test/src/unit-regression.cpp | 38 ++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 679b7f3d..2787fe26 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -403,6 +403,44 @@ TEST_CASE("regression tests")
         std::locale::global(orig_locale);
     }
 
+    SECTION("issue #379 - locale-independent str-to-num")
+    {
+        const std::string orig_locale_name(setlocale(LC_ALL, NULL));
+        
+        setlocale(LC_NUMERIC, "de_DE");
+        std::array<char, 64> buf;
+
+        {
+            // verify that snprintf now uses commas as decimal-separator
+            std::snprintf(buf.data(), buf.size(), "%.2f", 3.14);
+            assert(std::strcmp(buf.data(), "3,14") == 0);
+
+            // verify that strtod now uses commas as decimal-separator
+            const double d1 = std::strtod(buf.data(), nullptr);
+            assert(d1 == 3.14);
+
+            // verify that strtod does not understand dots as decimal separator
+            const double d2 = std::strtod("3.14", nullptr);
+            assert(d2 == 3);
+        }
+
+        const json j1 = json::parse("3.14");
+
+        // verify that parsed correctly despite using strtod internally
+        CHECK(j1.get<double>() == 3.14);
+
+        // verify that dumped correctly despite using snprintf internally
+        CHECK(j1.dump() == "3.14");
+
+        // check a different code path
+        const json j2 = json::parse("1.000000000000000000000000000000000000000000000000000000000000000000000000");
+        CHECK(j2.get<double>() == 1.0);
+
+        // restore original locale
+        setlocale(LC_ALL, orig_locale_name.c_str());
+    }
+
+
     SECTION("issue #233 - Can't use basic_json::iterator as a base iterator for std::move_iterator")
     {
         json source = {"a", "b", "c"};

From d2e9ce270a642e4ca7e00fc160c81eadb55a5639 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Tue, 6 Dec 2016 22:18:20 -0500
Subject: [PATCH 009/174] Trying to coerce setlocale to make snprintf use
 commas as delimiter; the behavior appears to be compiler/platform-specific

---
 test/src/unit-regression.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 2787fe26..17616a3e 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -407,21 +407,21 @@ TEST_CASE("regression tests")
     {
         const std::string orig_locale_name(setlocale(LC_ALL, NULL));
         
-        setlocale(LC_NUMERIC, "de_DE");
+        setlocale(LC_NUMERIC, "fr_Fr.UTF-8");
         std::array<char, 64> buf;
 
         {
             // verify that snprintf now uses commas as decimal-separator
             std::snprintf(buf.data(), buf.size(), "%.2f", 3.14);
-            assert(std::strcmp(buf.data(), "3,14") == 0);
+            CHECK(std::strcmp(buf.data(), "3,14") == 0);
 
             // verify that strtod now uses commas as decimal-separator
             const double d1 = std::strtod(buf.data(), nullptr);
-            assert(d1 == 3.14);
+            CHECK(d1 == 3.14);
 
             // verify that strtod does not understand dots as decimal separator
             const double d2 = std::strtod("3.14", nullptr);
-            assert(d2 == 3);
+            CHECK(d2 == 3);
         }
 
         const json j1 = json::parse("3.14");

From d169598c6c236ce115a8453d917d99efc79fa3a3 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Tue, 6 Dec 2016 22:20:48 -0500
Subject: [PATCH 010/174] simplified code a bit based on @gregmarr's
 suggestions

---
 src/json.hpp      | 69 ++++++++++++++++++++++-------------------------
 src/json.hpp.re2c | 69 ++++++++++++++++++++++-------------------------
 2 files changed, 64 insertions(+), 74 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 19f1f109..1644d91f 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9177,48 +9177,43 @@ basic_json_parser_66:
                 std::array<char, 64> buf;
                 const size_t len = static_cast<size_t>(m_end - m_start);
 
-                const char* const data = [this, &tempstr, &buf, len]() -> const char*
+                // Since dealing with strtod family of functions,
+                // we're getting the decimal point char from the
+                // C locale facilities instead of C++'s numpunct
+                // facet of the current std::locale;
+                const auto loc = localeconv();
+                assert(loc != nullptr);
+                const char decimal_point_char = !loc->decimal_point ? '.'
+                                               : loc->decimal_point[0];
+ 
+                const char *data = m_start;
+ 
+                if (decimal_point_char != '.')
                 {
-                    // Since dealing with strtod family of functions,
-                    // we're getting the decimal point char from the
-                    // C locale facilities instead of C++'s numpunct
-                    // facet of the current std::locale;
-                    const auto loc = localeconv();
-                    assert(loc != nullptr);
-                    const char decimal_point_char = !loc->decimal_point ? '.'
-                                                   : loc->decimal_point[0];
-
-                    if (decimal_point_char == '.') 
-                    {
-                        return m_start; // don't need to convert
-                    }
-
                     const size_t ds_pos = static_cast<size_t>(
                         std::find(m_start, m_end, '.') - m_start );
-
-                    if (ds_pos == len) 
+ 
+                    if (ds_pos != len)
                     {
-                        return m_start; // no decimal separator
+                        // copy the data into the local buffer or
+                        // tempstr, if buffer is too small;
+                        // replace decimal separator, and update
+                        // data to point to the modified bytes
+                        if (len + 1 < buf.size())
+                        {
+                            std::copy(m_start, m_end, buf.data());
+                            buf[len] = 0;
+                            buf[ds_pos] = decimal_point_char;
+                            data = buf.data();
+                        }
+                        else
+                        {
+                            tempstr.assign(m_start, m_end);
+                            tempstr[ds_pos] = decimal_point_char;
+                            data = tempstr.c_str();
+                        }
                     }
-
-                    // copy the data into the local buffer or
-                    // tempstr, if buffer is too small;
-                    // replace decimal separator, and update
-                    // data to point to the modified bytes
-                    if (len + 1 < buf.size()) 
-                    {
-                        std::copy(m_start, m_end, buf.data());
-                        buf[len] = 0;
-                        buf[ds_pos] = decimal_point_char;
-                        return buf.data();
-                    }
-                    else 
-                    {
-                        tempstr.assign(m_start, m_end);
-                        tempstr[ds_pos] = decimal_point_char;
-                        return tempstr.c_str();
-                    }
-                }();
+                }
 
                 char* endptr = nullptr;
                 value = 0;
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 27a53fb7..b541db1e 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8326,48 +8326,43 @@ class basic_json
                 std::array<char, 64> buf;
                 const size_t len = static_cast<size_t>(m_end - m_start);
 
-                const char* const data = [this, &tempstr, &buf, len]() -> const char*
+                // Since dealing with strtod family of functions,
+                // we're getting the decimal point char from the
+                // C locale facilities instead of C++'s numpunct
+                // facet of the current std::locale;
+                const auto loc = localeconv();
+                assert(loc != nullptr);
+                const char decimal_point_char = !loc->decimal_point ? '.'
+                                               : loc->decimal_point[0];
+ 
+                const char *data = m_start;
+ 
+                if (decimal_point_char != '.')
                 {
-                    // Since dealing with strtod family of functions,
-                    // we're getting the decimal point char from the
-                    // C locale facilities instead of C++'s numpunct
-                    // facet of the current std::locale;
-                    const auto loc = localeconv();
-                    assert(loc != nullptr);
-                    const char decimal_point_char = !loc->decimal_point ? '.'
-                                                   : loc->decimal_point[0];
-
-                    if (decimal_point_char == '.') 
-                    {
-                        return m_start; // don't need to convert
-                    }
-
                     const size_t ds_pos = static_cast<size_t>(
                         std::find(m_start, m_end, '.') - m_start );
-
-                    if (ds_pos == len) 
+ 
+                    if (ds_pos != len)
                     {
-                        return m_start; // no decimal separator
+                        // copy the data into the local buffer or
+                        // tempstr, if buffer is too small;
+                        // replace decimal separator, and update
+                        // data to point to the modified bytes
+                        if (len + 1 < buf.size())
+                        {
+                            std::copy(m_start, m_end, buf.data());
+                            buf[len] = 0;
+                            buf[ds_pos] = decimal_point_char;
+                            data = buf.data();
+                        }
+                        else
+                        {
+                            tempstr.assign(m_start, m_end);
+                            tempstr[ds_pos] = decimal_point_char;
+                            data = tempstr.c_str();
+                        }
                     }
-
-                    // copy the data into the local buffer or
-                    // tempstr, if buffer is too small;
-                    // replace decimal separator, and update
-                    // data to point to the modified bytes
-                    if (len + 1 < buf.size()) 
-                    {
-                        std::copy(m_start, m_end, buf.data());
-                        buf[len] = 0;
-                        buf[ds_pos] = decimal_point_char;
-                        return buf.data();
-                    }
-                    else 
-                    {
-                        tempstr.assign(m_start, m_end);
-                        tempstr[ds_pos] = decimal_point_char;
-                        return tempstr.c_str();
-                    }
-                }();
+                }
 
                 char* endptr = nullptr;
                 value = 0;

From 6774457733524e81d7aa6fd0f3df6fd48423d0f7 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Tue, 6 Dec 2016 22:59:12 -0500
Subject: [PATCH 011/174] Trying to coerce setlocale to make snprintf use
 commas as delimiter some more

---
 test/src/unit-regression.cpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 17616a3e..41ddfa40 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -405,9 +405,14 @@ TEST_CASE("regression tests")
 
     SECTION("issue #379 - locale-independent str-to-num")
     {
-        const std::string orig_locale_name(setlocale(LC_ALL, NULL));
+        // If I save the locale here and restore it in the end
+        // of this block, then setLocale(LC_NUMERIC, "de_DE") 
+        // does not actually make snprintf use "," as decimal separator
+        // on some compilers. I have no idea...
+        //
+        //const std::string orig_locale_name(setlocale(LC_ALL, NULL));
         
-        setlocale(LC_NUMERIC, "fr_Fr.UTF-8");
+        setlocale(LC_NUMERIC, "de_DE");
         std::array<char, 64> buf;
 
         {
@@ -437,7 +442,7 @@ TEST_CASE("regression tests")
         CHECK(j2.get<double>() == 1.0);
 
         // restore original locale
-        setlocale(LC_ALL, orig_locale_name.c_str());
+        // setlocale(LC_ALL, orig_locale_name.c_str());
     }
 
 

From 0a4a6a8399d1f4194d009c50ec076dd287cafa9e Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Wed, 7 Dec 2016 19:53:27 -0500
Subject: [PATCH 012/174] Refactored to avoid using exceptions, as there are
 plans to support exceptionless mode

---
 src/json.hpp      | 78 +++++++++++++++++++++++++++++++++++------------
 src/json.hpp.re2c | 78 +++++++++++++++++++++++++++++++++++------------
 2 files changed, 118 insertions(+), 38 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 1644d91f..79d6bb02 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9079,10 +9079,42 @@ basic_json_parser_66:
         struct strtonum
         {
         public:
-            strtonum(const char* start, const char* end) 
+            template<typename T>
+            struct maybe
+            {
+                T x;
+                bool valid;
+
+                maybe(const T& xx)
+                    : x(xx), valid(true)
+                {}
+
+                maybe() : x(), valid(false)
+                {}
+
+                operator bool() const
+                {
+                    return valid;
+                }
+
+                const T& operator*() const
+                {
+                    return x;
+                }
+            };
+
+            strtonum(const char* start, const char* end)
                 : m_start(start), m_end(end)
             {}
 
+            template<typename T,
+                     typename = typename std::enable_if<
+                         std::is_arithmetic<T>::value>::type >
+            bool to(T& val) const
+            {
+                return parse(val, std::is_integral<T>());
+            }
+
             template<typename T,
                      typename = typename std::enable_if<
                          std::is_arithmetic<T>::value>::type >
@@ -9361,31 +9393,39 @@ basic_json_parser_66:
 
             const bool is_negative = *m_start == '-';
 
-            try {
-                if (not num.is_integral()) 
-                {
-                    ;
-                } 
-                else if (is_negative) 
-                {
+            result.m_type = value_t::discarded;
+
+            if (not num.is_integral())
+            {
+                ; // will parse as float below
+            }
+            else if (is_negative)
+            {
+                number_integer_t val{0};
+                if(num.to(val)) {
                     result.m_type  = value_t::number_integer;
-                    result.m_value = static_cast<number_integer_t>(num);
-                    return;
-                } 
-                else 
-                {
-                    result.m_type  = value_t::number_unsigned;
-                    result.m_value = static_cast<number_unsigned_t>(num);
-                    return;
+                    result.m_value = val;
                 }
             }
-            catch (std::invalid_argument&) 
+            else
             {
-                ; // overflow - will parse as double
+                number_unsigned_t val{0};
+                if(num.to(val)) {
+                    result.m_type  = value_t::number_unsigned;
+                    result.m_value = val;
+                }
+            }
+
+            number_float_t val{0};
+            if (result.m_type != value_t::discarded
+                or !num.to(val))
+            {
+                return; // already have a value from above
+                        // or couldn't parse as float_t
             }
 
             result.m_type  = value_t::number_float;
-            result.m_value = static_cast<number_float_t>(num);
+            result.m_value = val;
 
             // replace infinity and NAN by null
             if (not std::isfinite(result.m_value.number_float))
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index b541db1e..24c54975 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8228,10 +8228,42 @@ class basic_json
         struct strtonum
         {
         public:
-            strtonum(const char* start, const char* end) 
+            template<typename T>
+            struct maybe
+            {
+                T x;
+                bool valid;
+
+                maybe(const T& xx)
+                    : x(xx), valid(true)
+                {}
+
+                maybe() : x(), valid(false)
+                {}
+
+                operator bool() const
+                {
+                    return valid;
+                }
+
+                const T& operator*() const
+                {
+                    return x;
+                }
+            };
+
+            strtonum(const char* start, const char* end)
                 : m_start(start), m_end(end)
             {}
 
+            template<typename T,
+                     typename = typename std::enable_if<
+                         std::is_arithmetic<T>::value>::type >
+            bool to(T& val) const
+            {
+                return parse(val, std::is_integral<T>());
+            }
+
             template<typename T,
                      typename = typename std::enable_if<
                          std::is_arithmetic<T>::value>::type >
@@ -8510,31 +8542,39 @@ class basic_json
 
             const bool is_negative = *m_start == '-';
 
-            try {
-                if (not num.is_integral()) 
-                {
-                    ;
-                } 
-                else if (is_negative) 
-                {
+            result.m_type = value_t::discarded;
+
+            if (not num.is_integral())
+            {
+                ; // will parse as float below
+            }
+            else if (is_negative)
+            {
+                number_integer_t val{0};
+                if(num.to(val)) {
                     result.m_type  = value_t::number_integer;
-                    result.m_value = static_cast<number_integer_t>(num);
-                    return;
-                } 
-                else 
-                {
-                    result.m_type  = value_t::number_unsigned;
-                    result.m_value = static_cast<number_unsigned_t>(num);
-                    return;
+                    result.m_value = val;
                 }
             }
-            catch (std::invalid_argument&) 
+            else
             {
-                ; // overflow - will parse as double
+                number_unsigned_t val{0};
+                if(num.to(val)) {
+                    result.m_type  = value_t::number_unsigned;
+                    result.m_value = val;
+                }
+            }
+
+            number_float_t val{0};
+            if (result.m_type != value_t::discarded
+                or !num.to(val))
+            {
+                return; // already have a value from above
+                        // or couldn't parse as float_t
             }
 
             result.m_type  = value_t::number_float;
-            result.m_value = static_cast<number_float_t>(num);
+            result.m_value = val;
 
             // replace infinity and NAN by null
             if (not std::isfinite(result.m_value.number_float))

From 27d9740ad6d9b564beb0e995e0ab393c6ab3daf7 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Wed, 7 Dec 2016 19:55:07 -0500
Subject: [PATCH 013/174] Tweaks to unit-test for issue #379

---
 test/src/unit-regression.cpp | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 41ddfa40..deace862 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -406,22 +406,27 @@ TEST_CASE("regression tests")
     SECTION("issue #379 - locale-independent str-to-num")
     {
         // If I save the locale here and restore it in the end
-        // of this block, then setLocale(LC_NUMERIC, "de_DE") 
+        // of this block, then setLocale(LC_NUMERIC, "de_DE")
         // does not actually make snprintf use "," as decimal separator
         // on some compilers. I have no idea...
-        //
         //const std::string orig_locale_name(setlocale(LC_ALL, NULL));
-        
-        setlocale(LC_NUMERIC, "de_DE");
+
+
+        // Still, just setting some comma-using locale does not
+        // make snprintf output commas on all platforms, so instead
+        // will change dot to comma in the current locale below
+        //setlocale(LC_NUMERIC, "de_DE");
+
+        auto loc = localeconv();
+        auto orig_decimal_point = loc->decimal_point;
+        char comma[] = ",";
+        loc->decimal_point = comma;
+
         std::array<char, 64> buf;
 
         {
-            // verify that snprintf now uses commas as decimal-separator
-            std::snprintf(buf.data(), buf.size(), "%.2f", 3.14);
-            CHECK(std::strcmp(buf.data(), "3,14") == 0);
-
             // verify that strtod now uses commas as decimal-separator
-            const double d1 = std::strtod(buf.data(), nullptr);
+            const double d1 = std::strtod("3,14", nullptr);
             CHECK(d1 == 3.14);
 
             // verify that strtod does not understand dots as decimal separator
@@ -429,18 +434,15 @@ TEST_CASE("regression tests")
             CHECK(d2 == 3);
         }
 
-        const json j1 = json::parse("3.14");
-
         // verify that parsed correctly despite using strtod internally
+        const json j1 = json::parse("3.14");
         CHECK(j1.get<double>() == 3.14);
 
-        // verify that dumped correctly despite using snprintf internally
-        CHECK(j1.dump() == "3.14");
-
         // check a different code path
         const json j2 = json::parse("1.000000000000000000000000000000000000000000000000000000000000000000000000");
         CHECK(j2.get<double>() == 1.0);
 
+        loc->decimal_point = orig_decimal_point;
         // restore original locale
         // setlocale(LC_ALL, orig_locale_name.c_str());
     }

From 38499e84fc771b21db7764ff4e014f7c3939d4b0 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Thu, 8 Dec 2016 21:38:14 -0500
Subject: [PATCH 014/174] Removed unused struct; fixed comments

---
 src/json.hpp      | 69 +++++++++--------------------------------------
 src/json.hpp.re2c | 69 +++++++++--------------------------------------
 2 files changed, 24 insertions(+), 114 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 79d6bb02..867afbb3 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9065,12 +9065,6 @@ basic_json_parser_66:
         @brief parse string into a built-in arithmetic type as if
                the current locale is POSIX.
 
-               e.g. const auto x = static_cast<float>("123.4");
-
-               throw if can't parse the entire string as a number,
-               or if the destination type is integral and the value
-               is outside of the type's range.
-
                note: in floating-point case strtod may parse 
                past the token's end - this is not an error.
 
@@ -9079,34 +9073,15 @@ basic_json_parser_66:
         struct strtonum
         {
         public:
-            template<typename T>
-            struct maybe
-            {
-                T x;
-                bool valid;
-
-                maybe(const T& xx)
-                    : x(xx), valid(true)
-                {}
-
-                maybe() : x(), valid(false)
-                {}
-
-                operator bool() const
-                {
-                    return valid;
-                }
-
-                const T& operator*() const
-                {
-                    return x;
-                }
-            };
-
             strtonum(const char* start, const char* end)
                 : m_start(start), m_end(end)
             {}
 
+            /// return true iff parsed successfully as 
+            /// number of type T.
+            ///
+            /// @val shall contain parsed value, or 
+            /// undefined value if could not parse.
             template<typename T,
                      typename = typename std::enable_if<
                          std::is_arithmetic<T>::value>::type >
@@ -9115,33 +9090,13 @@ basic_json_parser_66:
                 return parse(val, std::is_integral<T>());
             }
 
-            template<typename T,
-                     typename = typename std::enable_if<
-                         std::is_arithmetic<T>::value>::type >
-            operator T() const
-            {
-                T val{0};
-
-                if (parse(val, std::is_integral<T>())) 
-                {
-                    return val;
-                }
-
-                throw std::invalid_argument(
-                        std::string()
-                      + "Can't parse '" 
-                      + std::string(m_start, m_end)
-                      + "' as type "
-                      + typeid(T).name());
-            }
-
-            // return true iff token matches ^[+-]\d+$
-            //
-            // this is a helper to determine whether to
-            // parse the token into floating-point or
-            // integral type. We wouldn't need it if
-            // we had separate token types for integral
-            // and floating-point cases.
+            /// return true iff token matches ^[+-]\d+$
+            ///
+            /// this is a helper to determine whether to
+            /// parse the token into floating-point or
+            /// integral type. We wouldn't need it if
+            /// we had separate token types for integral
+            /// and floating-point cases.
             bool is_integral() const
             {
                 const char* p = m_start;
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 24c54975..5b2dc8d2 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8214,12 +8214,6 @@ class basic_json
         @brief parse string into a built-in arithmetic type as if
                the current locale is POSIX.
 
-               e.g. const auto x = static_cast<float>("123.4");
-
-               throw if can't parse the entire string as a number,
-               or if the destination type is integral and the value
-               is outside of the type's range.
-
                note: in floating-point case strtod may parse 
                past the token's end - this is not an error.
 
@@ -8228,34 +8222,15 @@ class basic_json
         struct strtonum
         {
         public:
-            template<typename T>
-            struct maybe
-            {
-                T x;
-                bool valid;
-
-                maybe(const T& xx)
-                    : x(xx), valid(true)
-                {}
-
-                maybe() : x(), valid(false)
-                {}
-
-                operator bool() const
-                {
-                    return valid;
-                }
-
-                const T& operator*() const
-                {
-                    return x;
-                }
-            };
-
             strtonum(const char* start, const char* end)
                 : m_start(start), m_end(end)
             {}
 
+            /// return true iff parsed successfully as 
+            /// number of type T.
+            ///
+            /// @val shall contain parsed value, or 
+            /// undefined value if could not parse.
             template<typename T,
                      typename = typename std::enable_if<
                          std::is_arithmetic<T>::value>::type >
@@ -8264,33 +8239,13 @@ class basic_json
                 return parse(val, std::is_integral<T>());
             }
 
-            template<typename T,
-                     typename = typename std::enable_if<
-                         std::is_arithmetic<T>::value>::type >
-            operator T() const
-            {
-                T val{0};
-
-                if (parse(val, std::is_integral<T>())) 
-                {
-                    return val;
-                }
-
-                throw std::invalid_argument(
-                        std::string()
-                      + "Can't parse '" 
-                      + std::string(m_start, m_end)
-                      + "' as type "
-                      + typeid(T).name());
-            }
-
-            // return true iff token matches ^[+-]\d+$
-            //
-            // this is a helper to determine whether to
-            // parse the token into floating-point or
-            // integral type. We wouldn't need it if
-            // we had separate token types for integral
-            // and floating-point cases.
+            /// return true iff token matches ^[+-]\d+$
+            ///
+            /// this is a helper to determine whether to
+            /// parse the token into floating-point or
+            /// integral type. We wouldn't need it if
+            /// we had separate token types for integral
+            /// and floating-point cases.
             bool is_integral() const
             {
                 const char* p = m_start;

From 1c029b97c0ebc90b5b7f1cb875b0904f115668b8 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Thu, 8 Dec 2016 22:13:05 -0500
Subject: [PATCH 015/174] Still trying to invoke locale-specific behavior in CI

---
 test/src/unit-regression.cpp | 35 +++++------------------------------
 1 file changed, 5 insertions(+), 30 deletions(-)

diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index deace862..5cd6356d 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -405,46 +405,21 @@ TEST_CASE("regression tests")
 
     SECTION("issue #379 - locale-independent str-to-num")
     {
-        // If I save the locale here and restore it in the end
-        // of this block, then setLocale(LC_NUMERIC, "de_DE")
-        // does not actually make snprintf use "," as decimal separator
-        // on some compilers. I have no idea...
-        //const std::string orig_locale_name(setlocale(LC_ALL, NULL));
-
-
-        // Still, just setting some comma-using locale does not
-        // make snprintf output commas on all platforms, so instead
-        // will change dot to comma in the current locale below
-        //setlocale(LC_NUMERIC, "de_DE");
-
-        auto loc = localeconv();
-        auto orig_decimal_point = loc->decimal_point;
-        char comma[] = ",";
-        loc->decimal_point = comma;
-
-        std::array<char, 64> buf;
+        setlocale(LC_NUMERIC, "de_DE.UTF-8");
 
         {
             // verify that strtod now uses commas as decimal-separator
-            const double d1 = std::strtod("3,14", nullptr);
-            CHECK(d1 == 3.14);
+            CHECK(std::strtod("3,14", nullptr) == 3.14);
 
             // verify that strtod does not understand dots as decimal separator
-            const double d2 = std::strtod("3.14", nullptr);
-            CHECK(d2 == 3);
+            CHECK(std::strtod("3.14", nullptr) == 3);
         }
 
         // verify that parsed correctly despite using strtod internally
-        const json j1 = json::parse("3.14");
-        CHECK(j1.get<double>() == 3.14);
+        CHECK(json::parse("3.14").get<double>() == 3.14);
 
         // check a different code path
-        const json j2 = json::parse("1.000000000000000000000000000000000000000000000000000000000000000000000000");
-        CHECK(j2.get<double>() == 1.0);
-
-        loc->decimal_point = orig_decimal_point;
-        // restore original locale
-        // setlocale(LC_ALL, orig_locale_name.c_str());
+        CHECK(json::parse("1.000000000000000000000000000000000000000000000000000000000000000000000000").get<double>() == 1.0);
     }
 
 

From cd0b651d43c303dbe0b8016a1305ab9e5fef6449 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Mon, 12 Dec 2016 19:46:47 -0500
Subject: [PATCH 016/174] Tweaked check for preserved sign; added
 LCOV_EXCL_LINE

---
 src/json.hpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 867afbb3..b526400c 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9103,7 +9103,7 @@ basic_json_parser_66:
 
                 if (!p) 
                 {
-                    return false;
+                    return false; // LCOV_EXCL_LINE
                 }
 
                 if (*p == '-' or *p == '+') 
@@ -9113,7 +9113,7 @@ basic_json_parser_66:
 
                 if (p == m_end) 
                 {
-                    return false;
+                    return false; // LCOV_EXCL_LINE
                 }
 
                 while (p < m_end and *p >= '0' 
@@ -9252,11 +9252,11 @@ basic_json_parser_66:
                 value = static_cast<T>(x);
 
                 return x == static_cast<decltype(x)>(value) // x fits into destination T
+                   and (x < 0) == (value < 0)               // preserved sign
                    and (x != 0 or is_integral())            // strto[u]ll did nto fail
                    and errno == 0                           // strto[u]ll did not overflow
                    and m_start < m_end                      // token was not empty
-                   and endptr == m_end                      // parsed entire token exactly
-                   and (x < 0) == (*m_start == '-');        // input was sign-compatible
+                   and endptr == m_end;                      // parsed entire token exactly
             }
 
 #else // parsing integral types manually

From 0f8de48ddbc03b842ef5523b10553d3d319e1666 Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Mon, 12 Dec 2016 19:48:14 -0500
Subject: [PATCH 017/174] Disabling strtod pre-check, since can't get
 locale-specific behavior to manifest in AppVeyor

---
 test/src/unit-regression.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 5cd6356d..7016fcaf 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -407,6 +407,9 @@ TEST_CASE("regression tests")
     {
         setlocale(LC_NUMERIC, "de_DE.UTF-8");
 
+        // disabled, because locale-specific beharivor is not
+        // triggered in AppVeyor for some reason
+#if 0
         {
             // verify that strtod now uses commas as decimal-separator
             CHECK(std::strtod("3,14", nullptr) == 3.14);
@@ -414,6 +417,7 @@ TEST_CASE("regression tests")
             // verify that strtod does not understand dots as decimal separator
             CHECK(std::strtod("3.14", nullptr) == 3);
         }
+#endif
 
         // verify that parsed correctly despite using strtod internally
         CHECK(json::parse("3.14").get<double>() == 3.14);

From 5cad2006eb99534274c380af1ad92d5b257c83bc Mon Sep 17 00:00:00 2001
From: Alex Astashyn <alex@Alexs-MacBook-Pro.local>
Date: Mon, 12 Dec 2016 20:15:57 -0500
Subject: [PATCH 018/174] Tweaked check for preserved sign; added
 LCOV_EXCL_LINE

---
 src/json.hpp.re2c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 5b2dc8d2..208489ea 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8252,7 +8252,7 @@ class basic_json
 
                 if (!p) 
                 {
-                    return false;
+                    return false; // LCOV_EXCL_LINE
                 }
 
                 if (*p == '-' or *p == '+') 
@@ -8262,7 +8262,7 @@ class basic_json
 
                 if (p == m_end) 
                 {
-                    return false;
+                    return false; // LCOV_EXCL_LINE
                 }
 
                 while (p < m_end and *p >= '0' 
@@ -8401,11 +8401,11 @@ class basic_json
                 value = static_cast<T>(x);
 
                 return x == static_cast<decltype(x)>(value) // x fits into destination T
+                   and (x < 0) == (value < 0)               // preserved sign
                    and (x != 0 or is_integral())            // strto[u]ll did nto fail
                    and errno == 0                           // strto[u]ll did not overflow
                    and m_start < m_end                      // token was not empty
-                   and endptr == m_end                      // parsed entire token exactly
-                   and (x < 0) == (*m_start == '-');        // input was sign-compatible
+                   and endptr == m_end;                      // parsed entire token exactly
             }
 
 #else // parsing integral types manually

From 42a8c644991100c679bb844f6225a820eaa81647 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Fri, 30 Dec 2016 12:28:52 +0100
Subject: [PATCH 019/174] :bookmark: added version information

---
 src/json.hpp      | 9 +++++++++
 src/json.hpp.re2c | 9 +++++++++
 2 files changed, 18 insertions(+)

diff --git a/src/json.hpp b/src/json.hpp
index 23058bee..b5088355 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -873,8 +873,17 @@ class basic_json
                     break;
                 }
 
+                case value_t::null:
+                {
+                    break;
+                }
+
                 default:
                 {
+                    if (t == value_t::null)
+                    {
+                        throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21");
+                    }
                     break;
                 }
             }
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index ac9a3315..e8a52a0f 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -873,8 +873,17 @@ class basic_json
                     break;
                 }
 
+                case value_t::null:
+                {
+                    break;
+                }
+
                 default:
                 {
+                    if (t == value_t::null)
+                    {
+                        throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21");
+                    }
                     break;
                 }
             }

From 328eb55dc40151a31052c137d25995f97457a3e5 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Fri, 30 Dec 2016 14:02:51 +0100
Subject: [PATCH 020/174] :construction: started working on #397

---
 src/json.hpp              | 61 ++++++++++++++++++++++++++++++++++++++-
 src/json.hpp.re2c         | 61 ++++++++++++++++++++++++++++++++++++++-
 test/CMakeLists.txt       |  1 +
 test/Makefile             |  3 +-
 test/src/unit-version.cpp | 40 +++++++++++++++++++++++++
 5 files changed, 163 insertions(+), 3 deletions(-)
 create mode 100644 test/src/unit-version.cpp

diff --git a/src/json.hpp b/src/json.hpp
index 5ad1b4e5..1624328a 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -282,6 +282,64 @@ class basic_json
         return allocator_type();
     }
 
+    /*!
+    @brief returns version information on the library
+    */
+    static basic_json version()
+    {
+        basic_json result;
+
+        result["copyright"] = "(C) 2013-2016 Niels Lohmann";
+        result["name"] = "JSON for Modern C++";
+        result["url"] = "https://github.com/nlohmann/json";
+        result["version"] =
+        {
+            {"string", "2.0.10"},
+            {"major", 2},
+            {"minor", 0},
+            {"patch", 10},
+        };
+
+#ifdef _WIN32
+        result["platform"] = "win32";
+#elif defined __linux__
+        result["platform"] = "linux";
+#elif defined __APPLE__
+        result["platform"] = "apple";
+#elif defined __unix__
+        result["platform"] = "unix";
+#else
+        result["platform"] = "unknown";
+#endif
+
+#if defined(__clang__)
+        result["compiler"] = {{"family", "clang"}, {"version", CLANG_VERSION}};
+#elif defined(__ICC) || defined(__INTEL_COMPILER)
+        result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}};
+#elif defined(__GNUC__) || defined(__GNUG__)
+        result["compiler"] = {{"family", "gcc"}, {"version", GCC_VERSION}};
+#elif defined(__HP_cc) || defined(__HP_aCC)
+        result["compiler"] = "hp"
+#elif defined(__IBMCPP__)
+        result["compiler"] = {{"family", "ilecpp"}, {"version", __IBMCPP__}};
+#elif defined(_MSC_VER)
+        result["compiler"] = {{"family", "msvc"}, {"version", _MSC_VER}};
+#elif defined(__PGI)
+        result["compiler"] = {{"family", "pgcpp"}, {"version", __PGI}};
+#elif defined(__SUNPRO_CC)
+        result["compiler"] = {{"family", "sunpro"}, {"version", __SUNPRO_CC}};
+#else
+        result["compiler"] = {{"family", "unknown"}, {"version", "unknown"}};
+#endif
+
+#ifdef __cplusplus
+        result["compiler"]["c++"] = std::to_string(__cplusplus);
+#else
+        result["compiler"]["c++"] = "unknown";
+#endif
+        return result;
+    }
+
 
     ///////////////////////////
     // JSON value data types //
@@ -882,7 +940,8 @@ class basic_json
                 {
                     if (t == value_t::null)
                     {
-                        throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21");
+                        // echo "JSON for Modern C++" | sha1sum
+                        throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10");
                     }
                     break;
                 }
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index be1ebf55..a08c4c93 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -282,6 +282,64 @@ class basic_json
         return allocator_type();
     }
 
+    /*!
+    @brief returns version information on the library
+    */
+    static basic_json version()
+    {
+        basic_json result;
+
+        result["copyright"] = "(C) 2013-2016 Niels Lohmann";
+        result["name"] = "JSON for Modern C++";
+        result["url"] = "https://github.com/nlohmann/json";
+        result["version"] =
+        {
+            {"string", "2.0.10"},
+            {"major", 2},
+            {"minor", 0},
+            {"patch", 10},
+        };
+
+#ifdef _WIN32
+        result["platform"] = "win32";
+#elif defined __linux__
+        result["platform"] = "linux";
+#elif defined __APPLE__
+        result["platform"] = "apple";
+#elif defined __unix__
+        result["platform"] = "unix";
+#else
+        result["platform"] = "unknown";
+#endif
+
+#if defined(__clang__)
+        result["compiler"] = {{"family", "clang"}, {"version", CLANG_VERSION}};
+#elif defined(__ICC) || defined(__INTEL_COMPILER)
+        result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}};
+#elif defined(__GNUC__) || defined(__GNUG__)
+        result["compiler"] = {{"family", "gcc"}, {"version", GCC_VERSION}};
+#elif defined(__HP_cc) || defined(__HP_aCC)
+        result["compiler"] = "hp"
+#elif defined(__IBMCPP__)
+        result["compiler"] = {{"family", "ilecpp"}, {"version", __IBMCPP__}};
+#elif defined(_MSC_VER)
+        result["compiler"] = {{"family", "msvc"}, {"version", _MSC_VER}};
+#elif defined(__PGI)
+        result["compiler"] = {{"family", "pgcpp"}, {"version", __PGI}};
+#elif defined(__SUNPRO_CC)
+        result["compiler"] = {{"family", "sunpro"}, {"version", __SUNPRO_CC}};
+#else
+        result["compiler"] = {{"family", "unknown"}, {"version", "unknown"}};
+#endif
+
+#ifdef __cplusplus
+        result["compiler"]["c++"] = std::to_string(__cplusplus);
+#else
+        result["compiler"]["c++"] = "unknown";
+#endif
+        return result;
+    }
+
 
     ///////////////////////////
     // JSON value data types //
@@ -882,7 +940,8 @@ class basic_json
                 {
                     if (t == value_t::null)
                     {
-                        throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21");
+                        // echo "JSON for Modern C++" | sha1sum
+                        throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10");
                     }
                     break;
                 }
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 47785aee..11c8d5b1 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -35,6 +35,7 @@ add_executable(${JSON_UNITTEST_TARGET_NAME}
     "src/unit-serialization.cpp"
     "src/unit-testsuites.cpp"
     "src/unit-unicode.cpp"
+    "src/unit-version.cpp"
 )
 
 set_target_properties(${JSON_UNITTEST_TARGET_NAME} PROPERTIES
diff --git a/test/Makefile b/test/Makefile
index 556ab0d7..efca9017 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -37,8 +37,9 @@ SOURCES = src/unit.cpp \
           src/unit-reference_access.cpp \
           src/unit-regression.cpp \
           src/unit-serialization.cpp \
+          src/unit-testsuites.cpp \
           src/unit-unicode.cpp \
-          src/unit-testsuites.cpp
+          src/unit-version.cpp
 
 OBJECTS = $(SOURCES:.cpp=.o)
 
diff --git a/test/src/unit-version.cpp b/test/src/unit-version.cpp
new file mode 100644
index 00000000..bede4ff3
--- /dev/null
+++ b/test/src/unit-version.cpp
@@ -0,0 +1,40 @@
+/*
+    __ _____ _____ _____
+ __|  |   __|     |   | |  JSON for Modern C++ (test suite)
+|  |  |__   |  |  | | | |  version 2.0.9
+|_____|_____|_____|_|___|  https://github.com/nlohmann/json
+
+Licensed under the MIT License <http://opensource.org/licenses/MIT>.
+Copyright (c) 2013-2016 Niels Lohmann <http://nlohmann.me>.
+
+Permission is hereby  granted, free of charge, to any  person obtaining a copy
+of this software and associated  documentation files (the "Software"), to deal
+in the Software  without restriction, including without  limitation the rights
+to  use, copy,  modify, merge,  publish, distribute,  sublicense, and/or  sell
+copies  of  the Software,  and  to  permit persons  to  whom  the Software  is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE  IS PROVIDED "AS  IS", WITHOUT WARRANTY  OF ANY KIND,  EXPRESS OR
+IMPLIED,  INCLUDING BUT  NOT  LIMITED TO  THE  WARRANTIES OF  MERCHANTABILITY,
+FITNESS FOR  A PARTICULAR PURPOSE AND  NONINFRINGEMENT. IN NO EVENT  SHALL THE
+AUTHORS  OR COPYRIGHT  HOLDERS  BE  LIABLE FOR  ANY  CLAIM,  DAMAGES OR  OTHER
+LIABILITY, WHETHER IN AN ACTION OF  CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE  OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include "catch.hpp"
+
+#include "json.hpp"
+using nlohmann::json;
+
+TEST_CASE("version information")
+{
+    SECTION("version()")
+    {
+        CHECK(json::version()["name"] == "JSON for Modern C++");
+    }
+}

From 245a69d554425407a97374c133445f54d7d05952 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 3 Jan 2017 21:33:23 +0100
Subject: [PATCH 021/174] :lipstick: ran clang-tidy

---
 src/json.hpp                   | 218 +++++++++++++--------------------
 src/json.hpp.re2c              | 218 +++++++++++++--------------------
 test/src/unit-allocator.cpp    |   2 +-
 test/src/unit-constructor1.cpp |   2 +-
 4 files changed, 174 insertions(+), 266 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 9d48e7a6..4e043ad5 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -128,7 +128,7 @@ struct has_mapped_type
         std::is_integral<decltype(detect(std::declval<T>()))>::value;
 };
 
-}
+} // namespace
 
 /*!
 @brief a class to store JSON values
@@ -767,7 +767,7 @@ class basic_json
         };
         std::unique_ptr<T, decltype(deleter)> object(alloc.allocate(1), deleter);
         alloc.construct(object.get(), std::forward<Args>(args)...);
-        assert(object.get() != nullptr);
+        assert(object != nullptr);
         return object.release();
     }
 
@@ -2583,29 +2583,25 @@ class basic_json
     template<class T, typename std::enable_if<
                  std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
                  std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0>
-    T get_impl(T*) const
+    T get_impl(T* /*unused*/) const
     {
         if (is_object())
         {
             return T(m_value.object->begin(), m_value.object->end());
         }
-        else
-        {
-            throw std::domain_error("type must be object, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be object, but is " + type_name());
     }
 
     /// get an object (explicit)
-    object_t get_impl(object_t*) const
+    object_t get_impl(object_t* /*unused*/) const
     {
         if (is_object())
         {
             return *(m_value.object);
         }
-        else
-        {
-            throw std::domain_error("type must be object, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be object, but is " + type_name());
     }
 
     /// get an array (explicit)
@@ -2615,7 +2611,7 @@ class basic_json
                  not std::is_arithmetic<T>::value and
                  not std::is_convertible<std::string, T>::value and
                  not has_mapped_type<T>::value, int>::type = 0>
-    T get_impl(T*) const
+    T get_impl(T* /*unused*/) const
     {
         if (is_array())
         {
@@ -2627,17 +2623,15 @@ class basic_json
             });
             return to_vector;
         }
-        else
-        {
-            throw std::domain_error("type must be array, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be array, but is " + type_name());
     }
 
     /// get an array (explicit)
     template<class T, typename std::enable_if<
                  std::is_convertible<basic_json_t, T>::value and
                  not std::is_same<basic_json_t, T>::value, int>::type = 0>
-    std::vector<T> get_impl(std::vector<T>*) const
+    std::vector<T> get_impl(std::vector<T>* /*unused*/) const
     {
         if (is_array())
         {
@@ -2650,60 +2644,52 @@ class basic_json
             });
             return to_vector;
         }
-        else
-        {
-            throw std::domain_error("type must be array, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be array, but is " + type_name());
     }
 
     /// get an array (explicit)
     template<class T, typename std::enable_if<
                  std::is_same<basic_json, typename T::value_type>::value and
                  not has_mapped_type<T>::value, int>::type = 0>
-    T get_impl(T*) const
+    T get_impl(T* /*unused*/) const
     {
         if (is_array())
         {
             return T(m_value.array->begin(), m_value.array->end());
         }
-        else
-        {
-            throw std::domain_error("type must be array, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be array, but is " + type_name());
     }
 
     /// get an array (explicit)
-    array_t get_impl(array_t*) const
+    array_t get_impl(array_t* /*unused*/) const
     {
         if (is_array())
         {
             return *(m_value.array);
         }
-        else
-        {
-            throw std::domain_error("type must be array, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be array, but is " + type_name());
     }
 
     /// get a string (explicit)
     template<typename T, typename std::enable_if<
                  std::is_convertible<string_t, T>::value, int>::type = 0>
-    T get_impl(T*) const
+    T get_impl(T* /*unused*/) const
     {
         if (is_string())
         {
             return *m_value.string;
         }
-        else
-        {
-            throw std::domain_error("type must be string, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be string, but is " + type_name());
     }
 
     /// get a number (explicit)
     template<typename T, typename std::enable_if<
                  std::is_arithmetic<T>::value, int>::type = 0>
-    T get_impl(T*) const
+    T get_impl(T* /*unused*/) const
     {
         switch (m_type)
         {
@@ -2730,7 +2716,7 @@ class basic_json
     }
 
     /// get a boolean (explicit)
-    constexpr boolean_t get_impl(boolean_t*) const
+    constexpr boolean_t get_impl(boolean_t* /*unused*/) const
     {
         return is_boolean()
                ? m_value.boolean
@@ -2738,85 +2724,85 @@ class basic_json
     }
 
     /// get a pointer to the value (object)
-    object_t* get_impl_ptr(object_t*) noexcept
+    object_t* get_impl_ptr(object_t* /*unused*/) noexcept
     {
         return is_object() ? m_value.object : nullptr;
     }
 
     /// get a pointer to the value (object)
-    constexpr const object_t* get_impl_ptr(const object_t*) const noexcept
+    constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const noexcept
     {
         return is_object() ? m_value.object : nullptr;
     }
 
     /// get a pointer to the value (array)
-    array_t* get_impl_ptr(array_t*) noexcept
+    array_t* get_impl_ptr(array_t* /*unused*/) noexcept
     {
         return is_array() ? m_value.array : nullptr;
     }
 
     /// get a pointer to the value (array)
-    constexpr const array_t* get_impl_ptr(const array_t*) const noexcept
+    constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const noexcept
     {
         return is_array() ? m_value.array : nullptr;
     }
 
     /// get a pointer to the value (string)
-    string_t* get_impl_ptr(string_t*) noexcept
+    string_t* get_impl_ptr(string_t* /*unused*/) noexcept
     {
         return is_string() ? m_value.string : nullptr;
     }
 
     /// get a pointer to the value (string)
-    constexpr const string_t* get_impl_ptr(const string_t*) const noexcept
+    constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const noexcept
     {
         return is_string() ? m_value.string : nullptr;
     }
 
     /// get a pointer to the value (boolean)
-    boolean_t* get_impl_ptr(boolean_t*) noexcept
+    boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept
     {
         return is_boolean() ? &m_value.boolean : nullptr;
     }
 
     /// get a pointer to the value (boolean)
-    constexpr const boolean_t* get_impl_ptr(const boolean_t*) const noexcept
+    constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) const noexcept
     {
         return is_boolean() ? &m_value.boolean : nullptr;
     }
 
     /// get a pointer to the value (integer number)
-    number_integer_t* get_impl_ptr(number_integer_t*) noexcept
+    number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept
     {
         return is_number_integer() ? &m_value.number_integer : nullptr;
     }
 
     /// get a pointer to the value (integer number)
-    constexpr const number_integer_t* get_impl_ptr(const number_integer_t*) const noexcept
+    constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept
     {
         return is_number_integer() ? &m_value.number_integer : nullptr;
     }
 
     /// get a pointer to the value (unsigned number)
-    number_unsigned_t* get_impl_ptr(number_unsigned_t*) noexcept
+    number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept
     {
         return is_number_unsigned() ? &m_value.number_unsigned : nullptr;
     }
 
     /// get a pointer to the value (unsigned number)
-    constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t*) const noexcept
+    constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t* /*unused*/) const noexcept
     {
         return is_number_unsigned() ? &m_value.number_unsigned : nullptr;
     }
 
     /// get a pointer to the value (floating-point number)
-    number_float_t* get_impl_ptr(number_float_t*) noexcept
+    number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept
     {
         return is_number_float() ? &m_value.number_float : nullptr;
     }
 
     /// get a pointer to the value (floating-point number)
-    constexpr const number_float_t* get_impl_ptr(const number_float_t*) const noexcept
+    constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unused*/) const noexcept
     {
         return is_number_float() ? &m_value.number_float : nullptr;
     }
@@ -2845,11 +2831,9 @@ class basic_json
         {
             return *ptr;
         }
-        else
-        {
-            throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " +
-                                    obj.type_name());
-        }
+
+        throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " +
+                                obj.type_name());
     }
 
   public:
@@ -3349,10 +3333,8 @@ class basic_json
 
             return m_value.array->operator[](idx);
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3381,10 +3363,8 @@ class basic_json
         {
             return m_value.array->operator[](idx);
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3429,10 +3409,8 @@ class basic_json
         {
             return m_value.object->operator[](key);
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3473,10 +3451,8 @@ class basic_json
             assert(m_value.object->find(key) != m_value.object->end());
             return m_value.object->find(key)->second;
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3590,10 +3566,8 @@ class basic_json
         {
             return m_value.object->operator[](key);
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3635,10 +3609,8 @@ class basic_json
             assert(m_value.object->find(key) != m_value.object->end());
             return m_value.object->find(key)->second;
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3702,10 +3674,8 @@ class basic_json
             {
                 return *it;
             }
-            else
-            {
-                return default_value;
-            }
+
+            return default_value;
         }
         else
         {
@@ -4131,10 +4101,8 @@ class basic_json
         {
             return m_value.object->erase(key);
         }
-        else
-        {
-            throw std::domain_error("cannot use erase() with " + type_name());
-        }
+
+        throw std::domain_error("cannot use erase() with " + type_name());
     }
 
     /*!
@@ -5186,10 +5154,8 @@ class basic_json
             result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, val);
             return result;
         }
-        else
-        {
-            throw std::domain_error("cannot use insert() with " + type_name());
-        }
+
+        throw std::domain_error("cannot use insert() with " + type_name());
     }
 
     /*!
@@ -5241,10 +5207,8 @@ class basic_json
             result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val);
             return result;
         }
-        else
-        {
-            throw std::domain_error("cannot use insert() with " + type_name());
-        }
+
+        throw std::domain_error("cannot use insert() with " + type_name());
     }
 
     /*!
@@ -6122,7 +6086,7 @@ class basic_json
     {
         // assertion to check that the iterator range is indeed contiguous,
         // see http://stackoverflow.com/a/35008842/266378 for more discussion
-        assert(std::accumulate(first, last, std::make_pair<bool, int>(true, 0),
+        assert(std::accumulate(first, last, std::pair<bool, int>(true, 0),
                                [&first](std::pair<bool, int> res, decltype(*first) val)
         {
             res.first &= (val == *(std::next(std::addressof(*first), res.second++)));
@@ -6327,7 +6291,7 @@ class basic_json
         }
 
         T result;
-        uint8_t* ptr = reinterpret_cast<uint8_t*>(&result);
+        auto* ptr = reinterpret_cast<uint8_t*>(&result);
         for (size_t i = 0; i < sizeof(T); ++i)
         {
             *ptr++ = vec[current_index + sizeof(T) - i];
@@ -6473,7 +6437,7 @@ class basic_json
             {
                 // float 64
                 v.push_back(0xcb);
-                const uint8_t* helper = reinterpret_cast<const uint8_t*>(&(j.m_value.number_float));
+                const auto* helper = reinterpret_cast<const uint8_t*>(&(j.m_value.number_float));
                 for (size_t i = 0; i < 8; ++i)
                 {
                     v.push_back(helper[7 - i]);
@@ -6716,7 +6680,7 @@ class basic_json
             {
                 // Double-Precision Float
                 v.push_back(0xfb);
-                const uint8_t* helper = reinterpret_cast<const uint8_t*>(&(j.m_value.number_float));
+                const auto* helper = reinterpret_cast<const uint8_t*>(&(j.m_value.number_float));
                 for (size_t i = 0; i < 8; ++i)
                 {
                     v.push_back(helper[7 - i]);
@@ -6916,7 +6880,7 @@ class basic_json
             {
                 return v[current_idx];
             }
-            else if (v[current_idx] <= 0x8f) // fixmap
+            if (v[current_idx] <= 0x8f) // fixmap
             {
                 basic_json result = value_t::object;
                 const size_t len = v[current_idx] & 0x0f;
@@ -7577,7 +7541,7 @@ class basic_json
                 {
                     val = mant == 0 ? INFINITY : NAN;
                 }
-                return half & 0x8000 ? -val : val;
+                return (half & 0x8000) != 0 ? -val : val;
             }
 
             case 0xfa: // Single-Precision Float (four-byte IEEE 754)
@@ -7800,10 +7764,8 @@ class basic_json
                         // from c (1 byte) to \uxxxx (6 bytes)
                         return res + 5;
                     }
-                    else
-                    {
-                        return res;
-                    }
+
+                    return res;
                 }
             }
         });
@@ -8509,10 +8471,8 @@ class basic_json
                     {
                         return *m_object;
                     }
-                    else
-                    {
-                        throw std::out_of_range("cannot get value");
-                    }
+
+                    throw std::out_of_range("cannot get value");
                 }
             }
         }
@@ -8545,10 +8505,8 @@ class basic_json
                     {
                         return m_object;
                     }
-                    else
-                    {
-                        throw std::out_of_range("cannot get value");
-                    }
+
+                    throw std::out_of_range("cannot get value");
                 }
             }
         }
@@ -8861,10 +8819,8 @@ class basic_json
                     {
                         return *m_object;
                     }
-                    else
-                    {
-                        throw std::out_of_range("cannot get value");
-                    }
+
+                    throw std::out_of_range("cannot get value");
                 }
             }
         }
@@ -8881,10 +8837,8 @@ class basic_json
             {
                 return m_it.object_iterator->first;
             }
-            else
-            {
-                throw std::domain_error("cannot use key() for non-object iterators");
-            }
+
+            throw std::domain_error("cannot use key() for non-object iterators");
         }
 
         /*!
@@ -10209,7 +10163,7 @@ basic_json_parser_66:
             assert(m_marker == nullptr or m_marker  <= m_limit);
 
             // number of processed characters (p)
-            const size_t num_processed_chars = static_cast<size_t>(m_start - m_content);
+            const auto num_processed_chars = static_cast<size_t>(m_start - m_content);
             // offset for m_marker wrt. to m_start
             const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start;
             // number of unprocessed characters (u)
@@ -10601,7 +10555,7 @@ basic_json_parser_66:
             else
             {
                 // parse with strtod
-                result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), NULL);
+                result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr);
 
                 // replace infinity and NAN by null
                 if (not std::isfinite(result.m_value.number_float))
@@ -11336,7 +11290,7 @@ basic_json_parser_66:
             // - start: position after the previous slash
             for (
                 // search for the first slash after the first character
-                size_t slash = reference_string.find_first_of("/", 1),
+                size_t slash = reference_string.find_first_of('/', 1),
                 // set the beginning of the first reference token
                 start = 1;
                 // we can stop if start == string::npos+1 = 0
@@ -11345,16 +11299,16 @@ basic_json_parser_66:
                 // (will eventually be 0 if slash == std::string::npos)
                 start = slash + 1,
                 // find next slash
-                slash = reference_string.find_first_of("/", start))
+                slash = reference_string.find_first_of('/', start))
             {
                 // use the text between the beginning of the reference token
                 // (start) and the last slash (slash).
                 auto reference_token = reference_string.substr(start, slash - start);
 
                 // check reference tokens are properly escaped
-                for (size_t pos = reference_token.find_first_of("~");
+                for (size_t pos = reference_token.find_first_of('~');
                         pos != std::string::npos;
-                        pos = reference_token.find_first_of("~", pos + 1))
+                        pos = reference_token.find_first_of('~', pos + 1))
                 {
                     assert(reference_token[pos] == '~');
 
@@ -12188,7 +12142,7 @@ uses the standard template types.
 @since version 1.0.0
 */
 using json = basic_json<>;
-}
+} // namespace nlohmann
 
 
 ///////////////////////
@@ -12229,7 +12183,7 @@ struct hash<nlohmann::json>
         return h(j.dump());
     }
 };
-}
+} // namespace std
 
 /*!
 @brief user-defined string literal for JSON values
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index e1a43b54..a64762b9 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -128,7 +128,7 @@ struct has_mapped_type
         std::is_integral<decltype(detect(std::declval<T>()))>::value;
 };
 
-}
+} // namespace
 
 /*!
 @brief a class to store JSON values
@@ -767,7 +767,7 @@ class basic_json
         };
         std::unique_ptr<T, decltype(deleter)> object(alloc.allocate(1), deleter);
         alloc.construct(object.get(), std::forward<Args>(args)...);
-        assert(object.get() != nullptr);
+        assert(object != nullptr);
         return object.release();
     }
 
@@ -2583,29 +2583,25 @@ class basic_json
     template<class T, typename std::enable_if<
                  std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
                  std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0>
-    T get_impl(T*) const
+    T get_impl(T* /*unused*/) const
     {
         if (is_object())
         {
             return T(m_value.object->begin(), m_value.object->end());
         }
-        else
-        {
-            throw std::domain_error("type must be object, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be object, but is " + type_name());
     }
 
     /// get an object (explicit)
-    object_t get_impl(object_t*) const
+    object_t get_impl(object_t* /*unused*/) const
     {
         if (is_object())
         {
             return *(m_value.object);
         }
-        else
-        {
-            throw std::domain_error("type must be object, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be object, but is " + type_name());
     }
 
     /// get an array (explicit)
@@ -2615,7 +2611,7 @@ class basic_json
                  not std::is_arithmetic<T>::value and
                  not std::is_convertible<std::string, T>::value and
                  not has_mapped_type<T>::value, int>::type = 0>
-    T get_impl(T*) const
+    T get_impl(T* /*unused*/) const
     {
         if (is_array())
         {
@@ -2627,17 +2623,15 @@ class basic_json
             });
             return to_vector;
         }
-        else
-        {
-            throw std::domain_error("type must be array, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be array, but is " + type_name());
     }
 
     /// get an array (explicit)
     template<class T, typename std::enable_if<
                  std::is_convertible<basic_json_t, T>::value and
                  not std::is_same<basic_json_t, T>::value, int>::type = 0>
-    std::vector<T> get_impl(std::vector<T>*) const
+    std::vector<T> get_impl(std::vector<T>* /*unused*/) const
     {
         if (is_array())
         {
@@ -2650,60 +2644,52 @@ class basic_json
             });
             return to_vector;
         }
-        else
-        {
-            throw std::domain_error("type must be array, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be array, but is " + type_name());
     }
 
     /// get an array (explicit)
     template<class T, typename std::enable_if<
                  std::is_same<basic_json, typename T::value_type>::value and
                  not has_mapped_type<T>::value, int>::type = 0>
-    T get_impl(T*) const
+    T get_impl(T* /*unused*/) const
     {
         if (is_array())
         {
             return T(m_value.array->begin(), m_value.array->end());
         }
-        else
-        {
-            throw std::domain_error("type must be array, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be array, but is " + type_name());
     }
 
     /// get an array (explicit)
-    array_t get_impl(array_t*) const
+    array_t get_impl(array_t* /*unused*/) const
     {
         if (is_array())
         {
             return *(m_value.array);
         }
-        else
-        {
-            throw std::domain_error("type must be array, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be array, but is " + type_name());
     }
 
     /// get a string (explicit)
     template<typename T, typename std::enable_if<
                  std::is_convertible<string_t, T>::value, int>::type = 0>
-    T get_impl(T*) const
+    T get_impl(T* /*unused*/) const
     {
         if (is_string())
         {
             return *m_value.string;
         }
-        else
-        {
-            throw std::domain_error("type must be string, but is " + type_name());
-        }
+
+        throw std::domain_error("type must be string, but is " + type_name());
     }
 
     /// get a number (explicit)
     template<typename T, typename std::enable_if<
                  std::is_arithmetic<T>::value, int>::type = 0>
-    T get_impl(T*) const
+    T get_impl(T* /*unused*/) const
     {
         switch (m_type)
         {
@@ -2730,7 +2716,7 @@ class basic_json
     }
 
     /// get a boolean (explicit)
-    constexpr boolean_t get_impl(boolean_t*) const
+    constexpr boolean_t get_impl(boolean_t* /*unused*/) const
     {
         return is_boolean()
                ? m_value.boolean
@@ -2738,85 +2724,85 @@ class basic_json
     }
 
     /// get a pointer to the value (object)
-    object_t* get_impl_ptr(object_t*) noexcept
+    object_t* get_impl_ptr(object_t* /*unused*/) noexcept
     {
         return is_object() ? m_value.object : nullptr;
     }
 
     /// get a pointer to the value (object)
-    constexpr const object_t* get_impl_ptr(const object_t*) const noexcept
+    constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const noexcept
     {
         return is_object() ? m_value.object : nullptr;
     }
 
     /// get a pointer to the value (array)
-    array_t* get_impl_ptr(array_t*) noexcept
+    array_t* get_impl_ptr(array_t* /*unused*/) noexcept
     {
         return is_array() ? m_value.array : nullptr;
     }
 
     /// get a pointer to the value (array)
-    constexpr const array_t* get_impl_ptr(const array_t*) const noexcept
+    constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const noexcept
     {
         return is_array() ? m_value.array : nullptr;
     }
 
     /// get a pointer to the value (string)
-    string_t* get_impl_ptr(string_t*) noexcept
+    string_t* get_impl_ptr(string_t* /*unused*/) noexcept
     {
         return is_string() ? m_value.string : nullptr;
     }
 
     /// get a pointer to the value (string)
-    constexpr const string_t* get_impl_ptr(const string_t*) const noexcept
+    constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const noexcept
     {
         return is_string() ? m_value.string : nullptr;
     }
 
     /// get a pointer to the value (boolean)
-    boolean_t* get_impl_ptr(boolean_t*) noexcept
+    boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept
     {
         return is_boolean() ? &m_value.boolean : nullptr;
     }
 
     /// get a pointer to the value (boolean)
-    constexpr const boolean_t* get_impl_ptr(const boolean_t*) const noexcept
+    constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) const noexcept
     {
         return is_boolean() ? &m_value.boolean : nullptr;
     }
 
     /// get a pointer to the value (integer number)
-    number_integer_t* get_impl_ptr(number_integer_t*) noexcept
+    number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept
     {
         return is_number_integer() ? &m_value.number_integer : nullptr;
     }
 
     /// get a pointer to the value (integer number)
-    constexpr const number_integer_t* get_impl_ptr(const number_integer_t*) const noexcept
+    constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept
     {
         return is_number_integer() ? &m_value.number_integer : nullptr;
     }
 
     /// get a pointer to the value (unsigned number)
-    number_unsigned_t* get_impl_ptr(number_unsigned_t*) noexcept
+    number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept
     {
         return is_number_unsigned() ? &m_value.number_unsigned : nullptr;
     }
 
     /// get a pointer to the value (unsigned number)
-    constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t*) const noexcept
+    constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t* /*unused*/) const noexcept
     {
         return is_number_unsigned() ? &m_value.number_unsigned : nullptr;
     }
 
     /// get a pointer to the value (floating-point number)
-    number_float_t* get_impl_ptr(number_float_t*) noexcept
+    number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept
     {
         return is_number_float() ? &m_value.number_float : nullptr;
     }
 
     /// get a pointer to the value (floating-point number)
-    constexpr const number_float_t* get_impl_ptr(const number_float_t*) const noexcept
+    constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unused*/) const noexcept
     {
         return is_number_float() ? &m_value.number_float : nullptr;
     }
@@ -2845,11 +2831,9 @@ class basic_json
         {
             return *ptr;
         }
-        else
-        {
-            throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " +
-                                    obj.type_name());
-        }
+
+        throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " +
+                                obj.type_name());
     }
 
   public:
@@ -3349,10 +3333,8 @@ class basic_json
 
             return m_value.array->operator[](idx);
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3381,10 +3363,8 @@ class basic_json
         {
             return m_value.array->operator[](idx);
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3429,10 +3409,8 @@ class basic_json
         {
             return m_value.object->operator[](key);
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3473,10 +3451,8 @@ class basic_json
             assert(m_value.object->find(key) != m_value.object->end());
             return m_value.object->find(key)->second;
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3590,10 +3566,8 @@ class basic_json
         {
             return m_value.object->operator[](key);
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3635,10 +3609,8 @@ class basic_json
             assert(m_value.object->find(key) != m_value.object->end());
             return m_value.object->find(key)->second;
         }
-        else
-        {
-            throw std::domain_error("cannot use operator[] with " + type_name());
-        }
+
+        throw std::domain_error("cannot use operator[] with " + type_name());
     }
 
     /*!
@@ -3702,10 +3674,8 @@ class basic_json
             {
                 return *it;
             }
-            else
-            {
-                return default_value;
-            }
+
+            return default_value;
         }
         else
         {
@@ -4131,10 +4101,8 @@ class basic_json
         {
             return m_value.object->erase(key);
         }
-        else
-        {
-            throw std::domain_error("cannot use erase() with " + type_name());
-        }
+
+        throw std::domain_error("cannot use erase() with " + type_name());
     }
 
     /*!
@@ -5186,10 +5154,8 @@ class basic_json
             result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, val);
             return result;
         }
-        else
-        {
-            throw std::domain_error("cannot use insert() with " + type_name());
-        }
+
+        throw std::domain_error("cannot use insert() with " + type_name());
     }
 
     /*!
@@ -5241,10 +5207,8 @@ class basic_json
             result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val);
             return result;
         }
-        else
-        {
-            throw std::domain_error("cannot use insert() with " + type_name());
-        }
+
+        throw std::domain_error("cannot use insert() with " + type_name());
     }
 
     /*!
@@ -6122,7 +6086,7 @@ class basic_json
     {
         // assertion to check that the iterator range is indeed contiguous,
         // see http://stackoverflow.com/a/35008842/266378 for more discussion
-        assert(std::accumulate(first, last, std::make_pair<bool, int>(true, 0),
+        assert(std::accumulate(first, last, std::pair<bool, int>(true, 0),
                                [&first](std::pair<bool, int> res, decltype(*first) val)
         {
             res.first &= (val == *(std::next(std::addressof(*first), res.second++)));
@@ -6327,7 +6291,7 @@ class basic_json
         }
 
         T result;
-        uint8_t* ptr = reinterpret_cast<uint8_t*>(&result);
+        auto* ptr = reinterpret_cast<uint8_t*>(&result);
         for (size_t i = 0; i < sizeof(T); ++i)
         {
             *ptr++ = vec[current_index + sizeof(T) - i];
@@ -6473,7 +6437,7 @@ class basic_json
             {
                 // float 64
                 v.push_back(0xcb);
-                const uint8_t* helper = reinterpret_cast<const uint8_t*>(&(j.m_value.number_float));
+                const auto* helper = reinterpret_cast<const uint8_t*>(&(j.m_value.number_float));
                 for (size_t i = 0; i < 8; ++i)
                 {
                     v.push_back(helper[7 - i]);
@@ -6716,7 +6680,7 @@ class basic_json
             {
                 // Double-Precision Float
                 v.push_back(0xfb);
-                const uint8_t* helper = reinterpret_cast<const uint8_t*>(&(j.m_value.number_float));
+                const auto* helper = reinterpret_cast<const uint8_t*>(&(j.m_value.number_float));
                 for (size_t i = 0; i < 8; ++i)
                 {
                     v.push_back(helper[7 - i]);
@@ -6916,7 +6880,7 @@ class basic_json
             {
                 return v[current_idx];
             }
-            else if (v[current_idx] <= 0x8f) // fixmap
+            if (v[current_idx] <= 0x8f) // fixmap
             {
                 basic_json result = value_t::object;
                 const size_t len = v[current_idx] & 0x0f;
@@ -7577,7 +7541,7 @@ class basic_json
                 {
                     val = mant == 0 ? INFINITY : NAN;
                 }
-                return half & 0x8000 ? -val : val;
+                return (half & 0x8000) != 0 ? -val : val;
             }
 
             case 0xfa: // Single-Precision Float (four-byte IEEE 754)
@@ -7800,10 +7764,8 @@ class basic_json
                         // from c (1 byte) to \uxxxx (6 bytes)
                         return res + 5;
                     }
-                    else
-                    {
-                        return res;
-                    }
+
+                    return res;
                 }
             }
         });
@@ -8509,10 +8471,8 @@ class basic_json
                     {
                         return *m_object;
                     }
-                    else
-                    {
-                        throw std::out_of_range("cannot get value");
-                    }
+
+                    throw std::out_of_range("cannot get value");
                 }
             }
         }
@@ -8545,10 +8505,8 @@ class basic_json
                     {
                         return m_object;
                     }
-                    else
-                    {
-                        throw std::out_of_range("cannot get value");
-                    }
+
+                    throw std::out_of_range("cannot get value");
                 }
             }
         }
@@ -8861,10 +8819,8 @@ class basic_json
                     {
                         return *m_object;
                     }
-                    else
-                    {
-                        throw std::out_of_range("cannot get value");
-                    }
+
+                    throw std::out_of_range("cannot get value");
                 }
             }
         }
@@ -8881,10 +8837,8 @@ class basic_json
             {
                 return m_it.object_iterator->first;
             }
-            else
-            {
-                throw std::domain_error("cannot use key() for non-object iterators");
-            }
+
+            throw std::domain_error("cannot use key() for non-object iterators");
         }
 
         /*!
@@ -9359,7 +9313,7 @@ class basic_json
             assert(m_marker == nullptr or m_marker  <= m_limit);
 
             // number of processed characters (p)
-            const size_t num_processed_chars = static_cast<size_t>(m_start - m_content);
+            const auto num_processed_chars = static_cast<size_t>(m_start - m_content);
             // offset for m_marker wrt. to m_start
             const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start;
             // number of unprocessed characters (u)
@@ -9751,7 +9705,7 @@ class basic_json
             else
             {
                 // parse with strtod
-                result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), NULL);
+                result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr);
 
                 // replace infinity and NAN by null
                 if (not std::isfinite(result.m_value.number_float))
@@ -10486,7 +10440,7 @@ class basic_json
             // - start: position after the previous slash
             for (
                 // search for the first slash after the first character
-                size_t slash = reference_string.find_first_of("/", 1),
+                size_t slash = reference_string.find_first_of('/', 1),
                 // set the beginning of the first reference token
                 start = 1;
                 // we can stop if start == string::npos+1 = 0
@@ -10495,16 +10449,16 @@ class basic_json
                 // (will eventually be 0 if slash == std::string::npos)
                 start = slash + 1,
                 // find next slash
-                slash = reference_string.find_first_of("/", start))
+                slash = reference_string.find_first_of('/', start))
             {
                 // use the text between the beginning of the reference token
                 // (start) and the last slash (slash).
                 auto reference_token = reference_string.substr(start, slash - start);
 
                 // check reference tokens are properly escaped
-                for (size_t pos = reference_token.find_first_of("~");
+                for (size_t pos = reference_token.find_first_of('~');
                         pos != std::string::npos;
-                        pos = reference_token.find_first_of("~", pos + 1))
+                        pos = reference_token.find_first_of('~', pos + 1))
                 {
                     assert(reference_token[pos] == '~');
 
@@ -11338,7 +11292,7 @@ uses the standard template types.
 @since version 1.0.0
 */
 using json = basic_json<>;
-}
+} // namespace nlohmann
 
 
 ///////////////////////
@@ -11379,7 +11333,7 @@ struct hash<nlohmann::json>
         return h(j.dump());
     }
 };
-}
+} // namespace std
 
 /*!
 @brief user-defined string literal for JSON values
diff --git a/test/src/unit-allocator.cpp b/test/src/unit-allocator.cpp
index f11d8538..76f9a16b 100644
--- a/test/src/unit-allocator.cpp
+++ b/test/src/unit-allocator.cpp
@@ -80,7 +80,7 @@ struct my_allocator : std::allocator<T>
         }
         else
         {
-            ::new(reinterpret_cast<void*>(p)) T(std::forward<Args>(args)...);
+            ::new (reinterpret_cast<void*>(p)) T(std::forward<Args>(args)...);
         }
     }
 
diff --git a/test/src/unit-constructor1.cpp b/test/src/unit-constructor1.cpp
index 6bfb4402..d03a5f40 100644
--- a/test/src/unit-constructor1.cpp
+++ b/test/src/unit-constructor1.cpp
@@ -912,7 +912,7 @@ TEST_CASE("constructors")
 
             SECTION("array")
             {
-                json j { {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false} , 13 };
+                json j { {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false}, 13 };
                 CHECK(j.type() == json::value_t::array);
             }
         }

From f8d640b185c4b34bfb651250eb3b7113caf0317b Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 3 Jan 2017 22:35:31 +0100
Subject: [PATCH 022/174] :construction_worker: better support for OSS-Fuzz

---
 test/Makefile | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/test/Makefile b/test/Makefile
index 68520bd3..678276ba 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -51,7 +51,7 @@ TESTCASES = $(patsubst src/unit-%.cpp,test-%,$(wildcard src/unit-*.cpp))
 all: $(TESTCASES)
 
 clean:
-	rm -fr json_unit $(OBJECTS) $(SOURCES:.cpp=.gcno) $(SOURCES:.cpp=.gcda) $(TESTCASES)
+	rm -fr json_unit $(OBJECTS) $(SOURCES:.cpp=.gcno) $(SOURCES:.cpp=.gcda) $(TESTCASES) parse_afl_fuzzer parse_cbor_fuzzer parse_msgpack_fuzzer
 
 ##############################################################################
 # single test file
@@ -84,13 +84,14 @@ check: $(TESTCASES)
 # fuzzer
 ##############################################################################
 
+FUZZER_ENGINE = src/fuzzer-driver_afl.cpp
 fuzzers: parse_afl_fuzzer parse_cbor_fuzzer parse_msgpack_fuzzer
 
 parse_afl_fuzzer:
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS) src/fuzzer-driver_afl.cpp src/fuzzer-parse_json.cpp -o $@
+	$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(FUZZER_ENGINE) src/fuzzer-parse_json.cpp -o $@
 
 parse_cbor_fuzzer:
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS) src/fuzzer-driver_afl.cpp src/fuzzer-parse_cbor.cpp -o $@
+	$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(FUZZER_ENGINE) src/fuzzer-parse_cbor.cpp -o $@
 
 parse_msgpack_fuzzer:
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS) src/fuzzer-driver_afl.cpp src/fuzzer-parse_msgpack.cpp -o $@
+	$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(FUZZER_ENGINE) src/fuzzer-parse_msgpack.cpp -o $@

From 767637877b6004ed16a0474ed3e3aa022fb493da Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 3 Jan 2017 22:37:07 +0100
Subject: [PATCH 023/174] :lipstick: cleanup

---
 src/json.hpp      | 52 ++++++++++++++++++++++++-----------------------
 src/json.hpp.re2c | 52 ++++++++++++++++++++++++-----------------------
 2 files changed, 54 insertions(+), 50 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 4e043ad5..f3b77a41 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -153,7 +153,8 @@ default)
 @requirement The class satisfies the following concept requirements:
 - Basic
  - [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible):
-   JSON values can be default constructed. The result will be a JSON null value.
+   JSON values can be default constructed. The result will be a JSON null
+   value.
  - [MoveConstructible](http://en.cppreference.com/w/cpp/concept/MoveConstructible):
    A JSON value can be constructed from an rvalue argument.
  - [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible):
@@ -168,8 +169,8 @@ default)
  - [StandardLayoutType](http://en.cppreference.com/w/cpp/concept/StandardLayoutType):
    JSON values have
    [standard layout](http://en.cppreference.com/w/cpp/language/data_members#Standard_layout):
-   All non-static data members are private and standard layout types, the class
-   has no virtual functions or (virtual) base classes.
+   All non-static data members are private and standard layout types, the
+   class has no virtual functions or (virtual) base classes.
 - Library-wide
  - [EqualityComparable](http://en.cppreference.com/w/cpp/concept/EqualityComparable):
    JSON values can be compared with `==`, see @ref
@@ -1894,13 +1895,15 @@ class basic_json
 
             case value_t::object:
             {
-                m_value.object = create<object_t>(first.m_it.object_iterator, last.m_it.object_iterator);
+                m_value.object = create<object_t>(first.m_it.object_iterator,
+                                                  last.m_it.object_iterator);
                 break;
             }
 
             case value_t::array:
             {
-                m_value.array = create<array_t>(first.m_it.array_iterator, last.m_it.array_iterator);
+                m_value.array = create<array_t>(first.m_it.array_iterator,
+                                                last.m_it.array_iterator);
                 break;
             }
 
@@ -3084,7 +3087,7 @@ class basic_json
     template < typename ValueType, typename std::enable_if <
                    not std::is_pointer<ValueType>::value and
                    not std::is_same<ValueType, typename string_t::value_type>::value
-#ifndef _MSC_VER  // Fix for issue #167 operator<< abiguity under VS2015
+#ifndef _MSC_VER  // fix for issue #167 operator<< abiguity under VS2015
                    and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value
 #endif
                    , int >::type = 0 >
@@ -3750,10 +3753,8 @@ class basic_json
                 return default_value;
             }
         }
-        else
-        {
-            throw std::domain_error("cannot use value() with " + type_name());
-        }
+
+        throw std::domain_error("cannot use value() with " + type_name());
     }
 
     /*!
@@ -5065,8 +5066,8 @@ class basic_json
     /*!
     @brief add an object to an object if key does not exist
 
-    Inserts a new element into a JSON object constructed in-place with the given
-    @a args if there is no element with the key in the container. If the
+    Inserts a new element into a JSON object constructed in-place with the
+    given @a args if there is no element with the key in the container. If the
     function is called on a JSON null value, an empty object is created before
     appending the value created from @a args.
 
@@ -5131,8 +5132,8 @@ class basic_json
     @throw std::domain_error if @a pos is not an iterator of *this; example:
     `"iterator does not fit current value"`
 
-    @complexity Constant plus linear in the distance between pos and end of the
-    container.
+    @complexity Constant plus linear in the distance between pos and end of
+    the container.
 
     @liveexample{The example shows how `insert()` is used.,insert}
 
@@ -5358,8 +5359,8 @@ class basic_json
 
     @param[in,out] other array to exchange the contents with
 
-    @throw std::domain_error when JSON value is not an array; example: `"cannot
-    use swap() with string"`
+    @throw std::domain_error when JSON value is not an array; example:
+    `"cannot use swap() with string"`
 
     @complexity Constant.
 
@@ -6332,8 +6333,9 @@ class basic_json
                 if (j.m_value.number_integer >= 0)
                 {
                     // MessagePack does not differentiate between positive
-                    // signed integers and unsigned integers. Therefore, we used
-                    // the code from the value_t::number_unsigned case here.
+                    // signed integers and unsigned integers. Therefore, we
+                    // used the code from the value_t::number_unsigned case
+                    // here.
                     if (j.m_value.number_unsigned < 128)
                     {
                         // positive fixnum
@@ -6608,8 +6610,8 @@ class basic_json
                 }
                 else
                 {
-                    // The conversions below encode the sign in the first byte,
-                    // and the value is converted to a positive number.
+                    // The conversions below encode the sign in the first
+                    // byte, and the value is converted to a positive number.
                     const auto positive_number = -1 - j.m_value.number_integer;
                     if (j.m_value.number_integer >= -24)
                     {
@@ -6814,12 +6816,12 @@ class basic_json
 
     To secure the access to the byte vector during CBOR/MessagePack
     deserialization, bytes are copied from the vector into buffers. This
-    function checks if the number of bytes to copy (@a len) does not exceed the
-    size @s size of the vector. Additionally, an @a offset is given from where
-    to start reading the bytes.
+    function checks if the number of bytes to copy (@a len) does not exceed
+    the size @s size of the vector. Additionally, an @a offset is given from
+    where to start reading the bytes.
 
-    This function checks whether reading the bytes is safe; that is, offset is a
-    valid index in the vector, offset+len
+    This function checks whether reading the bytes is safe; that is, offset is
+    a valid index in the vector, offset+len
 
     @param[in] size    size of the byte vector
     @param[in] len     number of bytes to read
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index a64762b9..42459f4e 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -153,7 +153,8 @@ default)
 @requirement The class satisfies the following concept requirements:
 - Basic
  - [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible):
-   JSON values can be default constructed. The result will be a JSON null value.
+   JSON values can be default constructed. The result will be a JSON null
+   value.
  - [MoveConstructible](http://en.cppreference.com/w/cpp/concept/MoveConstructible):
    A JSON value can be constructed from an rvalue argument.
  - [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible):
@@ -168,8 +169,8 @@ default)
  - [StandardLayoutType](http://en.cppreference.com/w/cpp/concept/StandardLayoutType):
    JSON values have
    [standard layout](http://en.cppreference.com/w/cpp/language/data_members#Standard_layout):
-   All non-static data members are private and standard layout types, the class
-   has no virtual functions or (virtual) base classes.
+   All non-static data members are private and standard layout types, the
+   class has no virtual functions or (virtual) base classes.
 - Library-wide
  - [EqualityComparable](http://en.cppreference.com/w/cpp/concept/EqualityComparable):
    JSON values can be compared with `==`, see @ref
@@ -1894,13 +1895,15 @@ class basic_json
 
             case value_t::object:
             {
-                m_value.object = create<object_t>(first.m_it.object_iterator, last.m_it.object_iterator);
+                m_value.object = create<object_t>(first.m_it.object_iterator,
+                                                  last.m_it.object_iterator);
                 break;
             }
 
             case value_t::array:
             {
-                m_value.array = create<array_t>(first.m_it.array_iterator, last.m_it.array_iterator);
+                m_value.array = create<array_t>(first.m_it.array_iterator,
+                                                last.m_it.array_iterator);
                 break;
             }
 
@@ -3084,7 +3087,7 @@ class basic_json
     template < typename ValueType, typename std::enable_if <
                    not std::is_pointer<ValueType>::value and
                    not std::is_same<ValueType, typename string_t::value_type>::value
-#ifndef _MSC_VER  // Fix for issue #167 operator<< abiguity under VS2015
+#ifndef _MSC_VER  // fix for issue #167 operator<< abiguity under VS2015
                    and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value
 #endif
                    , int >::type = 0 >
@@ -3750,10 +3753,8 @@ class basic_json
                 return default_value;
             }
         }
-        else
-        {
-            throw std::domain_error("cannot use value() with " + type_name());
-        }
+
+        throw std::domain_error("cannot use value() with " + type_name());
     }
 
     /*!
@@ -5065,8 +5066,8 @@ class basic_json
     /*!
     @brief add an object to an object if key does not exist
 
-    Inserts a new element into a JSON object constructed in-place with the given
-    @a args if there is no element with the key in the container. If the
+    Inserts a new element into a JSON object constructed in-place with the
+    given @a args if there is no element with the key in the container. If the
     function is called on a JSON null value, an empty object is created before
     appending the value created from @a args.
 
@@ -5131,8 +5132,8 @@ class basic_json
     @throw std::domain_error if @a pos is not an iterator of *this; example:
     `"iterator does not fit current value"`
 
-    @complexity Constant plus linear in the distance between pos and end of the
-    container.
+    @complexity Constant plus linear in the distance between pos and end of
+    the container.
 
     @liveexample{The example shows how `insert()` is used.,insert}
 
@@ -5358,8 +5359,8 @@ class basic_json
 
     @param[in,out] other array to exchange the contents with
 
-    @throw std::domain_error when JSON value is not an array; example: `"cannot
-    use swap() with string"`
+    @throw std::domain_error when JSON value is not an array; example:
+    `"cannot use swap() with string"`
 
     @complexity Constant.
 
@@ -6332,8 +6333,9 @@ class basic_json
                 if (j.m_value.number_integer >= 0)
                 {
                     // MessagePack does not differentiate between positive
-                    // signed integers and unsigned integers. Therefore, we used
-                    // the code from the value_t::number_unsigned case here.
+                    // signed integers and unsigned integers. Therefore, we
+                    // used the code from the value_t::number_unsigned case
+                    // here.
                     if (j.m_value.number_unsigned < 128)
                     {
                         // positive fixnum
@@ -6608,8 +6610,8 @@ class basic_json
                 }
                 else
                 {
-                    // The conversions below encode the sign in the first byte,
-                    // and the value is converted to a positive number.
+                    // The conversions below encode the sign in the first
+                    // byte, and the value is converted to a positive number.
                     const auto positive_number = -1 - j.m_value.number_integer;
                     if (j.m_value.number_integer >= -24)
                     {
@@ -6814,12 +6816,12 @@ class basic_json
 
     To secure the access to the byte vector during CBOR/MessagePack
     deserialization, bytes are copied from the vector into buffers. This
-    function checks if the number of bytes to copy (@a len) does not exceed the
-    size @s size of the vector. Additionally, an @a offset is given from where
-    to start reading the bytes.
+    function checks if the number of bytes to copy (@a len) does not exceed
+    the size @s size of the vector. Additionally, an @a offset is given from
+    where to start reading the bytes.
 
-    This function checks whether reading the bytes is safe; that is, offset is a
-    valid index in the vector, offset+len
+    This function checks whether reading the bytes is safe; that is, offset is
+    a valid index in the vector, offset+len
 
     @param[in] size    size of the byte vector
     @param[in] len     number of bytes to read

From cdd3b5a68c9cae62815808e36486aab60fe87ffe Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 3 Jan 2017 23:52:01 +0100
Subject: [PATCH 024/174] :ambulance: fix for #416

---
 src/json.hpp                 | 12 ++++--------
 src/json.hpp.re2c            | 15 +++++----------
 test/src/unit-regression.cpp | 27 +++++++++++++++++++++++++++
 3 files changed, 36 insertions(+), 18 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index f3b77a41..4aa293d2 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -6938,11 +6938,10 @@ class basic_json
                 case 0xca: // float 32
                 {
                     // copy bytes in reverse order into the double variable
-                    check_length(v.size(), sizeof(float), 1);
                     float res;
                     for (size_t byte = 0; byte < sizeof(float); ++byte)
                     {
-                        reinterpret_cast<uint8_t*>(&res)[sizeof(float) - byte - 1] = v[current_idx + 1 + byte];
+                        reinterpret_cast<uint8_t*>(&res)[sizeof(float) - byte - 1] = v.at(current_idx + 1 + byte);
                     }
                     idx += sizeof(float); // skip content bytes
                     return res;
@@ -6951,11 +6950,10 @@ class basic_json
                 case 0xcb: // float 64
                 {
                     // copy bytes in reverse order into the double variable
-                    check_length(v.size(), sizeof(double), 1);
                     double res;
                     for (size_t byte = 0; byte < sizeof(double); ++byte)
                     {
-                        reinterpret_cast<uint8_t*>(&res)[sizeof(double) - byte - 1] = v[current_idx + 1 + byte];
+                        reinterpret_cast<uint8_t*>(&res)[sizeof(double) - byte - 1] = v.at(current_idx + 1 + byte);
                     }
                     idx += sizeof(double); // skip content bytes
                     return res;
@@ -7549,11 +7547,10 @@ class basic_json
             case 0xfa: // Single-Precision Float (four-byte IEEE 754)
             {
                 // copy bytes in reverse order into the float variable
-                check_length(v.size(), sizeof(float), 1);
                 float res;
                 for (size_t byte = 0; byte < sizeof(float); ++byte)
                 {
-                    reinterpret_cast<uint8_t*>(&res)[sizeof(float) - byte - 1] = v[current_idx + 1 + byte];
+                    reinterpret_cast<uint8_t*>(&res)[sizeof(float) - byte - 1] = v.at(current_idx + 1 + byte);
                 }
                 idx += sizeof(float); // skip content bytes
                 return res;
@@ -7561,12 +7558,11 @@ class basic_json
 
             case 0xfb: // Double-Precision Float (eight-byte IEEE 754)
             {
-                check_length(v.size(), sizeof(double), 1);
                 // copy bytes in reverse order into the double variable
                 double res;
                 for (size_t byte = 0; byte < sizeof(double); ++byte)
                 {
-                    reinterpret_cast<uint8_t*>(&res)[sizeof(double) - byte - 1] = v[current_idx + 1 + byte];
+                    reinterpret_cast<uint8_t*>(&res)[sizeof(double) - byte - 1] = v.at(current_idx + 1 + byte);
                 }
                 idx += sizeof(double); // skip content bytes
                 return res;
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 42459f4e..73c4131a 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -6938,11 +6938,10 @@ class basic_json
                 case 0xca: // float 32
                 {
                     // copy bytes in reverse order into the double variable
-                    check_length(v.size(), sizeof(float), 1);
                     float res;
                     for (size_t byte = 0; byte < sizeof(float); ++byte)
                     {
-                        reinterpret_cast<uint8_t*>(&res)[sizeof(float) - byte - 1] = v[current_idx + 1 + byte];
+                        reinterpret_cast<uint8_t*>(&res)[sizeof(float) - byte - 1] = v.at(current_idx + 1 + byte);
                     }
                     idx += sizeof(float); // skip content bytes
                     return res;
@@ -6951,11 +6950,10 @@ class basic_json
                 case 0xcb: // float 64
                 {
                     // copy bytes in reverse order into the double variable
-                    check_length(v.size(), sizeof(double), 1);
                     double res;
                     for (size_t byte = 0; byte < sizeof(double); ++byte)
                     {
-                        reinterpret_cast<uint8_t*>(&res)[sizeof(double) - byte - 1] = v[current_idx + 1 + byte];
+                        reinterpret_cast<uint8_t*>(&res)[sizeof(double) - byte - 1] = v.at(current_idx + 1 + byte);
                     }
                     idx += sizeof(double); // skip content bytes
                     return res;
@@ -7517,7 +7515,6 @@ class basic_json
 
             case 0xf9: // Half-Precision Float (two-byte IEEE 754)
             {
-                check_length(v.size(), 2, 1);
                 idx += 2; // skip two content bytes
 
                 // code from RFC 7049, Appendix D, Figure 3:
@@ -7527,7 +7524,7 @@ class basic_json
                 // include at least decoding support for them even without such
                 // support. An example of a small decoder for half-precision
                 // floating-point numbers in the C language is shown in Fig. 3.
-                const int half = (v[current_idx + 1] << 8) + v[current_idx + 2];
+                const int half = (v.at(current_idx + 1) << 8) + v.at(current_idx + 2);
                 const int exp = (half >> 10) & 0x1f;
                 const int mant = half & 0x3ff;
                 double val;
@@ -7549,11 +7546,10 @@ class basic_json
             case 0xfa: // Single-Precision Float (four-byte IEEE 754)
             {
                 // copy bytes in reverse order into the float variable
-                check_length(v.size(), sizeof(float), 1);
                 float res;
                 for (size_t byte = 0; byte < sizeof(float); ++byte)
                 {
-                    reinterpret_cast<uint8_t*>(&res)[sizeof(float) - byte - 1] = v[current_idx + 1 + byte];
+                    reinterpret_cast<uint8_t*>(&res)[sizeof(float) - byte - 1] = v.at(current_idx + 1 + byte);
                 }
                 idx += sizeof(float); // skip content bytes
                 return res;
@@ -7561,12 +7557,11 @@ class basic_json
 
             case 0xfb: // Double-Precision Float (eight-byte IEEE 754)
             {
-                check_length(v.size(), sizeof(double), 1);
                 // copy bytes in reverse order into the double variable
                 double res;
                 for (size_t byte = 0; byte < sizeof(double); ++byte)
                 {
-                    reinterpret_cast<uint8_t*>(&res)[sizeof(double) - byte - 1] = v[current_idx + 1 + byte];
+                    reinterpret_cast<uint8_t*>(&res)[sizeof(double) - byte - 1] = v.at(current_idx + 1 + byte);
                 }
                 idx += sizeof(double); // skip content bytes
                 return res;
diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 401867c2..7cb9169f 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -663,4 +663,31 @@ TEST_CASE("regression tests")
         std::vector<uint8_t> vec3 {0xbf, 0x61, 0x61, 0x01};
         CHECK_THROWS_AS(json::from_cbor(vec3), std::out_of_range);
     }
+
+    SECTION("issue #416 - Use-of-uninitialized-value (OSS-Fuzz issue 377)")
+    {
+        // original test case
+        std::vector<uint8_t> vec1
+        {
+            0x94, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa,
+            0x3a, 0x96, 0x96, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+            0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0x71,
+            0xb4, 0xb4, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0x3a,
+            0x96, 0x96, 0xb4, 0xb4, 0xfa, 0x94, 0x94, 0x61,
+            0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0xfa
+        };
+        CHECK_THROWS_AS(json::from_cbor(vec1), std::out_of_range);
+
+        // related test case: double-precision
+        std::vector<uint8_t> vec2
+        {
+            0x94, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa,
+            0x3a, 0x96, 0x96, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+            0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0x71,
+            0xb4, 0xb4, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0x3a,
+            0x96, 0x96, 0xb4, 0xb4, 0xfa, 0x94, 0x94, 0x61,
+            0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0xfb
+        };
+        CHECK_THROWS_AS(json::from_cbor(vec2), std::out_of_range);
+    }
 }

From 476507031890fd6effb7b447a156168803b0bd37 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Wed, 4 Jan 2017 18:07:46 +0100
Subject: [PATCH 025/174] :memo: added documentation wrt. UTF-8 strings #406

---
 README.md         | 1 +
 src/json.hpp      | 9 +++++++--
 src/json.hpp.re2c | 6 ++++++
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 498d1bbe..071d847a 100644
--- a/README.md
+++ b/README.md
@@ -600,6 +600,7 @@ Thanks a lot for helping out!
   - Other encodings such as Latin-1, UTF-16, or UTF-32 are not supported and will yield parse errors.
   - [Unicode noncharacters](http://www.unicode.org/faq/private_use.html#nonchar1) will not be replaced by the library.
   - Invalid surrogates (e.g., incomplete pairs such as `\uDEAD`) will yield parse errors.
+  - The strings stored in the library are UTF-8 encoded. When using the default string type (`std::string`), note that its length/size functions return the number of stored bytes rather than the number of characters or glyphs.
 
 
 ## Execute unit tests
diff --git a/src/json.hpp b/src/json.hpp
index 4aa293d2..6b1dc663 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -450,6 +450,12 @@ class basic_json
     std::string
     @endcode
 
+    #### Encoding
+
+    Strings are stored in UTF-8 encoding. Therefore, functions like
+    `std::string::size()` or `std::string::length()` return the number of
+    bytes in the string rather than the number of characters or glyphs.
+
     #### String comparison
 
     [RFC 7159](http://rfc7159.net/rfc7159) states:
@@ -7515,7 +7521,6 @@ class basic_json
 
             case 0xf9: // Half-Precision Float (two-byte IEEE 754)
             {
-                check_length(v.size(), 2, 1);
                 idx += 2; // skip two content bytes
 
                 // code from RFC 7049, Appendix D, Figure 3:
@@ -7525,7 +7530,7 @@ class basic_json
                 // include at least decoding support for them even without such
                 // support. An example of a small decoder for half-precision
                 // floating-point numbers in the C language is shown in Fig. 3.
-                const int half = (v[current_idx + 1] << 8) + v[current_idx + 2];
+                const int half = (v.at(current_idx + 1) << 8) + v.at(current_idx + 2);
                 const int exp = (half >> 10) & 0x1f;
                 const int mant = half & 0x3ff;
                 double val;
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 73c4131a..0eed0e6d 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -450,6 +450,12 @@ class basic_json
     std::string
     @endcode
 
+    #### Encoding
+
+    Strings are stored in UTF-8 encoding. Therefore, functions like
+    `std::string::size()` or `std::string::length()` return the number of
+    bytes in the string rather than the number of characters or glyphs.
+
     #### String comparison
 
     [RFC 7159](http://rfc7159.net/rfc7159) states:

From 9f6c86f23317ccc67429be779a6f17855c6e5a0b Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Wed, 4 Jan 2017 18:54:44 +0100
Subject: [PATCH 026/174] :bug: fix for #417

---
 src/json.hpp      | 6 ++----
 src/json.hpp.re2c | 6 ++----
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 6b1dc663..e8861926 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -58,13 +58,11 @@ SOFTWARE.
 
 // exclude unsupported compilers
 #if defined(__clang__)
-    #define CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
-    #if CLANG_VERSION < 30400
+    #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400
         #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers"
     #endif
 #elif defined(__GNUC__)
-    #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-    #if GCC_VERSION < 40900
+    #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40900
         #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers"
     #endif
 #endif
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 0eed0e6d..3a12a78d 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -58,13 +58,11 @@ SOFTWARE.
 
 // exclude unsupported compilers
 #if defined(__clang__)
-    #define CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
-    #if CLANG_VERSION < 30400
+    #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400
         #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers"
     #endif
 #elif defined(__GNUC__)
-    #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-    #if GCC_VERSION < 40900
+    #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40900
         #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers"
     #endif
 #endif

From dd45ba6f8957cb32f92af7b0d2aefee94d50ed2a Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sun, 8 Jan 2017 09:19:44 +0100
Subject: [PATCH 027/174] :construction: renamed `version()` to `meta()`

---
 src/json.hpp              | 8 ++++----
 src/json.hpp.re2c         | 8 ++++----
 test/src/unit-version.cpp | 3 ++-
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 9e065e59..3200e095 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -284,11 +284,11 @@ class basic_json
     /*!
     @brief returns version information on the library
     */
-    static basic_json version()
+    static basic_json meta()
     {
         basic_json result;
 
-        result["copyright"] = "(C) 2013-2016 Niels Lohmann";
+        result["copyright"] = "(C) 2013-2017 Niels Lohmann";
         result["name"] = "JSON for Modern C++";
         result["url"] = "https://github.com/nlohmann/json";
         result["version"] =
@@ -312,11 +312,11 @@ class basic_json
 #endif
 
 #if defined(__clang__)
-        result["compiler"] = {{"family", "clang"}, {"version", CLANG_VERSION}};
+        result["compiler"] = {{"family", "clang"}, {"version", __clang_version__}};
 #elif defined(__ICC) || defined(__INTEL_COMPILER)
         result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}};
 #elif defined(__GNUC__) || defined(__GNUG__)
-        result["compiler"] = {{"family", "gcc"}, {"version", GCC_VERSION}};
+        result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(__GNUC__) + "." + std::to_string(__GNUC_MINOR__) + "." + std::to_string(__GNUC_PATCHLEVEL__)}};
 #elif defined(__HP_cc) || defined(__HP_aCC)
         result["compiler"] = "hp"
 #elif defined(__IBMCPP__)
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index a66a0238..c7171a27 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -284,11 +284,11 @@ class basic_json
     /*!
     @brief returns version information on the library
     */
-    static basic_json version()
+    static basic_json meta()
     {
         basic_json result;
 
-        result["copyright"] = "(C) 2013-2016 Niels Lohmann";
+        result["copyright"] = "(C) 2013-2017 Niels Lohmann";
         result["name"] = "JSON for Modern C++";
         result["url"] = "https://github.com/nlohmann/json";
         result["version"] =
@@ -312,11 +312,11 @@ class basic_json
 #endif
 
 #if defined(__clang__)
-        result["compiler"] = {{"family", "clang"}, {"version", CLANG_VERSION}};
+        result["compiler"] = {{"family", "clang"}, {"version", __clang_version__}};
 #elif defined(__ICC) || defined(__INTEL_COMPILER)
         result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}};
 #elif defined(__GNUC__) || defined(__GNUG__)
-        result["compiler"] = {{"family", "gcc"}, {"version", GCC_VERSION}};
+        result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(__GNUC__) + "." + std::to_string(__GNUC_MINOR__) + "." + std::to_string(__GNUC_PATCHLEVEL__)}};
 #elif defined(__HP_cc) || defined(__HP_aCC)
         result["compiler"] = "hp"
 #elif defined(__IBMCPP__)
diff --git a/test/src/unit-version.cpp b/test/src/unit-version.cpp
index bede4ff3..1b4ea91c 100644
--- a/test/src/unit-version.cpp
+++ b/test/src/unit-version.cpp
@@ -35,6 +35,7 @@ TEST_CASE("version information")
 {
     SECTION("version()")
     {
-        CHECK(json::version()["name"] == "JSON for Modern C++");
+        CHECK(json::meta()["name"] == "JSON for Modern C++");
+        CHECK(json::meta()["compiler"] == "JSON for Modern C++");
     }
 }

From e9bbf5aabad1a90a5f5cf43ca8df49d5e7a52aca Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sun, 8 Jan 2017 09:31:40 +0100
Subject: [PATCH 028/174] :bug: forgot to remove a test case

---
 test/src/unit-version.cpp | 1 -
 1 file changed, 1 deletion(-)

diff --git a/test/src/unit-version.cpp b/test/src/unit-version.cpp
index 1b4ea91c..f7b16e19 100644
--- a/test/src/unit-version.cpp
+++ b/test/src/unit-version.cpp
@@ -36,6 +36,5 @@ TEST_CASE("version information")
     SECTION("version()")
     {
         CHECK(json::meta()["name"] == "JSON for Modern C++");
-        CHECK(json::meta()["compiler"] == "JSON for Modern C++");
     }
 }

From 0f03543861b08bbe488abade89a9d2a4e6faa67a Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Wed, 11 Jan 2017 22:23:02 +0100
Subject: [PATCH 029/174] :arrow_up: upgraded to Catch 1.6.0

---
 test/thirdparty/catch/catch.hpp | 101 ++++++++++++++++++++++----------
 1 file changed, 69 insertions(+), 32 deletions(-)
 mode change 100755 => 100644 test/thirdparty/catch/catch.hpp

diff --git a/test/thirdparty/catch/catch.hpp b/test/thirdparty/catch/catch.hpp
old mode 100755
new mode 100644
index 3d18eadb..1d49e738
--- a/test/thirdparty/catch/catch.hpp
+++ b/test/thirdparty/catch/catch.hpp
@@ -1,6 +1,6 @@
 /*
- *  Catch v1.5.9
- *  Generated: 2016-11-29 12:14:38.049276
+ *  Catch v1.6.0
+ *  Generated: 2017-01-11 16:38:09.405017
  *  ----------------------------------------------------------
  *  This file has been merged from multiple headers. Please don't edit it directly
  *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
@@ -60,21 +60,6 @@
 // #included from: catch_common.h
 #define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
 
-#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
-#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
-#ifdef CATCH_CONFIG_COUNTER
-#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )
-#else
-#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
-#endif
-
-#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr
-#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr )
-
-#include <sstream>
-#include <stdexcept>
-#include <algorithm>
-
 // #included from: catch_compiler_capabilities.h
 #define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
 
@@ -181,6 +166,7 @@
 #if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
 #define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
 #define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
 #endif
 
 #endif // _MSC_VER
@@ -246,6 +232,9 @@
 #  if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
 #    define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
 #  endif
+# if !defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE)
+#   define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+#  endif
 
 #endif // __cplusplus >= 201103L
 
@@ -268,18 +257,21 @@
 #if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS)
 #   define CATCH_CONFIG_VARIADIC_MACROS
 #endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11)
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11)
 #   define CATCH_CONFIG_CPP11_LONG_LONG
 #endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11)
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11)
 #   define CATCH_CONFIG_CPP11_OVERRIDE
 #endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11)
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11)
 #   define CATCH_CONFIG_CPP11_UNIQUE_PTR
 #endif
 #if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER)
 #   define CATCH_CONFIG_COUNTER
 #endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_SHUFFLE
+#endif
 
 #if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS)
 #   define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
@@ -315,6 +307,21 @@
 #   define CATCH_AUTO_PTR( T ) std::auto_ptr<T>
 #endif
 
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
+#ifdef CATCH_CONFIG_COUNTER
+#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )
+#else
+#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
+#endif
+
+#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr
+#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr )
+
+#include <sstream>
+#include <stdexcept>
+#include <algorithm>
+
 namespace Catch {
 
     struct IConfig;
@@ -2668,6 +2675,26 @@ namespace Detail {
             return !operator==( rhs, lhs );
         }
 
+        friend bool operator <= ( double lhs, Approx const& rhs )
+        {
+          return lhs < rhs.m_value || lhs == rhs;
+        }
+
+        friend bool operator <= ( Approx const& lhs, double rhs )
+        {
+          return lhs.m_value < rhs || lhs == rhs;
+        }
+
+        friend bool operator >= ( double lhs, Approx const& rhs )
+        {
+          return lhs > rhs.m_value || lhs == rhs;
+        }
+
+        friend bool operator >= ( Approx const& lhs, double rhs )
+        {
+          return lhs.m_value > rhs || lhs == rhs;
+        }
+
         Approx& epsilon( double newEpsilon ) {
             m_epsilon = newEpsilon;
             return *this;
@@ -3257,11 +3284,12 @@ namespace Catch {
 namespace Catch {
 
     class TestSpecParser {
-        enum Mode{ None, Name, QuotedName, Tag };
+        enum Mode{ None, Name, QuotedName, Tag, EscapedName };
         Mode m_mode;
         bool m_exclusion;
         std::size_t m_start, m_pos;
         std::string m_arg;
+        std::vector<std::size_t> m_escapeChars;
         TestSpec::Filter m_currentFilter;
         TestSpec m_testSpec;
         ITagAliasRegistry const* m_tagAliases;
@@ -3274,6 +3302,7 @@ namespace Catch {
             m_exclusion = false;
             m_start = std::string::npos;
             m_arg = m_tagAliases->expandAliases( arg );
+            m_escapeChars.clear();
             for( m_pos = 0; m_pos < m_arg.size(); ++m_pos )
                 visitChar( m_arg[m_pos] );
             if( m_mode == Name )
@@ -3292,6 +3321,7 @@ namespace Catch {
                 case '~': m_exclusion = true; return;
                 case '[': return startNewMode( Tag, ++m_pos );
                 case '"': return startNewMode( QuotedName, ++m_pos );
+                case '\\': return escape();
                 default: startNewMode( Name, m_pos ); break;
                 }
             }
@@ -3307,7 +3337,11 @@ namespace Catch {
                         addPattern<TestSpec::NamePattern>();
                     startNewMode( Tag, ++m_pos );
                 }
+                else if( c == '\\' )
+                    escape();
             }
+            else if( m_mode == EscapedName )
+                m_mode = Name;
             else if( m_mode == QuotedName && c == '"' )
                 addPattern<TestSpec::NamePattern>();
             else if( m_mode == Tag && c == ']' )
@@ -3317,10 +3351,17 @@ namespace Catch {
             m_mode = mode;
             m_start = start;
         }
+        void escape() {
+            m_mode = EscapedName;
+            m_escapeChars.push_back( m_pos );
+        }
         std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); }
         template<typename T>
         void addPattern() {
             std::string token = subString();
+            for( size_t i = 0; i < m_escapeChars.size(); ++i )
+                token = token.substr( 0, m_escapeChars[i] ) + token.substr( m_escapeChars[i]+1 );
+            m_escapeChars.clear();
             if( startsWith( token, "exclude:" ) ) {
                 m_exclusion = true;
                 token = token.substr( 8 );
@@ -6458,10 +6499,6 @@ namespace Catch {
 #include <iostream>
 #include <algorithm>
 
-#ifdef CATCH_CPP14_OR_GREATER
-#include <random>
-#endif
-
 namespace Catch {
 
     struct RandomNumberGenerator {
@@ -6469,7 +6506,7 @@ namespace Catch {
 
         result_type operator()( result_type n ) const { return std::rand() % n; }
 
-#ifdef CATCH_CPP14_OR_GREATER
+#ifdef CATCH_CONFIG_CPP11_SHUFFLE
         static constexpr result_type min() { return 0; }
         static constexpr result_type max() { return 1000000; }
         result_type operator()() const { return std::rand() % max(); }
@@ -6477,7 +6514,7 @@ namespace Catch {
         template<typename V>
         static void shuffle( V& vector ) {
             RandomNumberGenerator rng;
-#ifdef CATCH_CPP14_OR_GREATER
+#ifdef CATCH_CONFIG_CPP11_SHUFFLE
             std::shuffle( vector.begin(), vector.end(), rng );
 #else
             std::random_shuffle( vector.begin(), vector.end(), rng );
@@ -7147,7 +7184,7 @@ namespace {
                 case Colour::White:     return setColour( "[0m" );
                 case Colour::Red:       return setColour( "[0;31m" );
                 case Colour::Green:     return setColour( "[0;32m" );
-                case Colour::Blue:      return setColour( "[0:34m" );
+                case Colour::Blue:      return setColour( "[0;34m" );
                 case Colour::Cyan:      return setColour( "[0;36m" );
                 case Colour::Yellow:    return setColour( "[0;33m" );
                 case Colour::Grey:      return setColour( "[1;30m" );
@@ -7582,7 +7619,7 @@ namespace Catch {
         return os;
     }
 
-    Version libraryVersion( 1, 5, 9, "", 0 );
+    Version libraryVersion( 1, 6, 0, "", 0 );
 
 }
 
@@ -8349,7 +8386,7 @@ namespace Catch {
     }
     std::string ResultBuilder::reconstructExpression() const {
         if( m_exprComponents.op == "" )
-            return m_exprComponents.lhs.empty() ? m_assertionInfo.capturedExpression : m_exprComponents.op + m_exprComponents.lhs;
+            return m_exprComponents.lhs.empty() ? m_assertionInfo.capturedExpression : m_exprComponents.lhs;
         else if( m_exprComponents.op == "matches" )
             return m_exprComponents.lhs + " " + m_exprComponents.rhs;
         else if( m_exprComponents.op != "!" ) {
@@ -8967,7 +9004,7 @@ namespace Catch {
                     default:
                         // Escape control chars - based on contribution by @espenalb in PR #465 and
                         // by @mrpi PR #588
-                        if ( ( c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' )
+                        if ( ( c >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' )
                             os << "&#x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2) << static_cast<int>( c ) << ';';
                         else
                             os << c;
@@ -10400,7 +10437,7 @@ int main (int argc, char * const argv[]) {
 #define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" )
 #define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" )
 
-#define CATCH_CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS" )
+#define CATCH_CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CATCH_CHECK_THROWS" )
 #define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" )
 #define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" )
 #define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" )

From 3a9ccfac226918727532c03892b20b4d705a3558 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Thu, 12 Jan 2017 21:35:27 +0100
Subject: [PATCH 030/174] :construction: cleanup

---
 test/CMakeLists.txt                          | 2 +-
 test/Makefile                                | 4 ++--
 test/src/{unit-version.cpp => unit-meta.cpp} | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)
 rename test/src/{unit-version.cpp => unit-meta.cpp} (97%)

diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 11c8d5b1..62213ad3 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -26,6 +26,7 @@ add_executable(${JSON_UNITTEST_TARGET_NAME}
     "src/unit-iterators2.cpp"
     "src/unit-json_patch.cpp"
     "src/unit-json_pointer.cpp"
+    "src/unit-meta.cpp"
     "src/unit-modifiers.cpp"
     "src/unit-msgpack.cpp"
     "src/unit-pointer_access.cpp"
@@ -35,7 +36,6 @@ add_executable(${JSON_UNITTEST_TARGET_NAME}
     "src/unit-serialization.cpp"
     "src/unit-testsuites.cpp"
     "src/unit-unicode.cpp"
-    "src/unit-version.cpp"
 )
 
 set_target_properties(${JSON_UNITTEST_TARGET_NAME} PROPERTIES
diff --git a/test/Makefile b/test/Makefile
index 5f7d55b2..3d5595d2 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -30,6 +30,7 @@ SOURCES = src/unit.cpp \
           src/unit-iterators2.cpp \
           src/unit-json_patch.cpp \
           src/unit-json_pointer.cpp \
+          src/unit-meta.cpp \
           src/unit-modifiers.cpp \
           src/unit-msgpack.cpp \
           src/unit-pointer_access.cpp \
@@ -38,8 +39,7 @@ SOURCES = src/unit.cpp \
           src/unit-regression.cpp \
           src/unit-serialization.cpp \
           src/unit-testsuites.cpp \
-          src/unit-unicode.cpp \
-          src/unit-version.cpp
+          src/unit-unicode.cpp
 
 OBJECTS = $(SOURCES:.cpp=.o)
 
diff --git a/test/src/unit-version.cpp b/test/src/unit-meta.cpp
similarity index 97%
rename from test/src/unit-version.cpp
rename to test/src/unit-meta.cpp
index f7b16e19..7040042e 100644
--- a/test/src/unit-version.cpp
+++ b/test/src/unit-meta.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.9
+|  |  |__   |  |  | | | |  version 2.0.10
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.

From a7f39383913d5adce906253b6775d8398243d8ef Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Mon, 16 Jan 2017 20:03:50 +0100
Subject: [PATCH 031/174] :white_check_mark: added Big List of Naughty Strings

---
 test/data/big-list-of-naughty-strings/LICENSE |  22 +
 .../big-list-of-naughty-strings/blns.json     | 496 ++++++++++++++++++
 test/src/unit-testsuites.cpp                  |  11 +
 3 files changed, 529 insertions(+)
 create mode 100644 test/data/big-list-of-naughty-strings/LICENSE
 create mode 100644 test/data/big-list-of-naughty-strings/blns.json

diff --git a/test/data/big-list-of-naughty-strings/LICENSE b/test/data/big-list-of-naughty-strings/LICENSE
new file mode 100644
index 00000000..3a041642
--- /dev/null
+++ b/test/data/big-list-of-naughty-strings/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Max Woolf
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/test/data/big-list-of-naughty-strings/blns.json b/test/data/big-list-of-naughty-strings/blns.json
new file mode 100644
index 00000000..ed832d4d
--- /dev/null
+++ b/test/data/big-list-of-naughty-strings/blns.json
@@ -0,0 +1,496 @@
+[
+  "", 
+  "undefined", 
+  "undef", 
+  "null", 
+  "NULL", 
+  "(null)", 
+  "nil", 
+  "NIL", 
+  "true", 
+  "false", 
+  "True", 
+  "False", 
+  "TRUE", 
+  "FALSE", 
+  "None", 
+  "hasOwnProperty", 
+  "\\", 
+  "\\\\", 
+  "0", 
+  "1", 
+  "1.00", 
+  "$1.00", 
+  "1/2", 
+  "1E2", 
+  "1E02", 
+  "1E+02", 
+  "-1", 
+  "-1.00", 
+  "-$1.00", 
+  "-1/2", 
+  "-1E2", 
+  "-1E02", 
+  "-1E+02", 
+  "1/0", 
+  "0/0", 
+  "-2147483648/-1", 
+  "-9223372036854775808/-1", 
+  "0.00", 
+  "0..0", 
+  ".", 
+  "0.0.0", 
+  "0,00", 
+  "0,,0", 
+  ",", 
+  "0,0,0", 
+  "0.0/0", 
+  "1.0/0.0", 
+  "0.0/0.0", 
+  "1,0/0,0", 
+  "0,0/0,0", 
+  "--1", 
+  "-", 
+  "-.", 
+  "-,", 
+  "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", 
+  "NaN", 
+  "Infinity", 
+  "-Infinity", 
+  "INF", 
+  "1#INF", 
+  "-1#IND", 
+  "1#QNAN", 
+  "1#SNAN", 
+  "1#IND", 
+  "0x0", 
+  "0xffffffff", 
+  "0xffffffffffffffff", 
+  "0xabad1dea", 
+  "123456789012345678901234567890123456789", 
+  "1,000.00", 
+  "1 000.00", 
+  "1'000.00", 
+  "1,000,000.00", 
+  "1 000 000.00", 
+  "1'000'000.00", 
+  "1.000,00", 
+  "1 000,00", 
+  "1'000,00", 
+  "1.000.000,00", 
+  "1 000 000,00", 
+  "1'000'000,00", 
+  "01000", 
+  "08", 
+  "09", 
+  "2.2250738585072011e-308", 
+  ",./;'[]\\-=", 
+  "<>?:\"{}|_+", 
+  "!@#$%^&*()`~", 
+  "Ω≈ç√∫˜µ≤≥÷", 
+  "åß∂ƒ©˙∆˚¬…æ", 
+  "œ∑´®†¥¨ˆøπ“‘", 
+  "¡™£¢∞§¶•ªº–≠", 
+  "¸˛Ç◊ı˜Â¯˘¿", 
+  "ÅÍÎÏ˝ÓÔÒÚÆ☃", 
+  "Œ„´‰ˇÁ¨ˆØ∏”’", 
+  "`⁄€‹›fifl‡°·‚—±", 
+  "⅛⅜⅝⅞", 
+  "ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя", 
+  "٠١٢٣٤٥٦٧٨٩", 
+  "⁰⁴⁵", 
+  "₀₁₂", 
+  "⁰⁴⁵₀₁₂", 
+  "ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็", 
+  "'", 
+  "\"", 
+  "''", 
+  "\"\"", 
+  "'\"'", 
+  "\"''''\"'\"", 
+  "\"'\"'\"''''\"", 
+  "<foo val=“bar” />", 
+  "<foo val=“bar” />", 
+  "<foo val=”bar“ />", 
+  "<foo val=`bar' />", 
+  "田中さんにあげて下さい", 
+  "パーティーへ行かないか", 
+  "和製漢語", 
+  "部落格", 
+  "사회과학원 어학연구소", 
+  "찦차를 타고 온 펲시맨과 쑛다리 똠방각하", 
+  "社會科學院語學研究所", 
+  "울란바토르", 
+  "𠜎𠜱𠝹𠱓𠱸𠲖𠳏", 
+  "ヽ༼ຈل͜ຈ༽ノ ヽ༼ຈل͜ຈ༽ノ ", 
+  "(。◕ ∀ ◕。)", 
+  "`ィ(´∀`∩", 
+  "__ロ(,_,*)", 
+  "・( ̄∀ ̄)・:*:", 
+  "゚・✿ヾ╲(。◕‿◕。)╱✿・゚", 
+  ",。・:*:・゜’( ☻ ω ☻ )。・:*:・゜’", 
+  "(╯°□°)╯︵ ┻━┻)  ", 
+  "(ノಥ益ಥ)ノ ┻━┻", 
+  "┬─┬ノ( º _ ºノ)", 
+  "( ͡° ͜ʖ ͡°)", 
+  "😍", 
+  "👩🏽", 
+  "👾 🙇 💁 🙅 🙆 🙋 🙎 🙍 ", 
+  "🐵 🙈 🙉 🙊", 
+  "❤️ 💔 💌 💕 💞 💓 💗 💖 💘 💝 💟 💜 💛 💚 💙", 
+  "✋🏿 💪🏿 👐🏿 🙌🏿 👏🏿 🙏🏿", 
+  "🚾 🆒 🆓 🆕 🆖 🆗 🆙 🏧", 
+  "0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ 🔟", 
+  "🇺🇸🇷🇺🇸 🇦🇫🇦🇲🇸                                                                                          ", 
+  "🇺🇸🇷🇺🇸🇦🇫🇦🇲", 
+  "🇺🇸🇷🇺🇸🇦", 
+  "123", 
+  "١٢٣", 
+  "ثم نفس سقطت وبالتحديد،, جزيرتي باستخدام أن دنو. إذ هنا؟ الستار وتنصيب كان. أهّل ايطاليا، بريطانيا-فرنسا قد أخذ. سليمان، إتفاقية بين ما, يذكر الحدود أي بعد, معاملة بولندا، الإطلاق عل إيو.", 
+  "בְּרֵאשִׁית, בָּרָא אֱלֹהִים, אֵת הַשָּׁמַיִם, וְאֵת הָאָרֶץ", 
+  "הָיְתָהtestالصفحات التّحول", 
+  "﷽", 
+  "ﷺ", 
+  "مُنَاقَشَةُ سُبُلِ اِسْتِخْدَامِ اللُّغَةِ فِي النُّظُمِ الْقَائِمَةِ وَفِيم يَخُصَّ التَّطْبِيقَاتُ الْحاسُوبِيَّةُ، ", 
+  "​", 
+  " ", 
+  "᠎", 
+  " ", 
+  "", 
+  "␣", 
+  "␢", 
+  "␡", 
+  "‪‪test‪", 
+  "‫test‫", 
+  "
test
", 
+  "test⁠test‫", 
+  "⁦test⁧", 
+  "Ṱ̺̺̕o͞ ̷i̲̬͇̪͙n̝̗͕v̟̜̘̦͟o̶̙̰̠kè͚̮̺̪̹̱̤ ̖t̝͕̳̣̻̪͞h̼͓̲̦̳̘̲e͇̣̰̦̬͎ ̢̼̻̱̘h͚͎͙̜̣̲ͅi̦̲̣̰̤v̻͍e̺̭̳̪̰-m̢iͅn̖̺̞̲̯̰d̵̼̟͙̩̼̘̳ ̞̥̱̳̭r̛̗̘e͙p͠r̼̞̻̭̗e̺̠̣͟s̘͇̳͍̝͉e͉̥̯̞̲͚̬͜ǹ̬͎͎̟̖͇̤t͍̬̤͓̼̭͘ͅi̪̱n͠g̴͉ ͏͉ͅc̬̟h͡a̫̻̯͘o̫̟̖͍̙̝͉s̗̦̲.̨̹͈̣", 
+  "̡͓̞ͅI̗̘̦͝n͇͇͙v̮̫ok̲̫̙͈i̖͙̭̹̠̞n̡̻̮̣̺g̲͈͙̭͙̬͎ ̰t͔̦h̞̲e̢̤ ͍̬̲͖f̴̘͕̣è͖ẹ̥̩l͖͔͚i͓͚̦͠n͖͍̗͓̳̮g͍ ̨o͚̪͡f̘̣̬ ̖̘͖̟͙̮c҉͔̫͖͓͇͖ͅh̵̤̣͚͔á̗̼͕ͅo̼̣̥s̱͈̺̖̦̻͢.̛̖̞̠̫̰", 
+  "̗̺͖̹̯͓Ṯ̤͍̥͇͈h̲́e͏͓̼̗̙̼̣͔ ͇̜̱̠͓͍ͅN͕͠e̗̱z̘̝̜̺͙p̤̺̹͍̯͚e̠̻̠͜r̨̤͍̺̖͔̖̖d̠̟̭̬̝͟i̦͖̩͓͔̤a̠̗̬͉̙n͚͜ ̻̞̰͚ͅh̵͉i̳̞v̢͇ḙ͎͟-҉̭̩̼͔m̤̭̫i͕͇̝̦n̗͙ḍ̟ ̯̲͕͞ǫ̟̯̰̲͙̻̝f ̪̰̰̗̖̭̘͘c̦͍̲̞͍̩̙ḥ͚a̮͎̟̙͜ơ̩̹͎s̤.̝̝ ҉Z̡̖̜͖̰̣͉̜a͖̰͙̬͡l̲̫̳͍̩g̡̟̼̱͚̞̬ͅo̗͜.̟", 
+  "̦H̬̤̗̤͝e͜ ̜̥̝̻͍̟́w̕h̖̯͓o̝͙̖͎̱̮ ҉̺̙̞̟͈W̷̼̭a̺̪͍į͈͕̭͙̯̜t̶̼̮s̘͙͖̕ ̠̫̠B̻͍͙͉̳ͅe̵h̵̬͇̫͙i̹͓̳̳̮͎̫̕n͟d̴̪̜̖ ̰͉̩͇͙̲͞ͅT͖̼͓̪͢h͏͓̮̻e̬̝̟ͅ ̤̹̝W͙̞̝͔͇͝ͅa͏͓͔̹̼̣l̴͔̰̤̟͔ḽ̫.͕", 
+  "Z̮̞̠͙͔ͅḀ̗̞͈̻̗Ḷ͙͎̯̹̞͓G̻O̭̗̮", 
+  "˙ɐnbᴉlɐ ɐuƃɐɯ ǝɹolop ʇǝ ǝɹoqɐl ʇn ʇunpᴉpᴉɔuᴉ ɹodɯǝʇ poɯsnᴉǝ op pǝs 'ʇᴉlǝ ƃuᴉɔsᴉdᴉpɐ ɹnʇǝʇɔǝsuoɔ 'ʇǝɯɐ ʇᴉs ɹolop ɯnsdᴉ ɯǝɹo˥", 
+  "00˙Ɩ$-", 
+  "The quick brown fox jumps over the lazy dog", 
+  "𝐓𝐡𝐞 𝐪𝐮𝐢𝐜𝐤 𝐛𝐫𝐨𝐰𝐧 𝐟𝐨𝐱 𝐣𝐮𝐦𝐩𝐬 𝐨𝐯𝐞𝐫 𝐭𝐡𝐞 𝐥𝐚𝐳𝐲 𝐝𝐨𝐠", 
+  "𝕿𝖍𝖊 𝖖𝖚𝖎𝖈𝖐 𝖇𝖗𝖔𝖜𝖓 𝖋𝖔𝖝 𝖏𝖚𝖒𝖕𝖘 𝖔𝖛𝖊𝖗 𝖙𝖍𝖊 𝖑𝖆𝖟𝖞 𝖉𝖔𝖌", 
+  "𝑻𝒉𝒆 𝒒𝒖𝒊𝒄𝒌 𝒃𝒓𝒐𝒘𝒏 𝒇𝒐𝒙 𝒋𝒖𝒎𝒑𝒔 𝒐𝒗𝒆𝒓 𝒕𝒉𝒆 𝒍𝒂𝒛𝒚 𝒅𝒐𝒈", 
+  "𝓣𝓱𝓮 𝓺𝓾𝓲𝓬𝓴 𝓫𝓻𝓸𝔀𝓷 𝓯𝓸𝔁 𝓳𝓾𝓶𝓹𝓼 𝓸𝓿𝓮𝓻 𝓽𝓱𝓮 𝓵𝓪𝔃𝔂 𝓭𝓸𝓰", 
+  "𝕋𝕙𝕖 𝕢𝕦𝕚𝕔𝕜 𝕓𝕣𝕠𝕨𝕟 𝕗𝕠𝕩 𝕛𝕦𝕞𝕡𝕤 𝕠𝕧𝕖𝕣 𝕥𝕙𝕖 𝕝𝕒𝕫𝕪 𝕕𝕠𝕘", 
+  "𝚃𝚑𝚎 𝚚𝚞𝚒𝚌𝚔 𝚋𝚛𝚘𝚠𝚗 𝚏𝚘𝚡 𝚓𝚞𝚖𝚙𝚜 𝚘𝚟𝚎𝚛 𝚝𝚑𝚎 𝚕𝚊𝚣𝚢 𝚍𝚘𝚐", 
+  "⒯⒣⒠ ⒬⒰⒤⒞⒦ ⒝⒭⒪⒲⒩ ⒡⒪⒳ ⒥⒰⒨⒫⒮ ⒪⒱⒠⒭ ⒯⒣⒠ ⒧⒜⒵⒴ ⒟⒪⒢", 
+  "<script>alert(123)</script>", 
+  "&lt;script&gt;alert(&#39;123&#39;);&lt;/script&gt;", 
+  "<img src=x onerror=alert(123) />", 
+  "<svg><script>123<1>alert(123)</script> ", 
+  "\"><script>alert(123)</script>", 
+  "'><script>alert(123)</script>", 
+  "><script>alert(123)</script>", 
+  "</script><script>alert(123)</script>", 
+  "< / script >< script >alert(123)< / script >", 
+  " onfocus=JaVaSCript:alert(123) autofocus ", 
+  "\" onfocus=JaVaSCript:alert(123) autofocus ", 
+  "' onfocus=JaVaSCript:alert(123) autofocus ", 
+  "<script>alert(123)</script>", 
+  "<sc<script>ript>alert(123)</sc</script>ript>", 
+  "--><script>alert(123)</script>", 
+  "\";alert(123);t=\"", 
+  "';alert(123);t='", 
+  "JavaSCript:alert(123)", 
+  ";alert(123);", 
+  "src=JaVaSCript:prompt(132)", 
+  "\"><script>alert(123);</script x=\"", 
+  "'><script>alert(123);</script x='", 
+  "><script>alert(123);</script x=", 
+  "\" autofocus onkeyup=\"javascript:alert(123)", 
+  "' autofocus onkeyup='javascript:alert(123)", 
+  "<script\\x20type=\"text/javascript\">javascript:alert(1);</script>", 
+  "<script\\x3Etype=\"text/javascript\">javascript:alert(1);</script>", 
+  "<script\\x0Dtype=\"text/javascript\">javascript:alert(1);</script>", 
+  "<script\\x09type=\"text/javascript\">javascript:alert(1);</script>", 
+  "<script\\x0Ctype=\"text/javascript\">javascript:alert(1);</script>", 
+  "<script\\x2Ftype=\"text/javascript\">javascript:alert(1);</script>", 
+  "<script\\x0Atype=\"text/javascript\">javascript:alert(1);</script>", 
+  "'`\"><\\x3Cscript>javascript:alert(1)</script>        ", 
+  "'`\"><\\x00script>javascript:alert(1)</script>", 
+  "ABC<div style=\"x\\x3Aexpression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:expression\\x5C(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:expression\\x00(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:exp\\x00ression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:exp\\x5Cression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\x0Aexpression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\x09expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE3\\x80\\x80expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x84expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xC2\\xA0expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x80expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x8Aexpression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\x0Dexpression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\x0Cexpression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x87expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xEF\\xBB\\xBFexpression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\x20expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x88expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\x00expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x8Bexpression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x86expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x85expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x82expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\x0Bexpression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x81expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x83expression(javascript:alert(1)\">DEF", 
+  "ABC<div style=\"x:\\xE2\\x80\\x89expression(javascript:alert(1)\">DEF", 
+  "<a href=\"\\x0Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x0Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xC2\\xA0javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x05javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE1\\xA0\\x8Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x18javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x11javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x88javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x89javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x17javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x03javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x0Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x1Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x00javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x10javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x82javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x20javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x13javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x09javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x8Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x14javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x19javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\xAFjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x1Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x81javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x1Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x87javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x07javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE1\\x9A\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x83javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x04javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x01javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x08javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x84javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x86javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE3\\x80\\x80javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x12javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x0Djavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x0Ajavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x0Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x15javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\xA8javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x16javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x02javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x1Bjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x06javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\xA9javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x80\\x85javascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x1Ejavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\xE2\\x81\\x9Fjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"\\x1Cjavascript:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"javascript\\x00:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"javascript\\x3A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"javascript\\x09:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"javascript\\x0D:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "<a href=\"javascript\\x0A:javascript:alert(1)\" id=\"fuzzelement1\">test</a>", 
+  "`\"'><img src=xxx:x \\x0Aonerror=javascript:alert(1)>", 
+  "`\"'><img src=xxx:x \\x22onerror=javascript:alert(1)>", 
+  "`\"'><img src=xxx:x \\x0Bonerror=javascript:alert(1)>", 
+  "`\"'><img src=xxx:x \\x0Donerror=javascript:alert(1)>", 
+  "`\"'><img src=xxx:x \\x2Fonerror=javascript:alert(1)>", 
+  "`\"'><img src=xxx:x \\x09onerror=javascript:alert(1)>", 
+  "`\"'><img src=xxx:x \\x0Conerror=javascript:alert(1)>", 
+  "`\"'><img src=xxx:x \\x00onerror=javascript:alert(1)>", 
+  "`\"'><img src=xxx:x \\x27onerror=javascript:alert(1)>", 
+  "`\"'><img src=xxx:x \\x20onerror=javascript:alert(1)>", 
+  "\"`'><script>\\x3Bjavascript:alert(1)</script>", 
+  "\"`'><script>\\x0Djavascript:alert(1)</script>", 
+  "\"`'><script>\\xEF\\xBB\\xBFjavascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x81javascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x84javascript:alert(1)</script>", 
+  "\"`'><script>\\xE3\\x80\\x80javascript:alert(1)</script>", 
+  "\"`'><script>\\x09javascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x89javascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x85javascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x88javascript:alert(1)</script>", 
+  "\"`'><script>\\x00javascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\xA8javascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x8Ajavascript:alert(1)</script>", 
+  "\"`'><script>\\xE1\\x9A\\x80javascript:alert(1)</script>", 
+  "\"`'><script>\\x0Cjavascript:alert(1)</script>", 
+  "\"`'><script>\\x2Bjavascript:alert(1)</script>", 
+  "\"`'><script>\\xF0\\x90\\x96\\x9Ajavascript:alert(1)</script>", 
+  "\"`'><script>-javascript:alert(1)</script>", 
+  "\"`'><script>\\x0Ajavascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\xAFjavascript:alert(1)</script>", 
+  "\"`'><script>\\x7Ejavascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x87javascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x81\\x9Fjavascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\xA9javascript:alert(1)</script>", 
+  "\"`'><script>\\xC2\\x85javascript:alert(1)</script>", 
+  "\"`'><script>\\xEF\\xBF\\xAEjavascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x83javascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x8Bjavascript:alert(1)</script>", 
+  "\"`'><script>\\xEF\\xBF\\xBEjavascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x80javascript:alert(1)</script>", 
+  "\"`'><script>\\x21javascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x82javascript:alert(1)</script>", 
+  "\"`'><script>\\xE2\\x80\\x86javascript:alert(1)</script>", 
+  "\"`'><script>\\xE1\\xA0\\x8Ejavascript:alert(1)</script>", 
+  "\"`'><script>\\x0Bjavascript:alert(1)</script>", 
+  "\"`'><script>\\x20javascript:alert(1)</script>", 
+  "\"`'><script>\\xC2\\xA0javascript:alert(1)</script>", 
+  "<img \\x00src=x onerror=\"alert(1)\">", 
+  "<img \\x47src=x onerror=\"javascript:alert(1)\">", 
+  "<img \\x11src=x onerror=\"javascript:alert(1)\">", 
+  "<img \\x12src=x onerror=\"javascript:alert(1)\">", 
+  "<img\\x47src=x onerror=\"javascript:alert(1)\">", 
+  "<img\\x10src=x onerror=\"javascript:alert(1)\">", 
+  "<img\\x13src=x onerror=\"javascript:alert(1)\">", 
+  "<img\\x32src=x onerror=\"javascript:alert(1)\">", 
+  "<img\\x47src=x onerror=\"javascript:alert(1)\">", 
+  "<img\\x11src=x onerror=\"javascript:alert(1)\">", 
+  "<img \\x47src=x onerror=\"javascript:alert(1)\">", 
+  "<img \\x34src=x onerror=\"javascript:alert(1)\">", 
+  "<img \\x39src=x onerror=\"javascript:alert(1)\">", 
+  "<img \\x00src=x onerror=\"javascript:alert(1)\">", 
+  "<img src\\x09=x onerror=\"javascript:alert(1)\">", 
+  "<img src\\x10=x onerror=\"javascript:alert(1)\">", 
+  "<img src\\x13=x onerror=\"javascript:alert(1)\">", 
+  "<img src\\x32=x onerror=\"javascript:alert(1)\">", 
+  "<img src\\x12=x onerror=\"javascript:alert(1)\">", 
+  "<img src\\x11=x onerror=\"javascript:alert(1)\">", 
+  "<img src\\x00=x onerror=\"javascript:alert(1)\">", 
+  "<img src\\x47=x onerror=\"javascript:alert(1)\">", 
+  "<img src=x\\x09onerror=\"javascript:alert(1)\">", 
+  "<img src=x\\x10onerror=\"javascript:alert(1)\">", 
+  "<img src=x\\x11onerror=\"javascript:alert(1)\">", 
+  "<img src=x\\x12onerror=\"javascript:alert(1)\">", 
+  "<img src=x\\x13onerror=\"javascript:alert(1)\">", 
+  "<img[a][b][c]src[d]=x[e]onerror=[f]\"alert(1)\">", 
+  "<img src=x onerror=\\x09\"javascript:alert(1)\">", 
+  "<img src=x onerror=\\x10\"javascript:alert(1)\">", 
+  "<img src=x onerror=\\x11\"javascript:alert(1)\">", 
+  "<img src=x onerror=\\x12\"javascript:alert(1)\">", 
+  "<img src=x onerror=\\x32\"javascript:alert(1)\">", 
+  "<img src=x onerror=\\x00\"javascript:alert(1)\">", 
+  "<a href=java&#1&#2&#3&#4&#5&#6&#7&#8&#11&#12script:javascript:alert(1)>XXX</a>", 
+  "<img src=\"x` `<script>javascript:alert(1)</script>\"` `>", 
+  "<img src onerror /\" '\"= alt=javascript:alert(1)//\">", 
+  "<title onpropertychange=javascript:alert(1)></title><title title=>", 
+  "<a href=http://foo.bar/#x=`y></a><img alt=\"`><img src=x:x onerror=javascript:alert(1)></a>\">", 
+  "<!--[if]><script>javascript:alert(1)</script -->", 
+  "<!--[if<img src=x onerror=javascript:alert(1)//]> -->", 
+  "<script src=\"/\\%(jscript)s\"></script>", 
+  "<script src=\"\\\\%(jscript)s\"></script>", 
+  "<IMG \"\"\"><SCRIPT>alert(\"XSS\")</SCRIPT>\">", 
+  "<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>", 
+  "<IMG SRC=# onmouseover=\"alert('xxs')\">", 
+  "<IMG SRC= onmouseover=\"alert('xxs')\">", 
+  "<IMG onmouseover=\"alert('xxs')\">", 
+  "<IMG SRC=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;>", 
+  "<IMG SRC=&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041>", 
+  "<IMG SRC=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>", 
+  "<IMG SRC=\"jav   ascript:alert('XSS');\">", 
+  "<IMG SRC=\"jav&#x09;ascript:alert('XSS');\">", 
+  "<IMG SRC=\"jav&#x0A;ascript:alert('XSS');\">", 
+  "<IMG SRC=\"jav&#x0D;ascript:alert('XSS');\">", 
+  "perl -e 'print \"<IMG SRC=java\\0script:alert(\\\"XSS\\\")>\";' > out", 
+  "<IMG SRC=\" &#14;  javascript:alert('XSS');\">", 
+  "<SCRIPT/XSS SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>", 
+  "<BODY onload!#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>", 
+  "<SCRIPT/SRC=\"http://ha.ckers.org/xss.js\"></SCRIPT>", 
+  "<<SCRIPT>alert(\"XSS\");//<</SCRIPT>", 
+  "<SCRIPT SRC=http://ha.ckers.org/xss.js?< B >", 
+  "<SCRIPT SRC=//ha.ckers.org/.j>", 
+  "<IMG SRC=\"javascript:alert('XSS')\"", 
+  "<iframe src=http://ha.ckers.org/scriptlet.html <", 
+  "\\\";alert('XSS');//", 
+  "<u oncopy=alert()> Copy me</u>", 
+  "<i onwheel=alert(1)> Scroll over me </i>", 
+  "<plaintext>", 
+  "http://a/%%30%30", 
+  "</textarea><script>alert(123)</script>",
+  "1;DROP TABLE users", 
+  "1'; DROP TABLE users-- 1", 
+  "' OR 1=1 -- 1", 
+  "' OR '1'='1", 
+  " ", 
+  "%", 
+  "_", 
+  "-", 
+  "--", 
+  "--version", 
+  "--help", 
+  "$USER", 
+  "/dev/null; touch /tmp/blns.fail ; echo", 
+  "`touch /tmp/blns.fail`", 
+  "$(touch /tmp/blns.fail)", 
+  "@{[system \"touch /tmp/blns.fail\"]}", 
+  "eval(\"puts 'hello world'\")", 
+  "System(\"ls -al /\")", 
+  "`ls -al /`", 
+  "Kernel.exec(\"ls -al /\")", 
+  "Kernel.exit(1)", 
+  "%x('ls -al /')", 
+  "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM \"file:///etc/passwd\" >]><foo>&xxe;</foo>", 
+  "$HOME", 
+  "$ENV{'HOME'}", 
+  "%d", 
+  "%s", 
+  "{0}", 
+  "%*.*s", 
+  "../../../../../../../../../../../etc/passwd%00", 
+  "../../../../../../../../../../../etc/hosts", 
+  "() { 0; }; touch /tmp/blns.shellshock1.fail;", 
+  "() { _; } >_[$($())] { touch /tmp/blns.shellshock2.fail; }", 
+  "+++ATH0",
+  "<<< %s(un='%s') = %u", 
+  "CON", 
+  "PRN", 
+  "AUX", 
+  "CLOCK$", 
+  "NUL", 
+  "A:", 
+  "ZZ:", 
+  "COM1", 
+  "LPT1", 
+  "LPT2", 
+  "LPT3", 
+  "COM2", 
+  "COM3", 
+  "COM4", 
+  "DCC SEND STARTKEYLOGGER 0 0 0", 
+  "Scunthorpe General Hospital", 
+  "Penistone Community Church", 
+  "Lightwater Country Park", 
+  "Jimmy Clitheroe", 
+  "Horniman Museum", 
+  "shitake mushrooms", 
+  "RomansInSussex.co.uk", 
+  "http://www.cum.qc.ca/", 
+  "Craig Cockburn, Software Specialist", 
+  "Linda Callahan", 
+  "Dr. Herman I. Libshitz", 
+  "magna cum laude", 
+  "Super Bowl XXX", 
+  "medieval erection of parapets", 
+  "evaluate", 
+  "mocha", 
+  "expression", 
+  "Arsenal canal", 
+  "classic", 
+  "Tyson Gay", 
+  "Dick Van Dyke", 
+  "basement", 
+  "If you're reading this, you've been in a coma for almost 20 years now. We're trying a new technique. We don't know where this message will end up in your dream, but we hope it works. Please wake up, we miss you.", 
+  "Roses are \u001b[0;31mred\u001b[0m, violets are \u001b[0;34mblue. Hope you enjoy terminal hue", 
+  "But now...\u001b[20Cfor my greatest trick...\u001b[8m", 
+  "The quic\b\b\b\b\b\bk brown fo\u0007\u0007\u0007\u0007\u0007\u0007\u0007\u0007\u0007\u0007\u0007x... [Beeeep]", 
+  "Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗"
+]
diff --git a/test/src/unit-testsuites.cpp b/test/src/unit-testsuites.cpp
index a43e1997..b939bb62 100644
--- a/test/src/unit-testsuites.cpp
+++ b/test/src/unit-testsuites.cpp
@@ -815,3 +815,14 @@ TEST_CASE("nst's JSONTestSuite")
         }
     }
 }
+
+TEST_CASE("Big List of Naughty Strings")
+{
+    // test from https://github.com/minimaxir/big-list-of-naughty-strings
+    SECTION("blns.json")
+    {
+        std::ifstream f("test/data/big-list-of-naughty-strings/blns.json");
+        json j;
+        CHECK_NOTHROW(j << f);
+    }
+}

From 74cbd30cd079bb86c2c19f1e4848775f1b2c6e16 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Mon, 16 Jan 2017 20:04:47 +0100
Subject: [PATCH 032/174] :page_facing_up: it's 2017

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 071d847a..6182a2df 100644
--- a/README.md
+++ b/README.md
@@ -521,7 +521,7 @@ The following compilers are currently used in continuous integration at [Travis]
 
 The class is licensed under the [MIT License](http://opensource.org/licenses/MIT):
 
-Copyright &copy; 2013-2016 [Niels Lohmann](http://nlohmann.me)
+Copyright &copy; 2013-2017 [Niels Lohmann](http://nlohmann.me)
 
 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 

From 1ab26ab36750fd7426014b55bf6efdd7e0339216 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Mon, 16 Jan 2017 22:11:07 +0100
Subject: [PATCH 033/174] :sparkles: option to switch off exceptions

---
 .travis.yml                       |  15 ++
 src/json.hpp                      | 262 ++++++++++++++++--------------
 src/json.hpp.re2c                 | 262 ++++++++++++++++--------------
 test/Makefile                     |   2 +-
 test/src/unit-cbor.cpp            |   2 +-
 test/src/unit-element_access2.cpp |  53 +++---
 6 files changed, 335 insertions(+), 261 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 6bf2297e..6a154deb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -71,6 +71,21 @@ matrix:
     after_success:
       - make cppcheck
 
+  # no exceptions
+
+  - os: linux
+    compiler: gcc
+    env:
+      - COMPILER=g++-4.9
+      - SPECIAL=no_exceptions
+      - TEST_PATTERN="-e \"*\""
+    addons:
+      apt:
+        sources: ['ubuntu-toolchain-r-test']
+        packages: [g++-4.9, cppcheck]
+    before_script:
+      - make FLAGS="-fno-exceptions"
+
   # Coveralls (http://gronlier.fr/blog/2015/01/adding-code-coverage-to-your-c-project/)
 
   - os: linux
diff --git a/src/json.hpp b/src/json.hpp
index 3200e095..69d49ec1 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -88,6 +88,17 @@ SOFTWARE.
     #define JSON_DEPRECATED
 #endif
 
+// allow to disable exceptions
+#if defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS)
+    #define JSON_THROW(exception) std::abort()
+    #define JSON_TRY if(true)
+    #define JSON_CATCH(exception) if(false)
+#else
+    #define JSON_THROW(exception) throw exception
+    #define JSON_TRY try
+    #define JSON_CATCH(exception) catch(exception)
+#endif
+
 /*!
 @brief namespace for Niels Lohmann
 @see https://github.com/nlohmann
@@ -945,7 +956,7 @@ class basic_json
                 {
                     if (t == value_t::null)
                     {
-                        throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10"); // LCOV_EXCL_LINE
+                        JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10")); // LCOV_EXCL_LINE
                     }
                     break;
                 }
@@ -1717,7 +1728,7 @@ class basic_json
             // if object is wanted but impossible, throw an exception
             if (manual_type == value_t::object and not is_an_object)
             {
-                throw std::domain_error("cannot create object from initializer list");
+                JSON_THROW(std::domain_error("cannot create object from initializer list"));
             }
         }
 
@@ -1895,7 +1906,7 @@ class basic_json
         // make sure iterator fits the current value
         if (first.m_object != last.m_object)
         {
-            throw std::domain_error("iterators are not compatible");
+            JSON_THROW(std::domain_error("iterators are not compatible"));
         }
 
         // copy type from first iterator
@@ -1912,7 +1923,7 @@ class basic_json
             {
                 if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
                 {
-                    throw std::out_of_range("iterators out of range");
+                    JSON_THROW(std::out_of_range("iterators out of range"));
                 }
                 break;
             }
@@ -1971,7 +1982,7 @@ class basic_json
 
             default:
             {
-                throw std::domain_error("cannot use construct with iterators from " + first.m_object->type_name());
+                JSON_THROW(std::domain_error("cannot use construct with iterators from " + first.m_object->type_name()));
             }
         }
 
@@ -2655,7 +2666,7 @@ class basic_json
             return T(m_value.object->begin(), m_value.object->end());
         }
 
-        throw std::domain_error("type must be object, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be object, but is " + type_name()));
     }
 
     /// get an object (explicit)
@@ -2666,7 +2677,7 @@ class basic_json
             return *(m_value.object);
         }
 
-        throw std::domain_error("type must be object, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be object, but is " + type_name()));
     }
 
     /// get an array (explicit)
@@ -2689,7 +2700,7 @@ class basic_json
             return to_vector;
         }
 
-        throw std::domain_error("type must be array, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
     }
 
     /// get an array (explicit)
@@ -2710,7 +2721,7 @@ class basic_json
             return to_vector;
         }
 
-        throw std::domain_error("type must be array, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
     }
 
     /// get an array (explicit)
@@ -2724,7 +2735,7 @@ class basic_json
             return T(m_value.array->begin(), m_value.array->end());
         }
 
-        throw std::domain_error("type must be array, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
     }
 
     /// get an array (explicit)
@@ -2735,7 +2746,7 @@ class basic_json
             return *(m_value.array);
         }
 
-        throw std::domain_error("type must be array, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
     }
 
     /// get a string (explicit)
@@ -2748,7 +2759,7 @@ class basic_json
             return *m_value.string;
         }
 
-        throw std::domain_error("type must be string, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be string, but is " + type_name()));
     }
 
     /// get a number (explicit)
@@ -2775,17 +2786,22 @@ class basic_json
 
             default:
             {
-                throw std::domain_error("type must be number, but is " + type_name());
+                JSON_THROW(std::domain_error("type must be number, but is " + type_name()));
             }
         }
     }
 
     /// get a boolean (explicit)
-    constexpr boolean_t get_impl(boolean_t* /*unused*/) const
+    boolean_t get_impl(boolean_t* /*unused*/) const
     {
-        return is_boolean()
-               ? m_value.boolean
-               : throw std::domain_error("type must be boolean, but is " + type_name());
+        if (is_boolean())
+        {
+            return m_value.boolean;
+        }
+        else
+        {
+            JSON_THROW(std::domain_error("type must be boolean, but is " + type_name()));
+        }
     }
 
     /// get a pointer to the value (object)
@@ -3197,19 +3213,19 @@ class basic_json
         // at only works for arrays
         if (is_array())
         {
-            try
+            JSON_TRY
             {
                 return m_value.array->at(idx);
             }
-            catch (std::out_of_range&)
+            JSON_CATCH (std::out_of_range&)
             {
                 // create better exception explanation
-                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+                JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range"));
             }
         }
         else
         {
-            throw std::domain_error("cannot use at() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use at() with " + type_name()));
         }
     }
 
@@ -3240,19 +3256,19 @@ class basic_json
         // at only works for arrays
         if (is_array())
         {
-            try
+            JSON_TRY
             {
                 return m_value.array->at(idx);
             }
-            catch (std::out_of_range&)
+            JSON_CATCH (std::out_of_range&)
             {
                 // create better exception explanation
-                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+                JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range"));
             }
         }
         else
         {
-            throw std::domain_error("cannot use at() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use at() with " + type_name()));
         }
     }
 
@@ -3287,19 +3303,19 @@ class basic_json
         // at only works for objects
         if (is_object())
         {
-            try
+            JSON_TRY
             {
                 return m_value.object->at(key);
             }
-            catch (std::out_of_range&)
+            JSON_CATCH (std::out_of_range&)
             {
                 // create better exception explanation
-                throw std::out_of_range("key '" + key + "' not found");
+                JSON_THROW(std::out_of_range("key '" + key + "' not found"));
             }
         }
         else
         {
-            throw std::domain_error("cannot use at() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use at() with " + type_name()));
         }
     }
 
@@ -3334,19 +3350,19 @@ class basic_json
         // at only works for objects
         if (is_object())
         {
-            try
+            JSON_TRY
             {
                 return m_value.object->at(key);
             }
-            catch (std::out_of_range&)
+            JSON_CATCH (std::out_of_range&)
             {
                 // create better exception explanation
-                throw std::out_of_range("key '" + key + "' not found");
+                JSON_THROW(std::out_of_range("key '" + key + "' not found"));
             }
         }
         else
         {
-            throw std::domain_error("cannot use at() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use at() with " + type_name()));
         }
     }
 
@@ -3399,7 +3415,7 @@ class basic_json
             return m_value.array->operator[](idx);
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3429,7 +3445,7 @@ class basic_json
             return m_value.array->operator[](idx);
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3475,7 +3491,7 @@ class basic_json
             return m_value.object->operator[](key);
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3517,7 +3533,7 @@ class basic_json
             return m_value.object->find(key)->second;
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3632,7 +3648,7 @@ class basic_json
             return m_value.object->operator[](key);
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3675,7 +3691,7 @@ class basic_json
             return m_value.object->find(key)->second;
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3744,7 +3760,7 @@ class basic_json
         }
         else
         {
-            throw std::domain_error("cannot use value() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use value() with " + type_name()));
         }
     }
 
@@ -3806,17 +3822,17 @@ class basic_json
         if (is_object())
         {
             // if pointer resolves a value, return it or use default value
-            try
+            JSON_TRY
             {
                 return ptr.get_checked(this);
             }
-            catch (std::out_of_range&)
+            JSON_CATCH (std::out_of_range&)
             {
                 return default_value;
             }
         }
 
-        throw std::domain_error("cannot use value() with " + type_name());
+        JSON_THROW(std::domain_error("cannot use value() with " + type_name()));
     }
 
     /*!
@@ -3967,7 +3983,7 @@ class basic_json
         // make sure iterator fits the current value
         if (this != pos.m_object)
         {
-            throw std::domain_error("iterator does not fit current value");
+            JSON_THROW(std::domain_error("iterator does not fit current value"));
         }
 
         IteratorType result = end();
@@ -3982,7 +3998,7 @@ class basic_json
             {
                 if (not pos.m_it.primitive_iterator.is_begin())
                 {
-                    throw std::out_of_range("iterator out of range");
+                    JSON_THROW(std::out_of_range("iterator out of range"));
                 }
 
                 if (is_string())
@@ -4012,7 +4028,7 @@ class basic_json
 
             default:
             {
-                throw std::domain_error("cannot use erase() with " + type_name());
+                JSON_THROW(std::domain_error("cannot use erase() with " + type_name()));
             }
         }
 
@@ -4074,7 +4090,7 @@ class basic_json
         // make sure iterator fits the current value
         if (this != first.m_object or this != last.m_object)
         {
-            throw std::domain_error("iterators do not fit current value");
+            JSON_THROW(std::domain_error("iterators do not fit current value"));
         }
 
         IteratorType result = end();
@@ -4089,7 +4105,7 @@ class basic_json
             {
                 if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
                 {
-                    throw std::out_of_range("iterators out of range");
+                    JSON_THROW(std::out_of_range("iterators out of range"));
                 }
 
                 if (is_string())
@@ -4121,7 +4137,7 @@ class basic_json
 
             default:
             {
-                throw std::domain_error("cannot use erase() with " + type_name());
+                JSON_THROW(std::domain_error("cannot use erase() with " + type_name()));
             }
         }
 
@@ -4165,7 +4181,7 @@ class basic_json
             return m_value.object->erase(key);
         }
 
-        throw std::domain_error("cannot use erase() with " + type_name());
+        JSON_THROW(std::domain_error("cannot use erase() with " + type_name()));
     }
 
     /*!
@@ -4199,14 +4215,14 @@ class basic_json
         {
             if (idx >= size())
             {
-                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+                JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range"));
             }
 
             m_value.array->erase(m_value.array->begin() + static_cast<difference_type>(idx));
         }
         else
         {
-            throw std::domain_error("cannot use erase() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use erase() with " + type_name()));
         }
     }
 
@@ -4924,7 +4940,7 @@ class basic_json
         // push_back only works for null objects or arrays
         if (not(is_null() or is_array()))
         {
-            throw std::domain_error("cannot use push_back() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use push_back() with " + type_name()));
         }
 
         // transform null object into an array
@@ -4960,7 +4976,7 @@ class basic_json
         // push_back only works for null objects or arrays
         if (not(is_null() or is_array()))
         {
-            throw std::domain_error("cannot use push_back() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use push_back() with " + type_name()));
         }
 
         // transform null object into an array
@@ -5010,7 +5026,7 @@ class basic_json
         // push_back only works for null objects or objects
         if (not(is_null() or is_object()))
         {
-            throw std::domain_error("cannot use push_back() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use push_back() with " + type_name()));
         }
 
         // transform null object into an object
@@ -5110,7 +5126,7 @@ class basic_json
         // emplace_back only works for null objects or arrays
         if (not(is_null() or is_array()))
         {
-            throw std::domain_error("cannot use emplace_back() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use emplace_back() with " + type_name()));
         }
 
         // transform null object into an array
@@ -5158,7 +5174,7 @@ class basic_json
         // emplace only works for null objects or arrays
         if (not(is_null() or is_object()))
         {
-            throw std::domain_error("cannot use emplace() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use emplace() with " + type_name()));
         }
 
         // transform null object into an object
@@ -5209,7 +5225,7 @@ class basic_json
             // check if iterator pos fits to this JSON value
             if (pos.m_object != this)
             {
-                throw std::domain_error("iterator does not fit current value");
+                JSON_THROW(std::domain_error("iterator does not fit current value"));
             }
 
             // insert to array and return iterator
@@ -5218,7 +5234,7 @@ class basic_json
             return result;
         }
 
-        throw std::domain_error("cannot use insert() with " + type_name());
+        JSON_THROW(std::domain_error("cannot use insert() with " + type_name()));
     }
 
     /*!
@@ -5262,7 +5278,7 @@ class basic_json
             // check if iterator pos fits to this JSON value
             if (pos.m_object != this)
             {
-                throw std::domain_error("iterator does not fit current value");
+                JSON_THROW(std::domain_error("iterator does not fit current value"));
             }
 
             // insert to array and return iterator
@@ -5271,7 +5287,7 @@ class basic_json
             return result;
         }
 
-        throw std::domain_error("cannot use insert() with " + type_name());
+        JSON_THROW(std::domain_error("cannot use insert() with " + type_name()));
     }
 
     /*!
@@ -5309,24 +5325,24 @@ class basic_json
         // insert only works for arrays
         if (not is_array())
         {
-            throw std::domain_error("cannot use insert() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use insert() with " + type_name()));
         }
 
         // check if iterator pos fits to this JSON value
         if (pos.m_object != this)
         {
-            throw std::domain_error("iterator does not fit current value");
+            JSON_THROW(std::domain_error("iterator does not fit current value"));
         }
 
         // check if range iterators belong to the same JSON object
         if (first.m_object != last.m_object)
         {
-            throw std::domain_error("iterators do not fit");
+            JSON_THROW(std::domain_error("iterators do not fit"));
         }
 
         if (first.m_object == this or last.m_object == this)
         {
-            throw std::domain_error("passed iterators may not belong to container");
+            JSON_THROW(std::domain_error("passed iterators may not belong to container"));
         }
 
         // insert to array and return iterator
@@ -5367,13 +5383,13 @@ class basic_json
         // insert only works for arrays
         if (not is_array())
         {
-            throw std::domain_error("cannot use insert() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use insert() with " + type_name()));
         }
 
         // check if iterator pos fits to this JSON value
         if (pos.m_object != this)
         {
-            throw std::domain_error("iterator does not fit current value");
+            JSON_THROW(std::domain_error("iterator does not fit current value"));
         }
 
         // insert to array and return iterator
@@ -5440,7 +5456,7 @@ class basic_json
         }
         else
         {
-            throw std::domain_error("cannot use swap() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use swap() with " + type_name()));
         }
     }
 
@@ -5473,7 +5489,7 @@ class basic_json
         }
         else
         {
-            throw std::domain_error("cannot use swap() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use swap() with " + type_name()));
         }
     }
 
@@ -5506,7 +5522,7 @@ class basic_json
         }
         else
         {
-            throw std::domain_error("cannot use swap() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use swap() with " + type_name()));
         }
     }
 
@@ -6350,7 +6366,7 @@ class basic_json
     {
         if (current_index + sizeof(T) + 1 > vec.size())
         {
-            throw std::out_of_range("cannot read " + std::to_string(sizeof(T)) + " bytes from vector");
+            JSON_THROW(std::out_of_range("cannot read " + std::to_string(sizeof(T)) + " bytes from vector"));
         }
 
         T result;
@@ -6900,19 +6916,19 @@ class basic_json
         // simple case: requested length is greater than the vector's length
         if (len > size or offset > size)
         {
-            throw std::out_of_range("len out of range");
+            JSON_THROW(std::out_of_range("len out of range"));
         }
 
         // second case: adding offset would result in overflow
         if ((size > (std::numeric_limits<size_t>::max() - offset)))
         {
-            throw std::out_of_range("len+offset out of range");
+            JSON_THROW(std::out_of_range("len+offset out of range"));
         }
 
         // last case: reading past the end of the vector
         if (len + offset > size)
         {
-            throw std::out_of_range("len+offset out of range");
+            JSON_THROW(std::out_of_range("len+offset out of range"));
         }
     }
 
@@ -7148,7 +7164,7 @@ class basic_json
 
                 default:
                 {
-                    throw std::invalid_argument("error parsing a msgpack @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx])));
+                    JSON_THROW(std::invalid_argument("error parsing a msgpack @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx]))));
                 }
             }
         }
@@ -7631,7 +7647,7 @@ class basic_json
 
             default: // anything else (0xFF is handled inside the other types)
             {
-                throw std::invalid_argument("error parsing a CBOR @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx])));
+                JSON_THROW(std::invalid_argument("error parsing a CBOR @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx]))));
             }
         }
     }
@@ -8521,7 +8537,7 @@ class basic_json
 
                 case basic_json::value_t::null:
                 {
-                    throw std::out_of_range("cannot get value");
+                    JSON_THROW(std::out_of_range("cannot get value"));
                 }
 
                 default:
@@ -8531,7 +8547,7 @@ class basic_json
                         return *m_object;
                     }
 
-                    throw std::out_of_range("cannot get value");
+                    JSON_THROW(std::out_of_range("cannot get value"));
                 }
             }
         }
@@ -8565,7 +8581,7 @@ class basic_json
                         return m_object;
                     }
 
-                    throw std::out_of_range("cannot get value");
+                    JSON_THROW(std::out_of_range("cannot get value"));
                 }
             }
         }
@@ -8665,7 +8681,7 @@ class basic_json
             // if objects are not the same, the comparison is undefined
             if (m_object != other.m_object)
             {
-                throw std::domain_error("cannot compare iterators of different containers");
+                JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
             }
 
             assert(m_object != nullptr);
@@ -8707,7 +8723,7 @@ class basic_json
             // if objects are not the same, the comparison is undefined
             if (m_object != other.m_object)
             {
-                throw std::domain_error("cannot compare iterators of different containers");
+                JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
             }
 
             assert(m_object != nullptr);
@@ -8716,7 +8732,7 @@ class basic_json
             {
                 case basic_json::value_t::object:
                 {
-                    throw std::domain_error("cannot compare order of object iterators");
+                    JSON_THROW(std::domain_error("cannot compare order of object iterators"));
                 }
 
                 case basic_json::value_t::array:
@@ -8770,7 +8786,7 @@ class basic_json
             {
                 case basic_json::value_t::object:
                 {
-                    throw std::domain_error("cannot use offsets with object iterators");
+                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
                 }
 
                 case basic_json::value_t::array:
@@ -8832,7 +8848,7 @@ class basic_json
             {
                 case basic_json::value_t::object:
                 {
-                    throw std::domain_error("cannot use offsets with object iterators");
+                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
                 }
 
                 case basic_json::value_t::array:
@@ -8859,7 +8875,7 @@ class basic_json
             {
                 case basic_json::value_t::object:
                 {
-                    throw std::domain_error("cannot use operator[] for object iterators");
+                    JSON_THROW(std::domain_error("cannot use operator[] for object iterators"));
                 }
 
                 case basic_json::value_t::array:
@@ -8869,7 +8885,7 @@ class basic_json
 
                 case basic_json::value_t::null:
                 {
-                    throw std::out_of_range("cannot get value");
+                    JSON_THROW(std::out_of_range("cannot get value"));
                 }
 
                 default:
@@ -8879,7 +8895,7 @@ class basic_json
                         return *m_object;
                     }
 
-                    throw std::out_of_range("cannot get value");
+                    JSON_THROW(std::out_of_range("cannot get value"));
                 }
             }
         }
@@ -8897,7 +8913,7 @@ class basic_json
                 return m_it.object_iterator->first;
             }
 
-            throw std::domain_error("cannot use key() for non-object iterators");
+            JSON_THROW(std::domain_error("cannot use key() for non-object iterators"));
         }
 
         /*!
@@ -9082,7 +9098,7 @@ class basic_json
             // immediately abort if stream is erroneous
             if (s.fail())
             {
-                throw std::invalid_argument("stream error");
+                JSON_THROW(std::invalid_argument("stream error"));
             }
 
             // fill buffer
@@ -9149,7 +9165,7 @@ class basic_json
                 }
                 else
                 {
-                    throw std::invalid_argument("missing or wrong low surrogate");
+                    JSON_THROW(std::invalid_argument("missing or wrong low surrogate"));
                 }
             }
 
@@ -9183,7 +9199,7 @@ class basic_json
             }
             else
             {
-                throw std::out_of_range("code points above 0x10FFFF are invalid");
+                JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid"));
             }
 
             return result;
@@ -10415,7 +10431,7 @@ basic_json_parser_66:
                                 // make sure there is a subsequent unicode
                                 if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
                                 {
-                                    throw std::invalid_argument("missing low surrogate");
+                                    JSON_THROW(std::invalid_argument("missing low surrogate"));
                                 }
 
                                 // get code yyyy from uxxxx\uyyyy
@@ -10428,7 +10444,7 @@ basic_json_parser_66:
                             else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF)
                             {
                                 // we found a lone low surrogate
-                                throw std::invalid_argument("missing high surrogate");
+                                JSON_THROW(std::invalid_argument("missing high surrogate"));
                             }
                             else
                             {
@@ -10906,7 +10922,7 @@ basic_json_parser_66:
                               "'") :
                               lexer::token_type_name(last_token));
                 error_msg += "; expected " + lexer::token_type_name(t);
-                throw std::invalid_argument(error_msg);
+                JSON_THROW(std::invalid_argument(error_msg));
             }
         }
 
@@ -10918,7 +10934,7 @@ basic_json_parser_66:
                 error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
                               "'") :
                               lexer::token_type_name(last_token));
-                throw std::invalid_argument(error_msg);
+                JSON_THROW(std::invalid_argument(error_msg));
             }
         }
 
@@ -11014,7 +11030,7 @@ basic_json_parser_66:
         {
             if (is_root())
             {
-                throw std::domain_error("JSON pointer has no parent");
+                JSON_THROW(std::domain_error("JSON pointer has no parent"));
             }
 
             auto last = reference_tokens.back();
@@ -11032,7 +11048,7 @@ basic_json_parser_66:
         {
             if (is_root())
             {
-                throw std::domain_error("JSON pointer has no parent");
+                JSON_THROW(std::domain_error("JSON pointer has no parent"));
             }
 
             json_pointer result = *this;
@@ -11093,7 +11109,7 @@ basic_json_parser_66:
                     */
                     default:
                     {
-                        throw std::domain_error("invalid value to unflatten");
+                        JSON_THROW(std::domain_error("invalid value to unflatten"));
                     }
                 }
             }
@@ -11161,7 +11177,7 @@ basic_json_parser_66:
                         // error condition (cf. RFC 6901, Sect. 4)
                         if (reference_token.size() > 1 and reference_token[0] == '0')
                         {
-                            throw std::domain_error("array index must not begin with '0'");
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
                         }
 
                         if (reference_token == "-")
@@ -11179,7 +11195,7 @@ basic_json_parser_66:
 
                     default:
                     {
-                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
                     }
                 }
             }
@@ -11213,7 +11229,7 @@ basic_json_parser_66:
                         // error condition (cf. RFC 6901, Sect. 4)
                         if (reference_token.size() > 1 and reference_token[0] == '0')
                         {
-                            throw std::domain_error("array index must not begin with '0'");
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
                         }
 
                         // note: at performs range check
@@ -11223,7 +11239,7 @@ basic_json_parser_66:
 
                     default:
                     {
-                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
                     }
                 }
             }
@@ -11265,7 +11281,7 @@ basic_json_parser_66:
                         // error condition (cf. RFC 6901, Sect. 4)
                         if (reference_token.size() > 1 and reference_token[0] == '0')
                         {
-                            throw std::domain_error("array index must not begin with '0'");
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
                         }
 
                         // use unchecked array access
@@ -11275,7 +11291,7 @@ basic_json_parser_66:
 
                     default:
                     {
-                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
                     }
                 }
             }
@@ -11309,7 +11325,7 @@ basic_json_parser_66:
                         // error condition (cf. RFC 6901, Sect. 4)
                         if (reference_token.size() > 1 and reference_token[0] == '0')
                         {
-                            throw std::domain_error("array index must not begin with '0'");
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
                         }
 
                         // note: at performs range check
@@ -11319,7 +11335,7 @@ basic_json_parser_66:
 
                     default:
                     {
-                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
                     }
                 }
             }
@@ -11341,7 +11357,7 @@ basic_json_parser_66:
             // check if nonempty reference string begins with slash
             if (reference_string[0] != '/')
             {
-                throw std::domain_error("JSON pointer must be empty or begin with '/'");
+                JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'"));
             }
 
             // extract the reference tokens:
@@ -11376,7 +11392,7 @@ basic_json_parser_66:
                             (reference_token[pos + 1] != '0' and
                              reference_token[pos + 1] != '1'))
                     {
-                        throw std::domain_error("escape error: '~' must be followed with '0' or '1'");
+                        JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'"));
                     }
                 }
 
@@ -11502,7 +11518,7 @@ basic_json_parser_66:
         {
             if (not value.is_object())
             {
-                throw std::domain_error("only objects can be unflattened");
+                JSON_THROW(std::domain_error("only objects can be unflattened"));
             }
 
             basic_json result;
@@ -11512,7 +11528,7 @@ basic_json_parser_66:
             {
                 if (not element.second.is_primitive())
                 {
-                    throw std::domain_error("values in object must be primitive");
+                    JSON_THROW(std::domain_error("values in object must be primitive"));
                 }
 
                 // assign value to reference pointed to by JSON pointer; Note
@@ -11841,7 +11857,7 @@ basic_json_parser_66:
                             if (static_cast<size_type>(idx) > parent.size())
                             {
                                 // avoid undefined behavior
-                                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+                                JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range"));
                             }
                             else
                             {
@@ -11879,7 +11895,7 @@ basic_json_parser_66:
                 }
                 else
                 {
-                    throw std::out_of_range("key '" + last_path + "' not found");
+                    JSON_THROW(std::out_of_range("key '" + last_path + "' not found"));
                 }
             }
             else if (parent.is_array())
@@ -11893,7 +11909,7 @@ basic_json_parser_66:
         if (not json_patch.is_array())
         {
             // a JSON patch must be an array of objects
-            throw std::invalid_argument("JSON patch must be an array of objects");
+            JSON_THROW(std::invalid_argument("JSON patch must be an array of objects"));
         }
 
         // iterate and apply th eoperations
@@ -11913,13 +11929,13 @@ basic_json_parser_66:
                 // check if desired value is present
                 if (it == val.m_value.object->end())
                 {
-                    throw std::invalid_argument(error_msg + " must have member '" + member + "'");
+                    JSON_THROW(std::invalid_argument(error_msg + " must have member '" + member + "'"));
                 }
 
                 // check if result is of type string
                 if (string_type and not it->second.is_string())
                 {
-                    throw std::invalid_argument(error_msg + " must have string member '" + member + "'");
+                    JSON_THROW(std::invalid_argument(error_msg + " must have string member '" + member + "'"));
                 }
 
                 // no error: return value
@@ -11929,7 +11945,7 @@ basic_json_parser_66:
             // type check
             if (not val.is_object())
             {
-                throw std::invalid_argument("JSON patch must be an array of objects");
+                JSON_THROW(std::invalid_argument("JSON patch must be an array of objects"));
             }
 
             // collect mandatory members
@@ -11988,13 +12004,13 @@ basic_json_parser_66:
                 case patch_operations::test:
                 {
                     bool success = false;
-                    try
+                    JSON_TRY
                     {
                         // check if "value" matches the one at "path"
                         // the "path" location must exist - use at()
                         success = (result.at(ptr) == get_value("test", "value", false));
                     }
-                    catch (std::out_of_range&)
+                    JSON_CATCH (std::out_of_range&)
                     {
                         // ignore out of range errors: success remains false
                     }
@@ -12002,7 +12018,7 @@ basic_json_parser_66:
                     // throw an exception if test fails
                     if (not success)
                     {
-                        throw std::domain_error("unsuccessful: " + val.dump());
+                        JSON_THROW(std::domain_error("unsuccessful: " + val.dump()));
                     }
 
                     break;
@@ -12012,7 +12028,7 @@ basic_json_parser_66:
                 {
                     // op must be "add", "remove", "replace", "move", "copy", or
                     // "test"
-                    throw std::invalid_argument("operation value '" + op + "' is invalid");
+                    JSON_THROW(std::invalid_argument("operation value '" + op + "' is invalid"));
                 }
             }
         }
@@ -12285,4 +12301,10 @@ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std
     #pragma GCC diagnostic pop
 #endif
 
+// clean up
+#undef JSON_THROW
+#undef JSON_TRY
+#undef JSON_CATCH
+#undef JSON_DEPRECATED
+
 #endif
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index c7171a27..31accc98 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -88,6 +88,17 @@ SOFTWARE.
     #define JSON_DEPRECATED
 #endif
 
+// allow to disable exceptions
+#if defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS)
+    #define JSON_THROW(exception) std::abort()
+    #define JSON_TRY if(true)
+    #define JSON_CATCH(exception) if(false)
+#else
+    #define JSON_THROW(exception) throw exception
+    #define JSON_TRY try
+    #define JSON_CATCH(exception) catch(exception)
+#endif
+
 /*!
 @brief namespace for Niels Lohmann
 @see https://github.com/nlohmann
@@ -945,7 +956,7 @@ class basic_json
                 {
                     if (t == value_t::null)
                     {
-                        throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10"); // LCOV_EXCL_LINE
+                        JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10")); // LCOV_EXCL_LINE
                     }
                     break;
                 }
@@ -1717,7 +1728,7 @@ class basic_json
             // if object is wanted but impossible, throw an exception
             if (manual_type == value_t::object and not is_an_object)
             {
-                throw std::domain_error("cannot create object from initializer list");
+                JSON_THROW(std::domain_error("cannot create object from initializer list"));
             }
         }
 
@@ -1895,7 +1906,7 @@ class basic_json
         // make sure iterator fits the current value
         if (first.m_object != last.m_object)
         {
-            throw std::domain_error("iterators are not compatible");
+            JSON_THROW(std::domain_error("iterators are not compatible"));
         }
 
         // copy type from first iterator
@@ -1912,7 +1923,7 @@ class basic_json
             {
                 if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
                 {
-                    throw std::out_of_range("iterators out of range");
+                    JSON_THROW(std::out_of_range("iterators out of range"));
                 }
                 break;
             }
@@ -1971,7 +1982,7 @@ class basic_json
 
             default:
             {
-                throw std::domain_error("cannot use construct with iterators from " + first.m_object->type_name());
+                JSON_THROW(std::domain_error("cannot use construct with iterators from " + first.m_object->type_name()));
             }
         }
 
@@ -2655,7 +2666,7 @@ class basic_json
             return T(m_value.object->begin(), m_value.object->end());
         }
 
-        throw std::domain_error("type must be object, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be object, but is " + type_name()));
     }
 
     /// get an object (explicit)
@@ -2666,7 +2677,7 @@ class basic_json
             return *(m_value.object);
         }
 
-        throw std::domain_error("type must be object, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be object, but is " + type_name()));
     }
 
     /// get an array (explicit)
@@ -2689,7 +2700,7 @@ class basic_json
             return to_vector;
         }
 
-        throw std::domain_error("type must be array, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
     }
 
     /// get an array (explicit)
@@ -2710,7 +2721,7 @@ class basic_json
             return to_vector;
         }
 
-        throw std::domain_error("type must be array, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
     }
 
     /// get an array (explicit)
@@ -2724,7 +2735,7 @@ class basic_json
             return T(m_value.array->begin(), m_value.array->end());
         }
 
-        throw std::domain_error("type must be array, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
     }
 
     /// get an array (explicit)
@@ -2735,7 +2746,7 @@ class basic_json
             return *(m_value.array);
         }
 
-        throw std::domain_error("type must be array, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
     }
 
     /// get a string (explicit)
@@ -2748,7 +2759,7 @@ class basic_json
             return *m_value.string;
         }
 
-        throw std::domain_error("type must be string, but is " + type_name());
+        JSON_THROW(std::domain_error("type must be string, but is " + type_name()));
     }
 
     /// get a number (explicit)
@@ -2775,17 +2786,22 @@ class basic_json
 
             default:
             {
-                throw std::domain_error("type must be number, but is " + type_name());
+                JSON_THROW(std::domain_error("type must be number, but is " + type_name()));
             }
         }
     }
 
     /// get a boolean (explicit)
-    constexpr boolean_t get_impl(boolean_t* /*unused*/) const
+    boolean_t get_impl(boolean_t* /*unused*/) const
     {
-        return is_boolean()
-               ? m_value.boolean
-               : throw std::domain_error("type must be boolean, but is " + type_name());
+        if (is_boolean())
+        {
+            return m_value.boolean;
+        }
+        else
+        {
+            JSON_THROW(std::domain_error("type must be boolean, but is " + type_name()));
+        }
     }
 
     /// get a pointer to the value (object)
@@ -3197,19 +3213,19 @@ class basic_json
         // at only works for arrays
         if (is_array())
         {
-            try
+            JSON_TRY
             {
                 return m_value.array->at(idx);
             }
-            catch (std::out_of_range&)
+            JSON_CATCH (std::out_of_range&)
             {
                 // create better exception explanation
-                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+                JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range"));
             }
         }
         else
         {
-            throw std::domain_error("cannot use at() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use at() with " + type_name()));
         }
     }
 
@@ -3240,19 +3256,19 @@ class basic_json
         // at only works for arrays
         if (is_array())
         {
-            try
+            JSON_TRY
             {
                 return m_value.array->at(idx);
             }
-            catch (std::out_of_range&)
+            JSON_CATCH (std::out_of_range&)
             {
                 // create better exception explanation
-                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+                JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range"));
             }
         }
         else
         {
-            throw std::domain_error("cannot use at() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use at() with " + type_name()));
         }
     }
 
@@ -3287,19 +3303,19 @@ class basic_json
         // at only works for objects
         if (is_object())
         {
-            try
+            JSON_TRY
             {
                 return m_value.object->at(key);
             }
-            catch (std::out_of_range&)
+            JSON_CATCH (std::out_of_range&)
             {
                 // create better exception explanation
-                throw std::out_of_range("key '" + key + "' not found");
+                JSON_THROW(std::out_of_range("key '" + key + "' not found"));
             }
         }
         else
         {
-            throw std::domain_error("cannot use at() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use at() with " + type_name()));
         }
     }
 
@@ -3334,19 +3350,19 @@ class basic_json
         // at only works for objects
         if (is_object())
         {
-            try
+            JSON_TRY
             {
                 return m_value.object->at(key);
             }
-            catch (std::out_of_range&)
+            JSON_CATCH (std::out_of_range&)
             {
                 // create better exception explanation
-                throw std::out_of_range("key '" + key + "' not found");
+                JSON_THROW(std::out_of_range("key '" + key + "' not found"));
             }
         }
         else
         {
-            throw std::domain_error("cannot use at() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use at() with " + type_name()));
         }
     }
 
@@ -3399,7 +3415,7 @@ class basic_json
             return m_value.array->operator[](idx);
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3429,7 +3445,7 @@ class basic_json
             return m_value.array->operator[](idx);
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3475,7 +3491,7 @@ class basic_json
             return m_value.object->operator[](key);
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3517,7 +3533,7 @@ class basic_json
             return m_value.object->find(key)->second;
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3632,7 +3648,7 @@ class basic_json
             return m_value.object->operator[](key);
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3675,7 +3691,7 @@ class basic_json
             return m_value.object->find(key)->second;
         }
 
-        throw std::domain_error("cannot use operator[] with " + type_name());
+        JSON_THROW(std::domain_error("cannot use operator[] with " + type_name()));
     }
 
     /*!
@@ -3744,7 +3760,7 @@ class basic_json
         }
         else
         {
-            throw std::domain_error("cannot use value() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use value() with " + type_name()));
         }
     }
 
@@ -3806,17 +3822,17 @@ class basic_json
         if (is_object())
         {
             // if pointer resolves a value, return it or use default value
-            try
+            JSON_TRY
             {
                 return ptr.get_checked(this);
             }
-            catch (std::out_of_range&)
+            JSON_CATCH (std::out_of_range&)
             {
                 return default_value;
             }
         }
 
-        throw std::domain_error("cannot use value() with " + type_name());
+        JSON_THROW(std::domain_error("cannot use value() with " + type_name()));
     }
 
     /*!
@@ -3967,7 +3983,7 @@ class basic_json
         // make sure iterator fits the current value
         if (this != pos.m_object)
         {
-            throw std::domain_error("iterator does not fit current value");
+            JSON_THROW(std::domain_error("iterator does not fit current value"));
         }
 
         IteratorType result = end();
@@ -3982,7 +3998,7 @@ class basic_json
             {
                 if (not pos.m_it.primitive_iterator.is_begin())
                 {
-                    throw std::out_of_range("iterator out of range");
+                    JSON_THROW(std::out_of_range("iterator out of range"));
                 }
 
                 if (is_string())
@@ -4012,7 +4028,7 @@ class basic_json
 
             default:
             {
-                throw std::domain_error("cannot use erase() with " + type_name());
+                JSON_THROW(std::domain_error("cannot use erase() with " + type_name()));
             }
         }
 
@@ -4074,7 +4090,7 @@ class basic_json
         // make sure iterator fits the current value
         if (this != first.m_object or this != last.m_object)
         {
-            throw std::domain_error("iterators do not fit current value");
+            JSON_THROW(std::domain_error("iterators do not fit current value"));
         }
 
         IteratorType result = end();
@@ -4089,7 +4105,7 @@ class basic_json
             {
                 if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
                 {
-                    throw std::out_of_range("iterators out of range");
+                    JSON_THROW(std::out_of_range("iterators out of range"));
                 }
 
                 if (is_string())
@@ -4121,7 +4137,7 @@ class basic_json
 
             default:
             {
-                throw std::domain_error("cannot use erase() with " + type_name());
+                JSON_THROW(std::domain_error("cannot use erase() with " + type_name()));
             }
         }
 
@@ -4165,7 +4181,7 @@ class basic_json
             return m_value.object->erase(key);
         }
 
-        throw std::domain_error("cannot use erase() with " + type_name());
+        JSON_THROW(std::domain_error("cannot use erase() with " + type_name()));
     }
 
     /*!
@@ -4199,14 +4215,14 @@ class basic_json
         {
             if (idx >= size())
             {
-                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+                JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range"));
             }
 
             m_value.array->erase(m_value.array->begin() + static_cast<difference_type>(idx));
         }
         else
         {
-            throw std::domain_error("cannot use erase() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use erase() with " + type_name()));
         }
     }
 
@@ -4924,7 +4940,7 @@ class basic_json
         // push_back only works for null objects or arrays
         if (not(is_null() or is_array()))
         {
-            throw std::domain_error("cannot use push_back() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use push_back() with " + type_name()));
         }
 
         // transform null object into an array
@@ -4960,7 +4976,7 @@ class basic_json
         // push_back only works for null objects or arrays
         if (not(is_null() or is_array()))
         {
-            throw std::domain_error("cannot use push_back() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use push_back() with " + type_name()));
         }
 
         // transform null object into an array
@@ -5010,7 +5026,7 @@ class basic_json
         // push_back only works for null objects or objects
         if (not(is_null() or is_object()))
         {
-            throw std::domain_error("cannot use push_back() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use push_back() with " + type_name()));
         }
 
         // transform null object into an object
@@ -5110,7 +5126,7 @@ class basic_json
         // emplace_back only works for null objects or arrays
         if (not(is_null() or is_array()))
         {
-            throw std::domain_error("cannot use emplace_back() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use emplace_back() with " + type_name()));
         }
 
         // transform null object into an array
@@ -5158,7 +5174,7 @@ class basic_json
         // emplace only works for null objects or arrays
         if (not(is_null() or is_object()))
         {
-            throw std::domain_error("cannot use emplace() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use emplace() with " + type_name()));
         }
 
         // transform null object into an object
@@ -5209,7 +5225,7 @@ class basic_json
             // check if iterator pos fits to this JSON value
             if (pos.m_object != this)
             {
-                throw std::domain_error("iterator does not fit current value");
+                JSON_THROW(std::domain_error("iterator does not fit current value"));
             }
 
             // insert to array and return iterator
@@ -5218,7 +5234,7 @@ class basic_json
             return result;
         }
 
-        throw std::domain_error("cannot use insert() with " + type_name());
+        JSON_THROW(std::domain_error("cannot use insert() with " + type_name()));
     }
 
     /*!
@@ -5262,7 +5278,7 @@ class basic_json
             // check if iterator pos fits to this JSON value
             if (pos.m_object != this)
             {
-                throw std::domain_error("iterator does not fit current value");
+                JSON_THROW(std::domain_error("iterator does not fit current value"));
             }
 
             // insert to array and return iterator
@@ -5271,7 +5287,7 @@ class basic_json
             return result;
         }
 
-        throw std::domain_error("cannot use insert() with " + type_name());
+        JSON_THROW(std::domain_error("cannot use insert() with " + type_name()));
     }
 
     /*!
@@ -5309,24 +5325,24 @@ class basic_json
         // insert only works for arrays
         if (not is_array())
         {
-            throw std::domain_error("cannot use insert() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use insert() with " + type_name()));
         }
 
         // check if iterator pos fits to this JSON value
         if (pos.m_object != this)
         {
-            throw std::domain_error("iterator does not fit current value");
+            JSON_THROW(std::domain_error("iterator does not fit current value"));
         }
 
         // check if range iterators belong to the same JSON object
         if (first.m_object != last.m_object)
         {
-            throw std::domain_error("iterators do not fit");
+            JSON_THROW(std::domain_error("iterators do not fit"));
         }
 
         if (first.m_object == this or last.m_object == this)
         {
-            throw std::domain_error("passed iterators may not belong to container");
+            JSON_THROW(std::domain_error("passed iterators may not belong to container"));
         }
 
         // insert to array and return iterator
@@ -5367,13 +5383,13 @@ class basic_json
         // insert only works for arrays
         if (not is_array())
         {
-            throw std::domain_error("cannot use insert() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use insert() with " + type_name()));
         }
 
         // check if iterator pos fits to this JSON value
         if (pos.m_object != this)
         {
-            throw std::domain_error("iterator does not fit current value");
+            JSON_THROW(std::domain_error("iterator does not fit current value"));
         }
 
         // insert to array and return iterator
@@ -5440,7 +5456,7 @@ class basic_json
         }
         else
         {
-            throw std::domain_error("cannot use swap() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use swap() with " + type_name()));
         }
     }
 
@@ -5473,7 +5489,7 @@ class basic_json
         }
         else
         {
-            throw std::domain_error("cannot use swap() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use swap() with " + type_name()));
         }
     }
 
@@ -5506,7 +5522,7 @@ class basic_json
         }
         else
         {
-            throw std::domain_error("cannot use swap() with " + type_name());
+            JSON_THROW(std::domain_error("cannot use swap() with " + type_name()));
         }
     }
 
@@ -6350,7 +6366,7 @@ class basic_json
     {
         if (current_index + sizeof(T) + 1 > vec.size())
         {
-            throw std::out_of_range("cannot read " + std::to_string(sizeof(T)) + " bytes from vector");
+            JSON_THROW(std::out_of_range("cannot read " + std::to_string(sizeof(T)) + " bytes from vector"));
         }
 
         T result;
@@ -6900,19 +6916,19 @@ class basic_json
         // simple case: requested length is greater than the vector's length
         if (len > size or offset > size)
         {
-            throw std::out_of_range("len out of range");
+            JSON_THROW(std::out_of_range("len out of range"));
         }
 
         // second case: adding offset would result in overflow
         if ((size > (std::numeric_limits<size_t>::max() - offset)))
         {
-            throw std::out_of_range("len+offset out of range");
+            JSON_THROW(std::out_of_range("len+offset out of range"));
         }
 
         // last case: reading past the end of the vector
         if (len + offset > size)
         {
-            throw std::out_of_range("len+offset out of range");
+            JSON_THROW(std::out_of_range("len+offset out of range"));
         }
     }
 
@@ -7148,7 +7164,7 @@ class basic_json
 
                 default:
                 {
-                    throw std::invalid_argument("error parsing a msgpack @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx])));
+                    JSON_THROW(std::invalid_argument("error parsing a msgpack @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx]))));
                 }
             }
         }
@@ -7631,7 +7647,7 @@ class basic_json
 
             default: // anything else (0xFF is handled inside the other types)
             {
-                throw std::invalid_argument("error parsing a CBOR @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx])));
+                JSON_THROW(std::invalid_argument("error parsing a CBOR @ " + std::to_string(current_idx) + ": " + std::to_string(static_cast<int>(v[current_idx]))));
             }
         }
     }
@@ -8521,7 +8537,7 @@ class basic_json
 
                 case basic_json::value_t::null:
                 {
-                    throw std::out_of_range("cannot get value");
+                    JSON_THROW(std::out_of_range("cannot get value"));
                 }
 
                 default:
@@ -8531,7 +8547,7 @@ class basic_json
                         return *m_object;
                     }
 
-                    throw std::out_of_range("cannot get value");
+                    JSON_THROW(std::out_of_range("cannot get value"));
                 }
             }
         }
@@ -8565,7 +8581,7 @@ class basic_json
                         return m_object;
                     }
 
-                    throw std::out_of_range("cannot get value");
+                    JSON_THROW(std::out_of_range("cannot get value"));
                 }
             }
         }
@@ -8665,7 +8681,7 @@ class basic_json
             // if objects are not the same, the comparison is undefined
             if (m_object != other.m_object)
             {
-                throw std::domain_error("cannot compare iterators of different containers");
+                JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
             }
 
             assert(m_object != nullptr);
@@ -8707,7 +8723,7 @@ class basic_json
             // if objects are not the same, the comparison is undefined
             if (m_object != other.m_object)
             {
-                throw std::domain_error("cannot compare iterators of different containers");
+                JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
             }
 
             assert(m_object != nullptr);
@@ -8716,7 +8732,7 @@ class basic_json
             {
                 case basic_json::value_t::object:
                 {
-                    throw std::domain_error("cannot compare order of object iterators");
+                    JSON_THROW(std::domain_error("cannot compare order of object iterators"));
                 }
 
                 case basic_json::value_t::array:
@@ -8770,7 +8786,7 @@ class basic_json
             {
                 case basic_json::value_t::object:
                 {
-                    throw std::domain_error("cannot use offsets with object iterators");
+                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
                 }
 
                 case basic_json::value_t::array:
@@ -8832,7 +8848,7 @@ class basic_json
             {
                 case basic_json::value_t::object:
                 {
-                    throw std::domain_error("cannot use offsets with object iterators");
+                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
                 }
 
                 case basic_json::value_t::array:
@@ -8859,7 +8875,7 @@ class basic_json
             {
                 case basic_json::value_t::object:
                 {
-                    throw std::domain_error("cannot use operator[] for object iterators");
+                    JSON_THROW(std::domain_error("cannot use operator[] for object iterators"));
                 }
 
                 case basic_json::value_t::array:
@@ -8869,7 +8885,7 @@ class basic_json
 
                 case basic_json::value_t::null:
                 {
-                    throw std::out_of_range("cannot get value");
+                    JSON_THROW(std::out_of_range("cannot get value"));
                 }
 
                 default:
@@ -8879,7 +8895,7 @@ class basic_json
                         return *m_object;
                     }
 
-                    throw std::out_of_range("cannot get value");
+                    JSON_THROW(std::out_of_range("cannot get value"));
                 }
             }
         }
@@ -8897,7 +8913,7 @@ class basic_json
                 return m_it.object_iterator->first;
             }
 
-            throw std::domain_error("cannot use key() for non-object iterators");
+            JSON_THROW(std::domain_error("cannot use key() for non-object iterators"));
         }
 
         /*!
@@ -9082,7 +9098,7 @@ class basic_json
             // immediately abort if stream is erroneous
             if (s.fail())
             {
-                throw std::invalid_argument("stream error");
+                JSON_THROW(std::invalid_argument("stream error"));
             }
 
             // fill buffer
@@ -9149,7 +9165,7 @@ class basic_json
                 }
                 else
                 {
-                    throw std::invalid_argument("missing or wrong low surrogate");
+                    JSON_THROW(std::invalid_argument("missing or wrong low surrogate"));
                 }
             }
 
@@ -9183,7 +9199,7 @@ class basic_json
             }
             else
             {
-                throw std::out_of_range("code points above 0x10FFFF are invalid");
+                JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid"));
             }
 
             return result;
@@ -9565,7 +9581,7 @@ class basic_json
                                 // make sure there is a subsequent unicode
                                 if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
                                 {
-                                    throw std::invalid_argument("missing low surrogate");
+                                    JSON_THROW(std::invalid_argument("missing low surrogate"));
                                 }
 
                                 // get code yyyy from uxxxx\uyyyy
@@ -9578,7 +9594,7 @@ class basic_json
                             else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF)
                             {
                                 // we found a lone low surrogate
-                                throw std::invalid_argument("missing high surrogate");
+                                JSON_THROW(std::invalid_argument("missing high surrogate"));
                             }
                             else
                             {
@@ -10056,7 +10072,7 @@ class basic_json
                               "'") :
                               lexer::token_type_name(last_token));
                 error_msg += "; expected " + lexer::token_type_name(t);
-                throw std::invalid_argument(error_msg);
+                JSON_THROW(std::invalid_argument(error_msg));
             }
         }
 
@@ -10068,7 +10084,7 @@ class basic_json
                 error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
                               "'") :
                               lexer::token_type_name(last_token));
-                throw std::invalid_argument(error_msg);
+                JSON_THROW(std::invalid_argument(error_msg));
             }
         }
 
@@ -10164,7 +10180,7 @@ class basic_json
         {
             if (is_root())
             {
-                throw std::domain_error("JSON pointer has no parent");
+                JSON_THROW(std::domain_error("JSON pointer has no parent"));
             }
 
             auto last = reference_tokens.back();
@@ -10182,7 +10198,7 @@ class basic_json
         {
             if (is_root())
             {
-                throw std::domain_error("JSON pointer has no parent");
+                JSON_THROW(std::domain_error("JSON pointer has no parent"));
             }
 
             json_pointer result = *this;
@@ -10243,7 +10259,7 @@ class basic_json
                     */
                     default:
                     {
-                        throw std::domain_error("invalid value to unflatten");
+                        JSON_THROW(std::domain_error("invalid value to unflatten"));
                     }
                 }
             }
@@ -10311,7 +10327,7 @@ class basic_json
                         // error condition (cf. RFC 6901, Sect. 4)
                         if (reference_token.size() > 1 and reference_token[0] == '0')
                         {
-                            throw std::domain_error("array index must not begin with '0'");
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
                         }
 
                         if (reference_token == "-")
@@ -10329,7 +10345,7 @@ class basic_json
 
                     default:
                     {
-                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
                     }
                 }
             }
@@ -10363,7 +10379,7 @@ class basic_json
                         // error condition (cf. RFC 6901, Sect. 4)
                         if (reference_token.size() > 1 and reference_token[0] == '0')
                         {
-                            throw std::domain_error("array index must not begin with '0'");
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
                         }
 
                         // note: at performs range check
@@ -10373,7 +10389,7 @@ class basic_json
 
                     default:
                     {
-                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
                     }
                 }
             }
@@ -10415,7 +10431,7 @@ class basic_json
                         // error condition (cf. RFC 6901, Sect. 4)
                         if (reference_token.size() > 1 and reference_token[0] == '0')
                         {
-                            throw std::domain_error("array index must not begin with '0'");
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
                         }
 
                         // use unchecked array access
@@ -10425,7 +10441,7 @@ class basic_json
 
                     default:
                     {
-                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
                     }
                 }
             }
@@ -10459,7 +10475,7 @@ class basic_json
                         // error condition (cf. RFC 6901, Sect. 4)
                         if (reference_token.size() > 1 and reference_token[0] == '0')
                         {
-                            throw std::domain_error("array index must not begin with '0'");
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
                         }
 
                         // note: at performs range check
@@ -10469,7 +10485,7 @@ class basic_json
 
                     default:
                     {
-                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
                     }
                 }
             }
@@ -10491,7 +10507,7 @@ class basic_json
             // check if nonempty reference string begins with slash
             if (reference_string[0] != '/')
             {
-                throw std::domain_error("JSON pointer must be empty or begin with '/'");
+                JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'"));
             }
 
             // extract the reference tokens:
@@ -10526,7 +10542,7 @@ class basic_json
                             (reference_token[pos + 1] != '0' and
                              reference_token[pos + 1] != '1'))
                     {
-                        throw std::domain_error("escape error: '~' must be followed with '0' or '1'");
+                        JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'"));
                     }
                 }
 
@@ -10652,7 +10668,7 @@ class basic_json
         {
             if (not value.is_object())
             {
-                throw std::domain_error("only objects can be unflattened");
+                JSON_THROW(std::domain_error("only objects can be unflattened"));
             }
 
             basic_json result;
@@ -10662,7 +10678,7 @@ class basic_json
             {
                 if (not element.second.is_primitive())
                 {
-                    throw std::domain_error("values in object must be primitive");
+                    JSON_THROW(std::domain_error("values in object must be primitive"));
                 }
 
                 // assign value to reference pointed to by JSON pointer; Note
@@ -10991,7 +11007,7 @@ class basic_json
                             if (static_cast<size_type>(idx) > parent.size())
                             {
                                 // avoid undefined behavior
-                                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+                                JSON_THROW(std::out_of_range("array index " + std::to_string(idx) + " is out of range"));
                             }
                             else
                             {
@@ -11029,7 +11045,7 @@ class basic_json
                 }
                 else
                 {
-                    throw std::out_of_range("key '" + last_path + "' not found");
+                    JSON_THROW(std::out_of_range("key '" + last_path + "' not found"));
                 }
             }
             else if (parent.is_array())
@@ -11043,7 +11059,7 @@ class basic_json
         if (not json_patch.is_array())
         {
             // a JSON patch must be an array of objects
-            throw std::invalid_argument("JSON patch must be an array of objects");
+            JSON_THROW(std::invalid_argument("JSON patch must be an array of objects"));
         }
 
         // iterate and apply th eoperations
@@ -11063,13 +11079,13 @@ class basic_json
                 // check if desired value is present
                 if (it == val.m_value.object->end())
                 {
-                    throw std::invalid_argument(error_msg + " must have member '" + member + "'");
+                    JSON_THROW(std::invalid_argument(error_msg + " must have member '" + member + "'"));
                 }
 
                 // check if result is of type string
                 if (string_type and not it->second.is_string())
                 {
-                    throw std::invalid_argument(error_msg + " must have string member '" + member + "'");
+                    JSON_THROW(std::invalid_argument(error_msg + " must have string member '" + member + "'"));
                 }
 
                 // no error: return value
@@ -11079,7 +11095,7 @@ class basic_json
             // type check
             if (not val.is_object())
             {
-                throw std::invalid_argument("JSON patch must be an array of objects");
+                JSON_THROW(std::invalid_argument("JSON patch must be an array of objects"));
             }
 
             // collect mandatory members
@@ -11138,13 +11154,13 @@ class basic_json
                 case patch_operations::test:
                 {
                     bool success = false;
-                    try
+                    JSON_TRY
                     {
                         // check if "value" matches the one at "path"
                         // the "path" location must exist - use at()
                         success = (result.at(ptr) == get_value("test", "value", false));
                     }
-                    catch (std::out_of_range&)
+                    JSON_CATCH (std::out_of_range&)
                     {
                         // ignore out of range errors: success remains false
                     }
@@ -11152,7 +11168,7 @@ class basic_json
                     // throw an exception if test fails
                     if (not success)
                     {
-                        throw std::domain_error("unsuccessful: " + val.dump());
+                        JSON_THROW(std::domain_error("unsuccessful: " + val.dump()));
                     }
 
                     break;
@@ -11162,7 +11178,7 @@ class basic_json
                 {
                     // op must be "add", "remove", "replace", "move", "copy", or
                     // "test"
-                    throw std::invalid_argument("operation value '" + op + "' is invalid");
+                    JSON_THROW(std::invalid_argument("operation value '" + op + "' is invalid"));
                 }
             }
         }
@@ -11435,4 +11451,10 @@ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std
     #pragma GCC diagnostic pop
 #endif
 
+// clean up
+#undef JSON_THROW
+#undef JSON_TRY
+#undef JSON_CATCH
+#undef JSON_DEPRECATED
+
 #endif
diff --git a/test/Makefile b/test/Makefile
index 3d5595d2..0b235ba1 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -75,7 +75,7 @@ test-%: src/unit-%.cpp ../src/json.hpp thirdparty/catch/catch.hpp
 	@echo "[CXXLD] $@"
 	@$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -DCATCH_CONFIG_MAIN $< -o $@
 
-TEST_PATTERN = "*"
+TEST_PATTERN ?= "*"
 TEST_PREFIX = ""
 check: $(TESTCASES)
 	@cd .. ; for testcase in $(TESTCASES); do echo "Executing $$testcase..."; $(TEST_PREFIX)test/$$testcase $(TEST_PATTERN) || exit 1; done
diff --git a/test/src/unit-cbor.cpp b/test/src/unit-cbor.cpp
index 92238b79..43f9f433 100644
--- a/test/src/unit-cbor.cpp
+++ b/test/src/unit-cbor.cpp
@@ -1187,7 +1187,7 @@ TEST_CASE("single CBOR roundtrip")
     }
 }
 
-TEST_CASE("CBOR regressions")
+TEST_CASE("CBOR regressions", "[!throws]")
 {
     SECTION("fuzz test results")
     {
diff --git a/test/src/unit-element_access2.cpp b/test/src/unit-element_access2.cpp
index 1ba6aa61..f12da1e4 100644
--- a/test/src/unit-element_access2.cpp
+++ b/test/src/unit-element_access2.cpp
@@ -298,25 +298,6 @@ TEST_CASE("element access 2")
                     CHECK(j_const.value("/array"_json_pointer, json({10, 100})) == json({1, 2, 3}));
                 }
 
-                SECTION("access non-existing value")
-                {
-                    CHECK(j.value("/not/existing"_json_pointer, 2) == 2);
-                    CHECK(j.value("/not/existing"_json_pointer, 2u) == 2u);
-                    CHECK(j.value("/not/existing"_json_pointer, false) == false);
-                    CHECK(j.value("/not/existing"_json_pointer, "bar") == "bar");
-                    CHECK(j.value("/not/existing"_json_pointer, 12.34) == Approx(12.34));
-                    CHECK(j.value("/not/existing"_json_pointer, json({{"foo", "bar"}})) == json({{"foo", "bar"}}));
-                    CHECK(j.value("/not/existing"_json_pointer, json({10, 100})) == json({10, 100}));
-
-                    CHECK(j_const.value("/not/existing"_json_pointer, 2) == 2);
-                    CHECK(j_const.value("/not/existing"_json_pointer, 2u) == 2u);
-                    CHECK(j_const.value("/not/existing"_json_pointer, false) == false);
-                    CHECK(j_const.value("/not/existing"_json_pointer, "bar") == "bar");
-                    CHECK(j_const.value("/not/existing"_json_pointer, 12.34) == Approx(12.34));
-                    CHECK(j_const.value("/not/existing"_json_pointer, json({{"foo", "bar"}})) == json({{"foo", "bar"}}));
-                    CHECK(j_const.value("/not/existing"_json_pointer, json({10, 100})) == json({10, 100}));
-                }
-
                 SECTION("access on non-object type")
                 {
                     SECTION("null")
@@ -957,3 +938,37 @@ TEST_CASE("element access 2")
         }
     }
 }
+
+TEST_CASE("element access 2 (throwing tests)", "[!throws]")
+{
+    SECTION("object")
+    {
+        json j = {{"integer", 1}, {"unsigned", 1u}, {"floating", 42.23}, {"null", nullptr}, {"string", "hello world"}, {"boolean", true}, {"object", json::object()}, {"array", {1, 2, 3}}};
+        const json j_const = j;
+
+        SECTION("access specified element with default value")
+        {
+            SECTION("given a JSON pointer")
+            {
+                SECTION("access non-existing value")
+                {
+                    CHECK(j.value("/not/existing"_json_pointer, 2) == 2);
+                    CHECK(j.value("/not/existing"_json_pointer, 2u) == 2u);
+                    CHECK(j.value("/not/existing"_json_pointer, false) == false);
+                    CHECK(j.value("/not/existing"_json_pointer, "bar") == "bar");
+                    CHECK(j.value("/not/existing"_json_pointer, 12.34) == Approx(12.34));
+                    CHECK(j.value("/not/existing"_json_pointer, json({{"foo", "bar"}})) == json({{"foo", "bar"}}));
+                    CHECK(j.value("/not/existing"_json_pointer, json({10, 100})) == json({10, 100}));
+
+                    CHECK(j_const.value("/not/existing"_json_pointer, 2) == 2);
+                    CHECK(j_const.value("/not/existing"_json_pointer, 2u) == 2u);
+                    CHECK(j_const.value("/not/existing"_json_pointer, false) == false);
+                    CHECK(j_const.value("/not/existing"_json_pointer, "bar") == "bar");
+                    CHECK(j_const.value("/not/existing"_json_pointer, 12.34) == Approx(12.34));
+                    CHECK(j_const.value("/not/existing"_json_pointer, json({{"foo", "bar"}})) == json({{"foo", "bar"}}));
+                    CHECK(j_const.value("/not/existing"_json_pointer, json({10, 100})) == json({10, 100}));
+                }
+            }
+        }
+    }
+}

From a00149f8ee60a48fe7735d3eecd209b509e2168f Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Mon, 16 Jan 2017 22:36:58 +0100
Subject: [PATCH 034/174] :bug: fixed logic error

---
 .travis.yml       |  4 ++--
 src/json.hpp      | 10 +++++-----
 src/json.hpp.re2c | 10 +++++-----
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 6a154deb..fc7e5db0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -78,13 +78,13 @@ matrix:
     env:
       - COMPILER=g++-4.9
       - SPECIAL=no_exceptions
-      - TEST_PATTERN="-e \"*\""
+      - TEST_PATTERN=-e "*"
     addons:
       apt:
         sources: ['ubuntu-toolchain-r-test']
         packages: [g++-4.9, cppcheck]
     before_script:
-      - make FLAGS="-fno-exceptions"
+      - CPPFLAGS="-DJSON_NOEXCEPTION" make
 
   # Coveralls (http://gronlier.fr/blog/2015/01/adding-code-coverage-to-your-c-project/)
 
diff --git a/src/json.hpp b/src/json.hpp
index 69d49ec1..fa9b85f2 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -89,14 +89,14 @@ SOFTWARE.
 #endif
 
 // allow to disable exceptions
-#if defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS)
-    #define JSON_THROW(exception) std::abort()
-    #define JSON_TRY if(true)
-    #define JSON_CATCH(exception) if(false)
-#else
+#if not defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS)
     #define JSON_THROW(exception) throw exception
     #define JSON_TRY try
     #define JSON_CATCH(exception) catch(exception)
+#else
+    #define JSON_THROW(exception) std::abort()
+    #define JSON_TRY if(true)
+    #define JSON_CATCH(exception) if(false)
 #endif
 
 /*!
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 31accc98..886b9dde 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -89,14 +89,14 @@ SOFTWARE.
 #endif
 
 // allow to disable exceptions
-#if defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS)
-    #define JSON_THROW(exception) std::abort()
-    #define JSON_TRY if(true)
-    #define JSON_CATCH(exception) if(false)
-#else
+#if not defined(JSON_NOEXCEPTION) || defined(__EXCEPTIONS)
     #define JSON_THROW(exception) throw exception
     #define JSON_TRY try
     #define JSON_CATCH(exception) catch(exception)
+#else
+    #define JSON_THROW(exception) std::abort()
+    #define JSON_TRY if(true)
+    #define JSON_CATCH(exception) if(false)
 #endif
 
 /*!

From 87c5e32e1faf7f54a3f6241c288aa0c1a39c4a3f Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Mon, 16 Jan 2017 22:46:49 +0100
Subject: [PATCH 035/174] :bug: fixed escaping

---
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index fc7e5db0..ef5c6143 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -78,7 +78,7 @@ matrix:
     env:
       - COMPILER=g++-4.9
       - SPECIAL=no_exceptions
-      - TEST_PATTERN=-e "*"
+      - TEST_PATTERN=-e \"*\"
     addons:
       apt:
         sources: ['ubuntu-toolchain-r-test']

From 046f6da82f6e1d439b049f97ed4cb7cc5e0bf989 Mon Sep 17 00:00:00 2001
From: Jonathan Lee <vjon207@gmail.com>
Date: Wed, 18 Jan 2017 11:43:14 -0800
Subject: [PATCH 036/174] Fix documentation error

Move comparison before "j.clear()" function call, such that the intended return value "true" is actually correct.
---
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 6182a2df..902cdaad 100644
--- a/README.md
+++ b/README.md
@@ -263,6 +263,9 @@ const std::string tmp = j[0];
 j[1] = 42;
 bool foo = j.at(2);
 
+// comparison
+j == "[\"foo\", 1, true]"_json;  // true
+
 // other stuff
 j.size();     // 3 entries
 j.empty();    // false
@@ -277,9 +280,6 @@ j.is_object();
 j.is_array();
 j.is_string();
 
-// comparison
-j == "[\"foo\", 1, true]"_json;  // true
-
 // create an object
 json o;
 o["foo"] = 23;

From 5e3f9c8969355062851195751d628407a687108f Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Thu, 19 Jan 2017 17:09:55 +0100
Subject: [PATCH 037/174] :page_facing_up: help Github find the license

---
 LICENSE.MIT => LICENSE | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename LICENSE.MIT => LICENSE (100%)

diff --git a/LICENSE.MIT b/LICENSE
similarity index 100%
rename from LICENSE.MIT
rename to LICENSE

From 69be3fa8424a8c56fb9802284a510b8b14837d9b Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Thu, 19 Jan 2017 18:19:20 +0100
Subject: [PATCH 038/174] :memo: small documentation update

---
 README.md | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 902cdaad..69676370 100644
--- a/README.md
+++ b/README.md
@@ -587,8 +587,9 @@ I deeply appreciate the help of the following people.
 - [Yixin Zhang](https://github.com/qwename) fixed an integer overflow check.
 - [Bosswestfalen](https://github.com/Bosswestfalen) merged two iterator classes into a smaller one.
 - [Daniel599](https://github.com/Daniel599) helped to get Travis execute the tests with Clang's sanitizers.
+- [Jonathan Lee](https://github.com/vjon) fixed an example in the README file.
 
-Thanks a lot for helping out!
+Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone.
 
 
 ## Notes
@@ -601,6 +602,8 @@ Thanks a lot for helping out!
   - [Unicode noncharacters](http://www.unicode.org/faq/private_use.html#nonchar1) will not be replaced by the library.
   - Invalid surrogates (e.g., incomplete pairs such as `\uDEAD`) will yield parse errors.
   - The strings stored in the library are UTF-8 encoded. When using the default string type (`std::string`), note that its length/size functions return the number of stored bytes rather than the number of characters or glyphs.
+- The code can be compiled without C++ **runtime type identification** features; that is, you can use the `-fno-rtti` compiler flag.
+- **Exceptions** are used widly within the library. They can, however, be switched off with either using the compiler flag `-fno-exceptions` or by defining the symbol `JSON_NOEXCEPTION`. In this case, exceptions are replaced by an `abort()` call.
 
 
 ## Execute unit tests

From 145188f2640a4f8a642467c68e6737547ebaa245 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Thu, 19 Jan 2017 19:23:56 +0100
Subject: [PATCH 039/174] :rewind: renaming did not help

---
 LICENSE => LICENSE.MIT | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename LICENSE => LICENSE.MIT (100%)

diff --git a/LICENSE b/LICENSE.MIT
similarity index 100%
rename from LICENSE
rename to LICENSE.MIT

From ce0b3fe5a334567825a554a08b76c725d0790500 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sat, 21 Jan 2017 16:12:17 +0100
Subject: [PATCH 040/174] :construction: made type_name() public

---
 doc/examples/type_name.cpp    | 24 ++++++++++++++++++++++++
 doc/examples/type_name.link   |  1 +
 doc/examples/type_name.output |  7 +++++++
 src/json.hpp                  |  5 ++++-
 src/json.hpp.re2c             |  5 ++++-
 5 files changed, 40 insertions(+), 2 deletions(-)
 create mode 100644 doc/examples/type_name.cpp
 create mode 100644 doc/examples/type_name.link
 create mode 100644 doc/examples/type_name.output

diff --git a/doc/examples/type_name.cpp b/doc/examples/type_name.cpp
new file mode 100644
index 00000000..815e92d7
--- /dev/null
+++ b/doc/examples/type_name.cpp
@@ -0,0 +1,24 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call type_name()
+    std::cout << j_null.type_name() << '\n';
+    std::cout << j_boolean.type_name() << '\n';
+    std::cout << j_number_integer.type_name() << '\n';
+    std::cout << j_number_float.type_name() << '\n';
+    std::cout << j_object.type_name() << '\n';
+    std::cout << j_array.type_name() << '\n';
+    std::cout << j_string.type_name() << '\n';
+}
diff --git a/doc/examples/type_name.link b/doc/examples/type_name.link
new file mode 100644
index 00000000..39d1f973
--- /dev/null
+++ b/doc/examples/type_name.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/V6imubWo6Lkp8gk1"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/type_name.output b/doc/examples/type_name.output
new file mode 100644
index 00000000..ad906a49
--- /dev/null
+++ b/doc/examples/type_name.output
@@ -0,0 +1,7 @@
+null
+boolean
+number
+number
+object
+array
+string
diff --git a/src/json.hpp b/src/json.hpp
index fa9b85f2..2c1fd658 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -7767,7 +7767,6 @@ class basic_json
 
     /// @}
 
-  private:
     ///////////////////////////
     // convenience functions //
     ///////////////////////////
@@ -7782,6 +7781,9 @@ class basic_json
 
     @complexity Constant.
 
+    @liveexample{The following code exemplifies `type_name()` for all JSON
+    types.,typename}
+
     @since version 1.0.0
     */
     std::string type_name() const
@@ -7805,6 +7807,7 @@ class basic_json
         }
     }
 
+  private:
     /*!
     @brief calculates the extra space to escape a JSON string
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 886b9dde..f552a390 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -7767,7 +7767,6 @@ class basic_json
 
     /// @}
 
-  private:
     ///////////////////////////
     // convenience functions //
     ///////////////////////////
@@ -7782,6 +7781,9 @@ class basic_json
 
     @complexity Constant.
 
+    @liveexample{The following code exemplifies `type_name()` for all JSON
+    types.,typename}
+
     @since version 1.0.0
     */
     std::string type_name() const
@@ -7805,6 +7807,7 @@ class basic_json
         }
     }
 
+  private:
     /*!
     @brief calculates the extra space to escape a JSON string
 

From b443edf49e2741bd27cdfb148fa42abf58d6bac7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Delrieu?= <theo@tanker.io>
Date: Sun, 16 Oct 2016 17:29:57 +0200
Subject: [PATCH 041/174] add first version support for user-defined types

---
 src/json.hpp                   |  96 +++++++++--
 test/CMakeLists.txt            |   1 +
 test/src/unit-constructor3.cpp | 302 +++++++++++++++++++++++++++++++++
 3 files changed, 383 insertions(+), 16 deletions(-)
 create mode 100644 test/src/unit-constructor3.cpp

diff --git a/src/json.hpp b/src/json.hpp
index 2c1fd658..05fb8c92 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -106,12 +106,14 @@ SOFTWARE.
 */
 namespace nlohmann
 {
-
+template <typename T, typename = void>
+struct json_traits;
 
 /*!
 @brief unnamed namespace with internal helper functions
 @since version 1.0.0
 */
+// TODO transform this anon ns to detail?
 namespace
 {
 /*!
@@ -137,7 +139,47 @@ struct has_mapped_type
         std::is_integral<decltype(detect(std::declval<T>()))>::value;
 };
 
-} // namespace
+// taken from http://stackoverflow.com/questions/10711952/how-to-detect-existence-of-a-class-using-sfinae
+template <typename T>
+struct has_destructor
+{
+  template <typename U>
+  static std::true_type detect(decltype(std::declval<U>().~U())*);
+
+  template <typename>
+  static std::false_type detect(...);
+
+  static constexpr bool value = decltype(detect<T>(0))::value;
+};
+
+template<typename T>
+struct has_json_traits
+{
+  static constexpr bool value = has_destructor<json_traits<T>>::value;
+};
+
+template <> struct has_json_traits<void> : std::false_type {};
+
+/*!
+@brief helper class to create locales with decimal point
+
+This struct is used a default locale during the JSON serialization. JSON
+requires the decimal point to be `.`, so this function overloads the
+`do_decimal_point()` function to return `.`. This function is called by
+float-to-string conversions to retrieve the decimal separator between integer
+and fractional parts.
+
+@sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315
+@since version 2.0.0
+*/
+struct DecimalSeparator : std::numpunct<char>
+{
+    char do_decimal_point() const
+    {
+        return '.';
+    }
+};
+
 
 /*!
 @brief a class to store JSON values
@@ -1295,6 +1337,15 @@ class basic_json
         assert_invariant();
     }
 
+    template <
+        typename T,
+        typename =
+            typename std::enable_if<has_json_traits<typename std::remove_cv<
+                typename std::remove_reference<T>::type>::type>::value>::type>
+    explicit basic_json(T &&val)
+        : basic_json(json_traits<typename std::remove_cv<
+                         typename std::remove_reference<T>::type>::type>::
+                         to_json(std::forward<T>(val))) {}
     /*!
     @brief create a string (explicit)
 
@@ -1311,15 +1362,14 @@ class basic_json
 
     @sa @ref basic_json(const typename string_t::value_type*) -- create a
     string value from a character pointer
-    @sa @ref basic_json(const CompatibleStringType&) -- create a string value
+    @sa @ref basic_json(const CompatibleStringType&) -- create a string
+    value
     from a compatible string container
 
     @since version 1.0.0
     */
-    basic_json(const string_t& val)
-        : m_type(value_t::string), m_value(val)
-    {
-        assert_invariant();
+    basic_json(const string_t &val) : m_type(value_t::string), m_value(val) {
+      assert_invariant();
     }
 
     /*!
@@ -2655,16 +2705,30 @@ class basic_json
     // value access //
     //////////////////
 
+    template <
+        typename T,
+        typename =
+            typename std::enable_if<has_json_traits<typename std::remove_cv<
+                typename std::remove_reference<T>::type>::type>::value>::type>
+    auto get_impl(T *) const -> decltype(
+        json_traits<typename std::remove_cv<typename std::remove_reference<
+            T>::type>::type>::from_json(std::declval<basic_json>())) {
+      return json_traits<typename std::remove_cv<
+          typename std::remove_reference<T>::type>::type>::from_json(*this);
+    }
+
     /// get an object (explicit)
-    template<class T, typename std::enable_if<
-                 std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
-                 std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0>
-    T get_impl(T* /*unused*/) const
-    {
-        if (is_object())
-        {
-            return T(m_value.object->begin(), m_value.object->end());
-        }
+    template <class T,
+              typename std::enable_if<
+                  std::is_convertible<typename object_t::key_type,
+                                      typename T::key_type>::value and
+                      std::is_convertible<basic_json_t,
+                                          typename T::mapped_type>::value,
+                  int>::type = 0>
+    T get_impl(T *) const {
+      if (is_object()) {
+        return T(m_value.object->begin(), m_value.object->end());
+      } else {
 
         JSON_THROW(std::domain_error("type must be object, but is " + type_name()));
     }
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 62213ad3..8279b157 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -15,6 +15,7 @@ add_executable(${JSON_UNITTEST_TARGET_NAME}
     "src/unit-concepts.cpp"
     "src/unit-constructor1.cpp"
     "src/unit-constructor2.cpp"
+    "src/unit-constructor3.cpp"
     "src/unit-convenience.cpp"
     "src/unit-conversions.cpp"
     "src/unit-deserialization.cpp"
diff --git a/test/src/unit-constructor3.cpp b/test/src/unit-constructor3.cpp
new file mode 100644
index 00000000..d119625f
--- /dev/null
+++ b/test/src/unit-constructor3.cpp
@@ -0,0 +1,302 @@
+/*
+    __ _____ _____ _____
+ __|  |   __|     |   | |  JSON for Modern C++ (test suite)
+|  |  |__   |  |  | | | |  version 2.0.5
+|_____|_____|_____|_|___|  https://github.com/nlohmann/json
+
+Licensed under the MIT License <http://opensource.org/licenses/MIT>.
+Copyright (c) 2013-2016 Niels Lohmann <http://nlohmann.me>.
+
+Permission is hereby  granted, free of charge, to any  person obtaining a copy
+of this software and associated  documentation files (the "Software"), to deal
+in the Software  without restriction, including without  limitation the rights
+to  use, copy,  modify, merge,  publish, distribute,  sublicense, and/or  sell
+copies  of  the Software,  and  to  permit persons  to  whom  the Software  is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE  IS PROVIDED "AS  IS", WITHOUT WARRANTY  OF ANY KIND,  EXPRESS OR
+IMPLIED,  INCLUDING BUT  NOT  LIMITED TO  THE  WARRANTIES OF  MERCHANTABILITY,
+FITNESS FOR  A PARTICULAR PURPOSE AND  NONINFRINGEMENT. IN NO EVENT  SHALL THE
+AUTHORS  OR COPYRIGHT  HOLDERS  BE  LIABLE FOR  ANY  CLAIM,  DAMAGES OR  OTHER
+LIABILITY, WHETHER IN AN ACTION OF  CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE  OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include <string>
+#include <memory>
+#include "catch.hpp"
+
+#include "json.hpp"
+using nlohmann::json;
+
+namespace udt
+{
+struct empty_type {};
+struct pod_type {
+  int a;
+  char b;
+  short c;
+};
+
+inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept
+{
+  return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c);
+}
+
+struct bit_more_complex_type {
+  pod_type a;
+  pod_type b;
+  std::string c;
+};
+
+inline bool operator==(bit_more_complex_type const &lhs,
+                       bit_more_complex_type const &rhs) noexcept {
+  return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c);
+}
+
+// best optional implementation ever
+template <typename T>
+class optional_type
+{
+public:
+  optional_type() = default;
+  explicit optional_type(T val) : _val(std::make_shared<T>(std::move(val))) {}
+  explicit operator bool() const noexcept { return _val != nullptr; }
+
+  T const &operator*() const { return *_val; }
+
+private:
+  std::shared_ptr<T> _val;
+};
+
+template <typename T>
+inline bool operator==(optional_type<T> const& lhs, optional_type<T> const& rhs)
+{
+  if (!lhs && !rhs)
+    return true;
+  if (!lhs || !rhs)
+    return false;
+  return *lhs == *rhs;
+}
+}
+
+namespace nlohmann
+{
+template <>
+struct json_traits<udt::empty_type>
+{
+  using type = udt::empty_type;
+
+  static json to_json(type)
+  {
+    return json::object();
+  }
+  
+  static type from_json(json const& j)
+  {
+    assert(j.is_object() and j.empty());
+    return {};
+  }
+};
+
+template <>
+struct json_traits<udt::pod_type>
+{  
+  using type = udt::pod_type;
+
+  static json to_json(type const& t)
+  {
+    return {{"a", t.a}, {"b", t.b}, {"c", t.c}};
+  }
+  
+  static type from_json(json const& j)
+  {
+    assert(j.is_object());
+    return {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()};
+  }
+};
+
+template <>
+struct json_traits<udt::bit_more_complex_type>
+{
+  using type = udt::bit_more_complex_type;
+
+  static json to_json(type const& t)
+  {
+    return json{{"a", json{t.a}}, {"b", json{t.b}}, {"c", t.c}};
+  }
+
+  static type from_json(json const& j)
+  {
+    return {j["a"].get<udt::pod_type>(), j["b"].get<udt::pod_type>(),
+            j["c"].get<std::string>()};
+  }
+};
+
+template <typename T>
+struct json_traits<udt::optional_type<T>>
+{
+  using type = udt::optional_type<T>;
+
+  static json to_json(type const& t)
+  {
+    if (t)
+      return json(*t);
+    return {};
+  }
+
+  static type from_json(json const& j)
+  {
+    if (j.is_null())
+      return {};
+    return type{j.get<T>()};
+  }
+};
+}
+
+
+TEST_CASE("constructors for user-defined types", "[udt]")
+{
+  SECTION("empty type")
+  {
+    udt::empty_type const e;
+    auto const j = json{e};
+    auto k = json::object();
+    CHECK(j == k);
+  }
+
+  SECTION("pod type")
+  {
+    auto const e = udt::pod_type{42, 42, 42};
+    auto j = json{e};
+    auto k = json{{"a", 42}, {"b", 42}, {"c", 42}};
+    CHECK(j == k);
+  }
+
+  SECTION("bit more complex type")
+  {
+    auto const e =
+        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
+
+    auto j = json{e};
+    auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
+                  {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
+                  {"c", "forty"}};
+    CHECK(j == k);
+  }
+
+  SECTION("vector of udt")
+  {
+    std::vector<udt::bit_more_complex_type> v;
+    auto const e =
+        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
+
+    v.emplace_back(e);
+    v.emplace_back(e);
+    v.emplace_back(e);
+
+    json j = v;
+    auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
+                  {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
+                  {"c", "forty"}};
+    auto l = json{k, k, k};
+    CHECK(j == l);
+  }
+
+  SECTION("optional type") {
+    SECTION("regular case") {
+      udt::optional_type<int> u{3};
+      CHECK(json{u} == json(3));
+    }
+
+    SECTION("nullopt case") {
+      udt::optional_type<float> v;
+      CHECK(json{v} == json{});
+    }
+
+    SECTION("optional of json convertible type")
+    {
+      auto const e =
+          udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
+      udt::optional_type<udt::bit_more_complex_type> o{e};
+      auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
+                    {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
+                    {"c", "forty"}};
+      CHECK(json{o} == k);
+    }
+
+    SECTION("optional of vector of json convertible type")
+    {
+      std::vector<udt::bit_more_complex_type> v;
+      auto const e =
+          udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
+      v.emplace_back(e);
+      v.emplace_back(e);
+      v.emplace_back(e);
+      udt::optional_type<std::vector<udt::bit_more_complex_type>> o{v};
+      auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
+                    {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
+                    {"c", "forty"}};
+      auto l = json{k, k, k};
+      CHECK(json{o} == l);
+    }
+  }
+}
+
+TEST_CASE("get<> for user-defined types", "[udt]")
+{
+  SECTION("pod type")
+  {
+    auto const e = udt::pod_type{42, 42, 42};
+    auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}};
+
+    auto const obj = j.get<udt::pod_type>();
+    CHECK(e == obj);
+  }
+
+  SECTION("bit more complex type")
+  {
+    auto const e =
+        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
+    auto const j = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
+                        {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
+                        {"c", "forty"}};
+
+    auto const obj = j.get<udt::bit_more_complex_type>();
+    CHECK(e == obj);
+  }
+
+  SECTION("vector of udt")
+  {
+    auto const e =
+        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
+    std::vector<udt::bit_more_complex_type> v{e, e, e};
+    auto const j = json(v);
+
+    auto const obj = j.get<decltype(v)>();
+    CHECK(v == obj);
+  }
+
+  SECTION("optional")
+  {
+    SECTION("from null")
+    {
+      udt::optional_type<int> o;
+      json j;
+      CHECK(j.get<decltype(o)>() == o);
+    }
+
+    SECTION("from value")
+    {
+      json j{{"a", 42}, {"b", 42}, {"c", 42}};
+      auto v = j.get<udt::optional_type<udt::pod_type>>();
+      auto expected = udt::pod_type{42,42,42};
+      REQUIRE(v);
+      CHECK(*v == expected);
+    }
+  }
+}

From fe628b585b5bccbea2687dbb7f3557717086ef6e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Mon, 17 Oct 2016 23:41:53 +0200
Subject: [PATCH 042/174] anonymous namespace renamed to detail

---
 src/json.hpp                   |  93 ++++++++++++--
 test/src/unit-constructor3.cpp | 218 +++++++++++++++++++++++++++++++--
 2 files changed, 292 insertions(+), 19 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 05fb8c92..3d4994e3 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -106,6 +106,14 @@ SOFTWARE.
 */
 namespace nlohmann
 {
+// TODO add real documentation before PR
+
+// Traits structure declaration, users can specialize it for their own types
+// 
+// constructing a json object from a user-defined type will call the
+// 'json to_json(T)' function
+//
+// whereas calling json::get<T> will call 'T from_json(json const&)'
 template <typename T, typename = void>
 struct json_traits;
 
@@ -113,8 +121,8 @@ struct json_traits;
 @brief unnamed namespace with internal helper functions
 @since version 1.0.0
 */
-// TODO transform this anon ns to detail?
-namespace
+
+namespace detail
 {
 /*!
 @brief Helper to determine whether there's a key_type for T.
@@ -140,6 +148,7 @@ struct has_mapped_type
 };
 
 // taken from http://stackoverflow.com/questions/10711952/how-to-detect-existence-of-a-class-using-sfinae
+// used to determine if json_traits is defined for a given type T
 template <typename T>
 struct has_destructor
 {
@@ -158,7 +167,23 @@ struct has_json_traits
   static constexpr bool value = has_destructor<json_traits<T>>::value;
 };
 
-template <> struct has_json_traits<void> : std::false_type {};
+struct to_json_fn
+{
+  template <typename T>
+  constexpr auto operator()(T&& val) const -> decltype(to_json(std::forward<T>(val)))
+  {
+    return to_json(std::forward<T>(val));
+  }
+};
+
+struct from_json_fn
+{
+  template <typename Json, typename T>
+  constexpr auto operator()(Json const& from, T& to) const -> decltype(from_json(from, to))
+  {
+    return from_json(from, to);
+  }
+};
 
 /*!
 @brief helper class to create locales with decimal point
@@ -181,6 +206,23 @@ struct DecimalSeparator : std::numpunct<char>
 };
 
 
+// taken from ranges-v3
+// TODO add doc
+template <typename T>
+struct __static_const
+{
+  static constexpr T value{};
+};
+
+template <typename T>
+constexpr T __static_const<T>::value;
+
+inline namespace
+{
+  constexpr auto const& to_json = __static_const<detail::to_json_fn>::value;
+  constexpr auto const& from_json = __static_const<detail::from_json_fn>::value;
+}
+
 /*!
 @brief a class to store JSON values
 
@@ -1337,10 +1379,24 @@ class basic_json
         assert_invariant();
     }
 
+    // constructor chosen if json_traits is specialized for type T
+    // note: constructor is marked explicit to avoid the following issue:
+    //
+    // struct not_equality_comparable{};
+    // 
+    // not_equality_comparable{} == not_equality_comparable{};
+    // 
+    // this will construct implicitely 2 json objects and call operator== on them
+    // which can cause nasty bugs on the user's in json-unrelated code
+    // 
+    // the trade-off is expressivety in initializer-lists
+    // auto j = json{{"a", json(not_equality_comparable{})}};
+    // 
+    // we can remove this constraint though, since lots of ctor are not explicit already
     template <
         typename T,
         typename =
-            typename std::enable_if<has_json_traits<typename std::remove_cv<
+            typename std::enable_if<detail::has_json_traits<typename std::remove_cv<
                 typename std::remove_reference<T>::type>::type>::value>::type>
     explicit basic_json(T &&val)
         : basic_json(json_traits<typename std::remove_cv<
@@ -2705,10 +2761,13 @@ class basic_json
     // value access //
     //////////////////
 
+    // get_impl overload chosen if json_traits struct is specialized for type T
+    // simply returns json_traits<T>::from_json(*this);
+    // TODO add alias templates (enable_if_t etc)
     template <
         typename T,
-        typename =
-            typename std::enable_if<has_json_traits<typename std::remove_cv<
+        typename = typename std::enable_if<
+            detail::has_json_traits<typename std::remove_cv<
                 typename std::remove_reference<T>::type>::type>::value>::type>
     auto get_impl(T *) const -> decltype(
         json_traits<typename std::remove_cv<typename std::remove_reference<
@@ -2717,6 +2776,24 @@ class basic_json
           typename std::remove_reference<T>::type>::type>::from_json(*this);
     }
 
+    // this one is quite atrocious
+    // this overload is chosen ONLY if json_traits struct is not specialized, and if the expression nlohmann::from_json(*this, T&) is valid
+    // I chose to prefer the json_traits specialization if it exists, since it's a more advanced use.
+    // But we can of course change this behaviour
+    template <typename T>
+    auto get_impl(T *) const -> typename std::enable_if<
+        not detail::has_json_traits<typename std::remove_cv<T>::type>::value,
+        typename std::remove_cv<typename std::remove_reference<
+            decltype(::nlohmann::from_json(std::declval<basic_json>(),
+                                           std::declval<T &>()),
+                     std::declval<T>())>::type>::type>::type
+    {
+      typename std::remove_cv<typename std::remove_reference<T>::type>::type
+          ret;
+      ::nlohmann::from_json(*this, ret);
+      return ret;
+    }
+
     /// get an object (explicit)
     template <class T,
               typename std::enable_if<
@@ -2750,7 +2827,7 @@ class basic_json
                  not std::is_same<basic_json_t, typename T::value_type>::value and
                  not std::is_arithmetic<T>::value and
                  not std::is_convertible<std::string, T>::value and
-                 not has_mapped_type<T>::value, int>::type = 0>
+                 not detail::has_mapped_type<T>::value, int>::type = 0>
     T get_impl(T* /*unused*/) const
     {
         if (is_array())
@@ -2791,7 +2868,7 @@ class basic_json
     /// get an array (explicit)
     template<class T, typename std::enable_if<
                  std::is_same<basic_json, typename T::value_type>::value and
-                 not has_mapped_type<T>::value, int>::type = 0>
+                 not detail::has_mapped_type<T>::value, int>::type = 0>
     T get_impl(T* /*unused*/) const
     {
         if (is_array())
diff --git a/test/src/unit-constructor3.cpp b/test/src/unit-constructor3.cpp
index d119625f..cfe63867 100644
--- a/test/src/unit-constructor3.cpp
+++ b/test/src/unit-constructor3.cpp
@@ -42,22 +42,12 @@ struct pod_type {
   short c;
 };
 
-inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept
-{
-  return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c);
-}
-
 struct bit_more_complex_type {
   pod_type a;
   pod_type b;
   std::string c;
 };
 
-inline bool operator==(bit_more_complex_type const &lhs,
-                       bit_more_complex_type const &rhs) noexcept {
-  return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c);
-}
-
 // best optional implementation ever
 template <typename T>
 class optional_type
@@ -68,11 +58,97 @@ public:
   explicit operator bool() const noexcept { return _val != nullptr; }
 
   T const &operator*() const { return *_val; }
+  optional_type& operator=(T const& t)
+  {
+    _val = std::make_shared<T>(t);
+    return *this;
+  }
 
 private:
   std::shared_ptr<T> _val;
 };
 
+struct no_json_traits_type
+{
+  int a;
+};
+
+// free to/from_json functions
+
+json to_json(empty_type)
+{
+  return json::object();
+}
+
+json to_json(pod_type const& p)
+{
+  return {{"a", p.a}, {"b", p.b}, {"c", p.c}};
+}
+
+json to_json(bit_more_complex_type const& p)
+{
+  using nlohmann::to_json;
+  return json{{"a", to_json(p.a)}, {"b", to_json(p.b)}, {"c", p.c}};
+}
+
+template <typename T>
+json to_json(optional_type<T> const& opt)
+{
+  using nlohmann::to_json;
+  if (!opt)
+    return nullptr;
+  return to_json(*opt);
+}
+
+json to_json(no_json_traits_type const& p)
+{
+  json ret;
+  ret["a"] = p.a;
+  return ret;
+}
+
+void from_json(json const&j, empty_type& t)
+{
+  assert(j.empty());
+  t = empty_type{};
+}
+
+void from_json(json const&j, pod_type& t)
+{
+  t = {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()};
+}
+
+void from_json(json const&j, bit_more_complex_type& t)
+{
+   // relying on json_traits struct here..
+   t = {j["a"].get<udt::pod_type>(), j["b"].get<udt::pod_type>(),
+        j["c"].get<std::string>()};
+}
+
+void from_json(json const& j, no_json_traits_type& t)
+{
+  t.a = j["a"].get<int>();
+}
+
+template <typename T>
+void from_json(json const& j, optional_type<T>& t)
+{
+  if (j.is_null())
+    t = optional_type<T>{};
+  else
+    t = j.get<T>();
+}
+
+inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept
+{
+  return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c);
+}
+
+inline bool operator==(bit_more_complex_type const &lhs,
+                       bit_more_complex_type const &rhs) noexcept {
+  return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c);
+}
+
 template <typename T>
 inline bool operator==(optional_type<T> const& lhs, optional_type<T> const& rhs)
 {
@@ -82,6 +158,11 @@ inline bool operator==(optional_type<T> const& lhs, optional_type<T> const& rhs)
     return false;
   return *lhs == *rhs;
 }
+
+inline bool operator==(no_json_traits_type const& lhs, no_json_traits_type const& rhs)
+{
+  return lhs.a == rhs.a;
+}
 }
 
 namespace nlohmann
@@ -163,7 +244,7 @@ TEST_CASE("constructors for user-defined types", "[udt]")
 {
   SECTION("empty type")
   {
-    udt::empty_type const e;
+    udt::empty_type const e{};
     auto const j = json{e};
     auto k = json::object();
     CHECK(j == k);
@@ -300,3 +381,118 @@ TEST_CASE("get<> for user-defined types", "[udt]")
     }
   }
 }
+
+TEST_CASE("to_json free function", "[udt]")
+{
+  SECTION("pod_type")
+  {
+    auto const e = udt::pod_type{42, 42, 42};
+    auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}};
+
+    auto const j = nlohmann::to_json(e);
+    CHECK(j == expected);
+  }
+
+  SECTION("bit_more_complex_type")
+  {
+    auto const e =
+        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
+    auto const expected = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
+                        {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
+                        {"c", "forty"}};
+    auto const j = nlohmann::to_json(e);
+    CHECK(j == expected);
+  }
+
+  SECTION("optional_type")
+  {
+    SECTION("from null")
+    {
+      udt::optional_type<udt::pod_type> o;
+
+      json expected;
+      auto const j = nlohmann::to_json(o);
+      CHECK(expected == j);
+    }
+
+    SECTION("from value")
+    {
+      udt::optional_type<udt::pod_type> o{{42, 42, 42}};
+
+      auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}};
+      auto const j = nlohmann::to_json(o);
+      CHECK(expected == j);
+    }
+  }
+
+  SECTION("no json_traits specialization")
+  {
+    udt::no_json_traits_type t{42};
+
+    json expected;
+    expected["a"] = 42;
+    auto const j = nlohmann::to_json(t);
+    CHECK(j == expected);
+  }
+}
+
+TEST_CASE("from_json free function", "[udt]")
+{
+  SECTION("pod_type")
+  {
+    auto const expected = udt::pod_type{42, 42, 42};
+    auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}};
+
+    udt::pod_type p;
+    nlohmann::from_json(j, p);
+    CHECK(p == expected);
+  }
+
+  SECTION("bit_more_complex_type")
+  {
+    auto const expected =
+        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
+    auto const j = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
+                        {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
+                        {"c", "forty"}};
+    udt::bit_more_complex_type p;
+    nlohmann::from_json(j, p);
+    CHECK(p == expected);
+  }
+
+  SECTION("optional_type")
+  {
+    SECTION("from null")
+    {
+      udt::optional_type<udt::pod_type> expected;
+      json j;
+      udt::optional_type<udt::pod_type> o;
+
+      nlohmann::from_json(j, o);
+      CHECK(expected == o);
+    }
+
+    SECTION("from value")
+    {
+      udt::optional_type<udt::pod_type> expected{{42, 42, 42}};
+      auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}};
+      udt::optional_type<udt::pod_type> o;
+
+      nlohmann::from_json(j, o);
+      CHECK(expected == o);
+    }
+  }
+
+  SECTION("no json_traits specialization")
+  {
+    udt::no_json_traits_type expected{42};
+    udt::no_json_traits_type res;
+    json j;
+    j["a"] = 42;
+    nlohmann::from_json(j, res);
+    CHECK(res == expected);
+
+    res = j.get<udt::no_json_traits_type>();
+    CHECK(res == expected);
+  }
+}

From d54d6bb84cc9d0cd74155dc0e10b15a4023f3b7f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Tue, 18 Oct 2016 23:45:58 +0200
Subject: [PATCH 043/174] add alias templates to reduce boilerplate

---
 src/json.hpp | 92 ++++++++++++++++++++++++++++------------------------
 1 file changed, 49 insertions(+), 43 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 3d4994e3..23709788 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -117,6 +117,17 @@ namespace nlohmann
 template <typename T, typename = void>
 struct json_traits;
 
+// alias templates to reduce boilerplate
+template <bool B, typename T = void>
+using enable_if_t = typename std::enable_if<B, T>::type;
+
+template <typename T>
+using remove_cv_t = typename std::remove_cv<T>::type;
+
+template <typename T>
+using remove_reference_t = typename std::remove_reference<T>::type;
+
+// TODO update this doc
 /*!
 @brief unnamed namespace with internal helper functions
 @since version 1.0.0
@@ -1393,15 +1404,11 @@ class basic_json
     // auto j = json{{"a", json(not_equality_comparable{})}};
     // 
     // we can remove this constraint though, since lots of ctor are not explicit already
-    template <
-        typename T,
-        typename =
-            typename std::enable_if<detail::has_json_traits<typename std::remove_cv<
-                typename std::remove_reference<T>::type>::type>::value>::type>
+    template <typename T, typename = enable_if_t<detail::has_json_traits<
+                              remove_cv_t<remove_reference_t<T>>>::value>>
     explicit basic_json(T &&val)
-        : basic_json(json_traits<typename std::remove_cv<
-                         typename std::remove_reference<T>::type>::type>::
-                         to_json(std::forward<T>(val))) {}
+        : basic_json(json_traits<remove_cv_t<remove_reference_t<T>>>::to_json(
+              std::forward<T>(val))) {}
     /*!
     @brief create a string (explicit)
 
@@ -1418,14 +1425,15 @@ class basic_json
 
     @sa @ref basic_json(const typename string_t::value_type*) -- create a
     string value from a character pointer
-    @sa @ref basic_json(const CompatibleStringType&) -- create a string
-    value
+    @sa @ref basic_json(const CompatibleStringType&) -- create a string value
     from a compatible string container
 
     @since version 1.0.0
     */
-    basic_json(const string_t &val) : m_type(value_t::string), m_value(val) {
-      assert_invariant();
+    basic_json(const string_t& val)
+        : m_type(value_t::string), m_value(val)
+    {
+        assert_invariant();
     }
 
     /*!
@@ -2763,17 +2771,12 @@ class basic_json
 
     // get_impl overload chosen if json_traits struct is specialized for type T
     // simply returns json_traits<T>::from_json(*this);
-    // TODO add alias templates (enable_if_t etc)
-    template <
-        typename T,
-        typename = typename std::enable_if<
-            detail::has_json_traits<typename std::remove_cv<
-                typename std::remove_reference<T>::type>::type>::value>::type>
-    auto get_impl(T *) const -> decltype(
-        json_traits<typename std::remove_cv<typename std::remove_reference<
-            T>::type>::type>::from_json(std::declval<basic_json>())) {
-      return json_traits<typename std::remove_cv<
-          typename std::remove_reference<T>::type>::type>::from_json(*this);
+    template <typename T, typename = enable_if_t<detail::has_json_traits<
+                              remove_cv_t<remove_reference_t<T>>>::value>>
+    auto get_impl(T *) const
+        -> decltype(json_traits<remove_cv_t<remove_reference_t<T>>>::from_json(
+            std::declval<basic_json>())) {
+      return json_traits<remove_cv_t<remove_reference_t<T>>>::from_json(*this);
     }
 
     // this one is quite atrocious
@@ -2781,31 +2784,34 @@ class basic_json
     // I chose to prefer the json_traits specialization if it exists, since it's a more advanced use.
     // But we can of course change this behaviour
     template <typename T>
-    auto get_impl(T *) const -> typename std::enable_if<
-        not detail::has_json_traits<typename std::remove_cv<T>::type>::value,
-        typename std::remove_cv<typename std::remove_reference<
-            decltype(::nlohmann::from_json(std::declval<basic_json>(),
-                                           std::declval<T &>()),
-                     std::declval<T>())>::type>::type>::type
+    auto get_impl(T *) const
+        -> enable_if_t<not detail::has_json_traits<remove_cv_t<T>>::value,
+                       remove_cv_t<remove_reference_t<decltype(
+                           ::nlohmann::from_json(std::declval<basic_json>(),
+                                                 std::declval<T &>()),
+                           std::declval<T>())>>>
     {
-      typename std::remove_cv<typename std::remove_reference<T>::type>::type
-          ret;
+      remove_cv_t<T> ret;
+      // I guess this output parameter is the only way to get ADL
+      // Even if users can use the get<T> method to have a more 'functional' behaviour
+      // i.e. having a return type, could there be a way to have the same behaviour with from_json?
+      // e.g. auto t = nlohmann::from_json<T>(json{});
+      // this seems to require variable templates though... (at least it did when I tried to implement it)
       ::nlohmann::from_json(*this, ret);
       return ret;
     }
 
-    /// get an object (explicit)
-    template <class T,
-              typename std::enable_if<
-                  std::is_convertible<typename object_t::key_type,
-                                      typename T::key_type>::value and
-                      std::is_convertible<basic_json_t,
-                                          typename T::mapped_type>::value,
-                  int>::type = 0>
-    T get_impl(T *) const {
-      if (is_object()) {
-        return T(m_value.object->begin(), m_value.object->end());
-      } else {
+    template<class T, typename std::enable_if<
+                 std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
+                 std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0>
+    T get_impl(T*) const
+    {
+        if (is_object())
+        {
+            return T(m_value.object->begin(), m_value.object->end());
+        }
+        else
+        {
 
         JSON_THROW(std::domain_error("type must be object, but is " + type_name()));
     }

From 877d96c1d80ad860a6d5c22766cd8682e5cd889d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Thu, 20 Oct 2016 13:45:48 +0200
Subject: [PATCH 044/174] rename __static_const to _static_const (reserved
 identifier)

---
 src/json.hpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 23709788..68ac29fc 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -220,18 +220,18 @@ struct DecimalSeparator : std::numpunct<char>
 // taken from ranges-v3
 // TODO add doc
 template <typename T>
-struct __static_const
+struct _static_const
 {
   static constexpr T value{};
 };
 
 template <typename T>
-constexpr T __static_const<T>::value;
+constexpr T _static_const<T>::value;
 
 inline namespace
 {
-  constexpr auto const& to_json = __static_const<detail::to_json_fn>::value;
-  constexpr auto const& from_json = __static_const<detail::from_json_fn>::value;
+  constexpr auto const& to_json = _static_const<detail::to_json_fn>::value;
+  constexpr auto const& from_json = _static_const<detail::from_json_fn>::value;
 }
 
 /*!

From 12b4555b13678902d39ee9e2c4d18822e9b4455e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Thu, 20 Oct 2016 14:02:31 +0200
Subject: [PATCH 045/174] use uncvref_t<T> instead of
 remove_cv_t<remove_reference_t<T>>>

---
 src/json.hpp | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 68ac29fc..528c92b2 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -127,6 +127,9 @@ using remove_cv_t = typename std::remove_cv<T>::type;
 template <typename T>
 using remove_reference_t = typename std::remove_reference<T>::type;
 
+template <typename T>
+using uncvref_t = remove_cv_t<remove_reference_t<T>>;
+
 // TODO update this doc
 /*!
 @brief unnamed namespace with internal helper functions
@@ -1404,11 +1407,12 @@ class basic_json
     // auto j = json{{"a", json(not_equality_comparable{})}};
     // 
     // we can remove this constraint though, since lots of ctor are not explicit already
-    template <typename T, typename = enable_if_t<detail::has_json_traits<
-                              remove_cv_t<remove_reference_t<T>>>::value>>
+    template <typename T, typename = enable_if_t<
+                              detail::has_json_traits<uncvref_t<T>>::value>>
     explicit basic_json(T &&val)
-        : basic_json(json_traits<remove_cv_t<remove_reference_t<T>>>::to_json(
-              std::forward<T>(val))) {}
+        : basic_json(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val)))
+    {
+    }
     /*!
     @brief create a string (explicit)
 
@@ -2771,12 +2775,12 @@ class basic_json
 
     // get_impl overload chosen if json_traits struct is specialized for type T
     // simply returns json_traits<T>::from_json(*this);
-    template <typename T, typename = enable_if_t<detail::has_json_traits<
-                              remove_cv_t<remove_reference_t<T>>>::value>>
-    auto get_impl(T *) const
-        -> decltype(json_traits<remove_cv_t<remove_reference_t<T>>>::from_json(
-            std::declval<basic_json>())) {
-      return json_traits<remove_cv_t<remove_reference_t<T>>>::from_json(*this);
+    template <typename T, typename = enable_if_t<
+                              detail::has_json_traits<uncvref_t<T>>::value>>
+    auto get_impl(T *) const -> decltype(
+        json_traits<uncvref_t<T>>::from_json(std::declval<basic_json>()))
+    {
+      return json_traits<uncvref_t<T>>::from_json(*this);
     }
 
     // this one is quite atrocious
@@ -2784,12 +2788,11 @@ class basic_json
     // I chose to prefer the json_traits specialization if it exists, since it's a more advanced use.
     // But we can of course change this behaviour
     template <typename T>
-    auto get_impl(T *) const
-        -> enable_if_t<not detail::has_json_traits<remove_cv_t<T>>::value,
-                       remove_cv_t<remove_reference_t<decltype(
-                           ::nlohmann::from_json(std::declval<basic_json>(),
+    auto get_impl(T *) const -> enable_if_t<
+        not detail::has_json_traits<remove_cv_t<T>>::value,
+        uncvref_t<decltype(::nlohmann::from_json(std::declval<basic_json>(),
                                                  std::declval<T &>()),
-                           std::declval<T>())>>>
+                           std::declval<T>())>>
     {
       remove_cv_t<T> ret;
       // I guess this output parameter is the only way to get ADL

From 03b391c37bb234c23c2c993057ff4be64efc7883 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Thu, 20 Oct 2016 18:02:07 +0200
Subject: [PATCH 046/174] remove has_destructor and has_json_traits, use
 decltype instead

---
 src/json.hpp | 45 ++++++++++++---------------------------------
 1 file changed, 12 insertions(+), 33 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 528c92b2..390d4e79 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -161,26 +161,6 @@ struct has_mapped_type
         std::is_integral<decltype(detect(std::declval<T>()))>::value;
 };
 
-// taken from http://stackoverflow.com/questions/10711952/how-to-detect-existence-of-a-class-using-sfinae
-// used to determine if json_traits is defined for a given type T
-template <typename T>
-struct has_destructor
-{
-  template <typename U>
-  static std::true_type detect(decltype(std::declval<U>().~U())*);
-
-  template <typename>
-  static std::false_type detect(...);
-
-  static constexpr bool value = decltype(detect<T>(0))::value;
-};
-
-template<typename T>
-struct has_json_traits
-{
-  static constexpr bool value = has_destructor<json_traits<T>>::value;
-};
-
 struct to_json_fn
 {
   template <typename T>
@@ -1407,8 +1387,7 @@ class basic_json
     // auto j = json{{"a", json(not_equality_comparable{})}};
     // 
     // we can remove this constraint though, since lots of ctor are not explicit already
-    template <typename T, typename = enable_if_t<
-                              detail::has_json_traits<uncvref_t<T>>::value>>
+    template <typename T, typename = decltype(json_traits<uncvref_t<T>>::to_json(std::declval<uncvref_t<T>>()))>
     explicit basic_json(T &&val)
         : basic_json(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val)))
     {
@@ -2775,24 +2754,19 @@ class basic_json
 
     // get_impl overload chosen if json_traits struct is specialized for type T
     // simply returns json_traits<T>::from_json(*this);
-    template <typename T, typename = enable_if_t<
-                              detail::has_json_traits<uncvref_t<T>>::value>>
-    auto get_impl(T *) const -> decltype(
-        json_traits<uncvref_t<T>>::from_json(std::declval<basic_json>()))
+    // dual argument to avoid conflicting with get_impl overloads taking a pointer
+    template <typename T>
+    auto get_impl(int, int) const -> decltype(json_traits<uncvref_t<T>>::from_json(*this))
     {
       return json_traits<uncvref_t<T>>::from_json(*this);
     }
 
-    // this one is quite atrocious
     // this overload is chosen ONLY if json_traits struct is not specialized, and if the expression nlohmann::from_json(*this, T&) is valid
     // I chose to prefer the json_traits specialization if it exists, since it's a more advanced use.
     // But we can of course change this behaviour
     template <typename T>
-    auto get_impl(T *) const -> enable_if_t<
-        not detail::has_json_traits<remove_cv_t<T>>::value,
-        uncvref_t<decltype(::nlohmann::from_json(std::declval<basic_json>(),
-                                                 std::declval<T &>()),
-                           std::declval<T>())>>
+    auto get_impl(long, long) const -> uncvref_t<decltype(::nlohmann::from_json(*this, std::declval<T &>()),
+                                                    std::declval<T>())>
     {
       remove_cv_t<T> ret;
       // I guess this output parameter is the only way to get ADL
@@ -3108,11 +3082,16 @@ class basic_json
     */
     template<typename ValueType, typename std::enable_if<
                  not std::is_pointer<ValueType>::value, int>::type = 0>
-    ValueType get() const
+    auto get() const -> decltype(get_impl(static_cast<ValueType*>(nullptr)))
     {
         return get_impl(static_cast<ValueType*>(nullptr));
     }
 
+    template <typename ValueType>
+    auto get() const -> decltype(get_impl<ValueType>(0, 0))
+    {
+        return get_impl<ValueType>(0, 0);
+    }
     /*!
     @brief get a pointer value (explicit)
 

From 4cdc61e49356533c67227d74fffe39588388b0ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Fri, 21 Oct 2016 16:28:01 +0200
Subject: [PATCH 047/174] move most SFINAE trickery in to/from_json_fn

---
 src/json.hpp                   | 126 +++++++++++++++++++++------------
 test/src/unit-constructor3.cpp |  68 +++++++++++++++---
 2 files changed, 141 insertions(+), 53 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 390d4e79..8b281d93 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -161,22 +161,70 @@ struct has_mapped_type
         std::is_integral<decltype(detect(std::declval<T>()))>::value;
 };
 
+void to_json();
+void from_json();
+
 struct to_json_fn
 {
-  template <typename T>
-  constexpr auto operator()(T&& val) const -> decltype(to_json(std::forward<T>(val)))
-  {
-    return to_json(std::forward<T>(val));
-  }
+  private:
+    // fallback overload
+    template <typename T>
+    static constexpr auto
+    impl(T &&val, long) noexcept(noexcept(to_json(std::forward<T>(val))))
+        -> decltype(to_json(std::forward<T>(val)))
+    {
+      return to_json(std::forward<T>(val));
+    }
+
+    // preferred overload
+    template <typename T>
+    static constexpr auto impl(T &&val, int) noexcept(
+        noexcept(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val))))
+        -> decltype(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val)))
+    {
+      return json_traits<uncvref_t<T>>::to_json(std::forward<T>(val));
+    }
+
+  public:
+    template <typename T>
+    constexpr auto operator()(T &&val) const
+        noexcept(noexcept(to_json_fn::impl(std::forward<T>(val), 0)))
+            -> decltype(to_json_fn::impl(std::forward<T>(val), 0))
+    {
+      // decltype(0) -> int, so the compiler will try to take the 'preferred overload'
+      // if there is no specialization, the 'fallback overload' will be taken by converting 0 to long
+      return to_json_fn::impl(std::forward<T>(val), 0);
+    }
 };
 
 struct from_json_fn
 {
-  template <typename Json, typename T>
-  constexpr auto operator()(Json const& from, T& to) const -> decltype(from_json(from, to))
-  {
-    return from_json(from, to);
-  }
+  private:
+    template <typename T, typename Json>
+    static constexpr auto impl(Json const &j, T &val,
+                               long) noexcept(noexcept(from_json(j, val)))
+        -> decltype(from_json(j, val))
+    {
+      return from_json(j, val);
+    }
+
+    template <typename T, typename Json>
+    static constexpr auto
+    impl(Json const &j, T &val,
+         int) noexcept(noexcept(json_traits<T>::from_json(j, val)))
+        -> decltype(json_traits<T>::from_json(j, val))
+    {
+      return json_traits<T>::from_json(j, val);
+    }
+
+  public:
+    template <typename T, typename Json>
+    constexpr auto operator()(Json const &j, T &val) const
+        noexcept(noexcept(from_json_fn::impl(j, val, 0)))
+            -> decltype(from_json_fn::impl(j, val, 0))
+    {
+      return from_json_fn::impl(j, val, 0);
+    }
 };
 
 /*!
@@ -1373,7 +1421,13 @@ class basic_json
         assert_invariant();
     }
 
-    // constructor chosen if json_traits is specialized for type T
+    // constructor chosen for user-defined types that either have:
+    // - a to_json free function in their type's namespace
+    // - a json_traits specialization for their type
+    //
+    // If there is both a free function and a specialization, the latter will be chosen,
+    // since it is a more advanced use
+    //
     // note: constructor is marked explicit to avoid the following issue:
     //
     // struct not_equality_comparable{};
@@ -1383,15 +1437,15 @@ class basic_json
     // this will construct implicitely 2 json objects and call operator== on them
     // which can cause nasty bugs on the user's in json-unrelated code
     // 
-    // the trade-off is expressivety in initializer-lists
+    // the trade-off is expressiveness in initializer-lists
     // auto j = json{{"a", json(not_equality_comparable{})}};
     // 
     // we can remove this constraint though, since lots of ctor are not explicit already
-    template <typename T, typename = decltype(json_traits<uncvref_t<T>>::to_json(std::declval<uncvref_t<T>>()))>
+    template <typename T, typename = decltype(::nlohmann::to_json(
+                              std::declval<uncvref_t<T>>()))>
     explicit basic_json(T &&val)
-        : basic_json(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val)))
-    {
-    }
+        : basic_json(::nlohmann::to_json(std::forward<T>(val))) {}
+
     /*!
     @brief create a string (explicit)
 
@@ -2752,32 +2806,6 @@ class basic_json
     // value access //
     //////////////////
 
-    // get_impl overload chosen if json_traits struct is specialized for type T
-    // simply returns json_traits<T>::from_json(*this);
-    // dual argument to avoid conflicting with get_impl overloads taking a pointer
-    template <typename T>
-    auto get_impl(int, int) const -> decltype(json_traits<uncvref_t<T>>::from_json(*this))
-    {
-      return json_traits<uncvref_t<T>>::from_json(*this);
-    }
-
-    // this overload is chosen ONLY if json_traits struct is not specialized, and if the expression nlohmann::from_json(*this, T&) is valid
-    // I chose to prefer the json_traits specialization if it exists, since it's a more advanced use.
-    // But we can of course change this behaviour
-    template <typename T>
-    auto get_impl(long, long) const -> uncvref_t<decltype(::nlohmann::from_json(*this, std::declval<T &>()),
-                                                    std::declval<T>())>
-    {
-      remove_cv_t<T> ret;
-      // I guess this output parameter is the only way to get ADL
-      // Even if users can use the get<T> method to have a more 'functional' behaviour
-      // i.e. having a return type, could there be a way to have the same behaviour with from_json?
-      // e.g. auto t = nlohmann::from_json<T>(json{});
-      // this seems to require variable templates though... (at least it did when I tried to implement it)
-      ::nlohmann::from_json(*this, ret);
-      return ret;
-    }
-
     template<class T, typename std::enable_if<
                  std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
                  std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0>
@@ -3082,16 +3110,24 @@ class basic_json
     */
     template<typename ValueType, typename std::enable_if<
                  not std::is_pointer<ValueType>::value, int>::type = 0>
-    auto get() const -> decltype(get_impl(static_cast<ValueType*>(nullptr)))
+    auto get() const -> decltype(this->get_impl(static_cast<ValueType*>(nullptr)))
     {
         return get_impl(static_cast<ValueType*>(nullptr));
     }
 
     template <typename ValueType>
-    auto get() const -> decltype(get_impl<ValueType>(0, 0))
+    auto get() const -> remove_reference_t<
+        decltype(::nlohmann::from_json(*this, std::declval<ValueType &>()),
+                 std::declval<ValueType>())>
     {
-        return get_impl<ValueType>(0, 0);
+      static_assert(std::is_default_constructible<ValueType>::value,
+                    "ValueType must be default-constructible when user-defined "
+                    "from_json method is used");
+      ValueType ret;
+      ::nlohmann::from_json(*this, ret);
+      return ret;
     }
+
     /*!
     @brief get a pointer value (explicit)
 
diff --git a/test/src/unit-constructor3.cpp b/test/src/unit-constructor3.cpp
index cfe63867..de52762f 100644
--- a/test/src/unit-constructor3.cpp
+++ b/test/src/unit-constructor3.cpp
@@ -35,6 +35,9 @@ using nlohmann::json;
 
 namespace udt
 {
+// only used by counter_type
+auto nb_free_function_calls = 0;
+
 struct empty_type {};
 struct pod_type {
   int a;
@@ -48,6 +51,10 @@ struct bit_more_complex_type {
   std::string c;
 };
 
+struct counter_type
+{
+};
+
 // best optional implementation ever
 template <typename T>
 class optional_type
@@ -97,14 +104,18 @@ json to_json(optional_type<T> const& opt)
   using nlohmann::to_json;
   if (!opt)
     return nullptr;
-  return to_json(*opt);
+  return json(*opt);
 }
 
 json to_json(no_json_traits_type const& p)
 {
-  json ret;
-  ret["a"] = p.a;
-  return ret;
+  return {{"a", p.a}};
+}
+
+json to_json(counter_type)
+{
+  ++nb_free_function_calls;
+  return json::object();
 }
 
 void from_json(json const&j, empty_type& t)
@@ -139,6 +150,11 @@ void from_json(json const& j, optional_type<T>& t)
     t = j.get<T>();
 }
 
+void from_json(json const&, counter_type&)
+{
+  ++nb_free_function_calls;
+}
+
 inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept
 {
   return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c);
@@ -176,7 +192,7 @@ struct json_traits<udt::empty_type>
   {
     return json::object();
   }
-  
+
   static type from_json(json const& j)
   {
     assert(j.is_object() and j.empty());
@@ -193,7 +209,7 @@ struct json_traits<udt::pod_type>
   {
     return {{"a", t.a}, {"b", t.b}, {"c", t.c}};
   }
-  
+
   static type from_json(json const& j)
   {
     assert(j.is_object());
@@ -237,6 +253,25 @@ struct json_traits<udt::optional_type<T>>
     return type{j.get<T>()};
   }
 };
+
+template <>
+struct json_traits<udt::counter_type>
+{
+  using type = udt::counter_type;
+  static int nb_calls;
+
+  static json to_json(type)
+  {
+    ++nb_calls;
+    return json::object();
+  }
+
+  static void from_json(json const&, type&)
+  {
+    ++nb_calls;
+  }
+};
+int json_traits<udt::counter_type>::nb_calls{0};
 }
 
 
@@ -380,6 +415,24 @@ TEST_CASE("get<> for user-defined types", "[udt]")
       CHECK(*v == expected);
     }
   }
+
+  SECTION("no json_traits specialization, use of ADL")
+  {
+    udt::no_json_traits_type val{42};
+    auto const expected = json{{"a", 42}};
+    auto const j = json(val);
+    CHECK(j == expected);
+  }
+
+  SECTION("counter_type")
+  {
+    // check that the traits specialization is chosen
+    auto const j = json{udt::counter_type{}};
+    CHECK(nlohmann::json_traits<udt::counter_type>::nb_calls == 1);
+    auto const elem = j.get<udt::counter_type>();
+    CHECK(nlohmann::json_traits<udt::counter_type>::nb_calls == 2);
+    CHECK(udt::nb_free_function_calls == 0);
+  }
 }
 
 TEST_CASE("to_json free function", "[udt]")
@@ -487,8 +540,7 @@ TEST_CASE("from_json free function", "[udt]")
   {
     udt::no_json_traits_type expected{42};
     udt::no_json_traits_type res;
-    json j;
-    j["a"] = 42;
+    auto const j = json{{"a", 42}};
     nlohmann::from_json(j, res);
     CHECK(res == expected);
 

From 7dc268ef420124c741171538b362b954f4b00296 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Mon, 7 Nov 2016 23:24:54 +0100
Subject: [PATCH 048/174] add first version for alternate implementation

---
 src/json.hpp                   | 131 ++++++++-----------------
 test/src/unit-constructor3.cpp | 172 ---------------------------------
 2 files changed, 41 insertions(+), 262 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 8b281d93..8dc9b383 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -106,17 +106,6 @@ SOFTWARE.
 */
 namespace nlohmann
 {
-// TODO add real documentation before PR
-
-// Traits structure declaration, users can specialize it for their own types
-// 
-// constructing a json object from a user-defined type will call the
-// 'json to_json(T)' function
-//
-// whereas calling json::get<T> will call 'T from_json(json const&)'
-template <typename T, typename = void>
-struct json_traits;
-
 // alias templates to reduce boilerplate
 template <bool B, typename T = void>
 using enable_if_t = typename std::enable_if<B, T>::type;
@@ -166,64 +155,24 @@ void from_json();
 
 struct to_json_fn
 {
-  private:
-    // fallback overload
     template <typename T>
-    static constexpr auto
-    impl(T &&val, long) noexcept(noexcept(to_json(std::forward<T>(val))))
+    constexpr auto
+    operator()(T &&val) const noexcept(noexcept(to_json(std::forward<T>(val))))
         -> decltype(to_json(std::forward<T>(val)))
     {
       return to_json(std::forward<T>(val));
     }
 
-    // preferred overload
-    template <typename T>
-    static constexpr auto impl(T &&val, int) noexcept(
-        noexcept(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val))))
-        -> decltype(json_traits<uncvref_t<T>>::to_json(std::forward<T>(val)))
-    {
-      return json_traits<uncvref_t<T>>::to_json(std::forward<T>(val));
-    }
-
-  public:
-    template <typename T>
-    constexpr auto operator()(T &&val) const
-        noexcept(noexcept(to_json_fn::impl(std::forward<T>(val), 0)))
-            -> decltype(to_json_fn::impl(std::forward<T>(val), 0))
-    {
-      // decltype(0) -> int, so the compiler will try to take the 'preferred overload'
-      // if there is no specialization, the 'fallback overload' will be taken by converting 0 to long
-      return to_json_fn::impl(std::forward<T>(val), 0);
-    }
 };
 
 struct from_json_fn
 {
-  private:
     template <typename T, typename Json>
-    static constexpr auto impl(Json const &j, T &val,
-                               long) noexcept(noexcept(from_json(j, val)))
-        -> decltype(from_json(j, val))
+    constexpr auto operator()(Json &&j, T &val) const
+                               noexcept(noexcept(from_json(std::forward<Json>(j), val)))
+        -> decltype(from_json(std::forward<Json>(j), val))
     {
-      return from_json(j, val);
-    }
-
-    template <typename T, typename Json>
-    static constexpr auto
-    impl(Json const &j, T &val,
-         int) noexcept(noexcept(json_traits<T>::from_json(j, val)))
-        -> decltype(json_traits<T>::from_json(j, val))
-    {
-      return json_traits<T>::from_json(j, val);
-    }
-
-  public:
-    template <typename T, typename Json>
-    constexpr auto operator()(Json const &j, T &val) const
-        noexcept(noexcept(from_json_fn::impl(j, val, 0)))
-            -> decltype(from_json_fn::impl(j, val, 0))
-    {
-      return from_json_fn::impl(j, val, 0);
+      return from_json(std::forward<Json>(j), val);
     }
 };
 
@@ -265,6 +214,32 @@ inline namespace
   constexpr auto const& from_json = _static_const<detail::from_json_fn>::value;
 }
 
+// default JSONSerializer template argument
+// will use ADL for serialization
+struct adl_serializer
+{
+  template <typename T, typename Json, typename = enable_if_t<std::is_default_constructible<uncvref_t<T>>::value>>
+  static auto from_json(Json&& j) -> uncvref_t<decltype(::nlohmann::from_json(std::forward<Json>(j), std::declval<T&>()), std::declval<T>())>
+  {
+    uncvref_t<T> ret;
+    ::nlohmann::from_json(std::forward<Json>(j), ret);
+    return ret;
+  }
+
+  template <typename T, typename Json>
+  static auto from_json(Json&& j, T& val) -> decltype(::nlohmann::from_json(std::forward<Json>(j), val))
+  {
+    ::nlohmann::from_json(std::forward<Json>(j), val);
+  }
+
+  template <typename T>
+  static auto to_json(T&& val) -> decltype(::nlohmann::to_json(std::forward<T>(val)))
+  {
+    return ::nlohmann::to_json(std::forward<T>(val));
+  }
+};
+
+
 /*!
 @brief a class to store JSON values
 
@@ -352,7 +327,8 @@ template <
     class NumberIntegerType = std::int64_t,
     class NumberUnsignedType = std::uint64_t,
     class NumberFloatType = double,
-    template<typename U> class AllocatorType = std::allocator
+    template<typename U> class AllocatorType = std::allocator,
+    class JSONSerializer = adl_serializer
     >
 class basic_json
 {
@@ -1421,30 +1397,10 @@ class basic_json
         assert_invariant();
     }
 
-    // constructor chosen for user-defined types that either have:
-    // - a to_json free function in their type's namespace
-    // - a json_traits specialization for their type
-    //
-    // If there is both a free function and a specialization, the latter will be chosen,
-    // since it is a more advanced use
-    //
-    // note: constructor is marked explicit to avoid the following issue:
-    //
-    // struct not_equality_comparable{};
-    // 
-    // not_equality_comparable{} == not_equality_comparable{};
-    // 
-    // this will construct implicitely 2 json objects and call operator== on them
-    // which can cause nasty bugs on the user's in json-unrelated code
-    // 
-    // the trade-off is expressiveness in initializer-lists
-    // auto j = json{{"a", json(not_equality_comparable{})}};
-    // 
-    // we can remove this constraint though, since lots of ctor are not explicit already
-    template <typename T, typename = decltype(::nlohmann::to_json(
-                              std::declval<uncvref_t<T>>()))>
+    // constructor chosen when JSONSerializer::to_json exists for type T
+    template <typename T, typename = decltype(JSONSerializer::to_json(std::declval<uncvref_t<T>>()))>
     explicit basic_json(T &&val)
-        : basic_json(::nlohmann::to_json(std::forward<T>(val))) {}
+        : basic_json(JSONSerializer::to_json(std::forward<T>(val))) {}
 
     /*!
     @brief create a string (explicit)
@@ -3115,16 +3071,11 @@ class basic_json
         return get_impl(static_cast<ValueType*>(nullptr));
     }
 
-    template <typename ValueType>
-    auto get() const -> remove_reference_t<
-        decltype(::nlohmann::from_json(*this, std::declval<ValueType &>()),
-                 std::declval<ValueType>())>
+    template <typename ValueType, typename = enable_if_t<std::is_default_constructible<uncvref_t<ValueType>>::value, float>>
+    auto get() const -> remove_reference_t<decltype(JSONSerializer::from_json(*this, std::declval<ValueType&>()), std::declval<ValueType>())>
     {
-      static_assert(std::is_default_constructible<ValueType>::value,
-                    "ValueType must be default-constructible when user-defined "
-                    "from_json method is used");
-      ValueType ret;
-      ::nlohmann::from_json(*this, ret);
+      uncvref_t<ValueType> ret;
+      JSONSerializer::from_json(*this, ret);
       return ret;
     }
 
diff --git a/test/src/unit-constructor3.cpp b/test/src/unit-constructor3.cpp
index de52762f..77b31c6a 100644
--- a/test/src/unit-constructor3.cpp
+++ b/test/src/unit-constructor3.cpp
@@ -35,9 +35,6 @@ using nlohmann::json;
 
 namespace udt
 {
-// only used by counter_type
-auto nb_free_function_calls = 0;
-
 struct empty_type {};
 struct pod_type {
   int a;
@@ -51,10 +48,6 @@ struct bit_more_complex_type {
   std::string c;
 };
 
-struct counter_type
-{
-};
-
 // best optional implementation ever
 template <typename T>
 class optional_type
@@ -75,11 +68,6 @@ private:
   std::shared_ptr<T> _val;
 };
 
-struct no_json_traits_type
-{
-  int a;
-};
-
 // free to/from_json functions
 
 json to_json(empty_type)
@@ -107,17 +95,6 @@ json to_json(optional_type<T> const& opt)
   return json(*opt);
 }
 
-json to_json(no_json_traits_type const& p)
-{
-  return {{"a", p.a}};
-}
-
-json to_json(counter_type)
-{
-  ++nb_free_function_calls;
-  return json::object();
-}
-
 void from_json(json const&j, empty_type& t)
 {
   assert(j.empty());
@@ -136,11 +113,6 @@ void from_json(json const&j, bit_more_complex_type& t)
         j["c"].get<std::string>()};
 }
 
-void from_json(json const& j, no_json_traits_type& t)
-{
-  t.a = j["a"].get<int>();
-}
-
 template <typename T>
 void from_json(json const& j, optional_type<T>& t)
 {
@@ -150,11 +122,6 @@ void from_json(json const& j, optional_type<T>& t)
     t = j.get<T>();
 }
 
-void from_json(json const&, counter_type&)
-{
-  ++nb_free_function_calls;
-}
-
 inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept
 {
   return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c);
@@ -174,106 +141,7 @@ inline bool operator==(optional_type<T> const& lhs, optional_type<T> const& rhs)
     return false;
   return *lhs == *rhs;
 }
-
-inline bool operator==(no_json_traits_type const& lhs, no_json_traits_type const& rhs)
-{
-  return lhs.a == rhs.a;
 }
-}
-
-namespace nlohmann
-{
-template <>
-struct json_traits<udt::empty_type>
-{
-  using type = udt::empty_type;
-
-  static json to_json(type)
-  {
-    return json::object();
-  }
-
-  static type from_json(json const& j)
-  {
-    assert(j.is_object() and j.empty());
-    return {};
-  }
-};
-
-template <>
-struct json_traits<udt::pod_type>
-{  
-  using type = udt::pod_type;
-
-  static json to_json(type const& t)
-  {
-    return {{"a", t.a}, {"b", t.b}, {"c", t.c}};
-  }
-
-  static type from_json(json const& j)
-  {
-    assert(j.is_object());
-    return {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()};
-  }
-};
-
-template <>
-struct json_traits<udt::bit_more_complex_type>
-{
-  using type = udt::bit_more_complex_type;
-
-  static json to_json(type const& t)
-  {
-    return json{{"a", json{t.a}}, {"b", json{t.b}}, {"c", t.c}};
-  }
-
-  static type from_json(json const& j)
-  {
-    return {j["a"].get<udt::pod_type>(), j["b"].get<udt::pod_type>(),
-            j["c"].get<std::string>()};
-  }
-};
-
-template <typename T>
-struct json_traits<udt::optional_type<T>>
-{
-  using type = udt::optional_type<T>;
-
-  static json to_json(type const& t)
-  {
-    if (t)
-      return json(*t);
-    return {};
-  }
-
-  static type from_json(json const& j)
-  {
-    if (j.is_null())
-      return {};
-    return type{j.get<T>()};
-  }
-};
-
-template <>
-struct json_traits<udt::counter_type>
-{
-  using type = udt::counter_type;
-  static int nb_calls;
-
-  static json to_json(type)
-  {
-    ++nb_calls;
-    return json::object();
-  }
-
-  static void from_json(json const&, type&)
-  {
-    ++nb_calls;
-  }
-};
-int json_traits<udt::counter_type>::nb_calls{0};
-}
-
 
 TEST_CASE("constructors for user-defined types", "[udt]")
 {
@@ -415,24 +283,6 @@ TEST_CASE("get<> for user-defined types", "[udt]")
       CHECK(*v == expected);
     }
   }
-
-  SECTION("no json_traits specialization, use of ADL")
-  {
-    udt::no_json_traits_type val{42};
-    auto const expected = json{{"a", 42}};
-    auto const j = json(val);
-    CHECK(j == expected);
-  }
-
-  SECTION("counter_type")
-  {
-    // check that the traits specialization is chosen
-    auto const j = json{udt::counter_type{}};
-    CHECK(nlohmann::json_traits<udt::counter_type>::nb_calls == 1);
-    auto const elem = j.get<udt::counter_type>();
-    CHECK(nlohmann::json_traits<udt::counter_type>::nb_calls == 2);
-    CHECK(udt::nb_free_function_calls == 0);
-  }
 }
 
 TEST_CASE("to_json free function", "[udt]")
@@ -477,16 +327,6 @@ TEST_CASE("to_json free function", "[udt]")
       CHECK(expected == j);
     }
   }
-
-  SECTION("no json_traits specialization")
-  {
-    udt::no_json_traits_type t{42};
-
-    json expected;
-    expected["a"] = 42;
-    auto const j = nlohmann::to_json(t);
-    CHECK(j == expected);
-  }
 }
 
 TEST_CASE("from_json free function", "[udt]")
@@ -535,16 +375,4 @@ TEST_CASE("from_json free function", "[udt]")
       CHECK(expected == o);
     }
   }
-
-  SECTION("no json_traits specialization")
-  {
-    udt::no_json_traits_type expected{42};
-    udt::no_json_traits_type res;
-    auto const j = json{{"a", 42}};
-    nlohmann::from_json(j, res);
-    CHECK(res == expected);
-
-    res = j.get<udt::no_json_traits_type>();
-    CHECK(res == expected);
-  }
 }

From 33abccf8476cb6e4f330a3728ffd61fe24e5fb39 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Tue, 8 Nov 2016 13:16:14 +0100
Subject: [PATCH 049/174] add template arguments for JSONSerializer

---
 src/json.hpp | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 8dc9b383..bd59e83b 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -214,8 +214,9 @@ inline namespace
   constexpr auto const& from_json = _static_const<detail::from_json_fn>::value;
 }
 
-// default JSONSerializer template argument
+// default JSONSerializer template argument, doesn't care about template argument
 // will use ADL for serialization
+template <typename = void, typename = void>
 struct adl_serializer
 {
   template <typename T, typename Json, typename = enable_if_t<std::is_default_constructible<uncvref_t<T>>::value>>
@@ -328,7 +329,7 @@ template <
     class NumberUnsignedType = std::uint64_t,
     class NumberFloatType = double,
     template<typename U> class AllocatorType = std::allocator,
-    class JSONSerializer = adl_serializer
+    template<typename T, typename SFINAE = void> class JSONSerializer = adl_serializer
     >
 class basic_json
 {
@@ -1398,9 +1399,9 @@ class basic_json
     }
 
     // constructor chosen when JSONSerializer::to_json exists for type T
-    template <typename T, typename = decltype(JSONSerializer::to_json(std::declval<uncvref_t<T>>()))>
+    template <typename T, typename = decltype(JSONSerializer<uncvref_t<T>>::to_json(std::declval<uncvref_t<T>>()))>
     explicit basic_json(T &&val)
-        : basic_json(JSONSerializer::to_json(std::forward<T>(val))) {}
+        : basic_json(JSONSerializer<uncvref_t<T>>::to_json(std::forward<T>(val))) {}
 
     /*!
     @brief create a string (explicit)
@@ -3072,10 +3073,10 @@ class basic_json
     }
 
     template <typename ValueType, typename = enable_if_t<std::is_default_constructible<uncvref_t<ValueType>>::value, float>>
-    auto get() const -> remove_reference_t<decltype(JSONSerializer::from_json(*this, std::declval<ValueType&>()), std::declval<ValueType>())>
+    auto get() const -> remove_reference_t<decltype(JSONSerializer<uncvref_t<ValueType>>::from_json(*this, std::declval<ValueType&>()), std::declval<ValueType>())>
     {
       uncvref_t<ValueType> ret;
-      JSONSerializer::from_json(*this, ret);
+      JSONSerializer<uncvref_t<ValueType>>::from_json(*this, ret);
       return ret;
     }
 

From 837b81d6722da33c83b60668eb2ce3ae74a2b9c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Tue, 8 Nov 2016 13:17:16 +0100
Subject: [PATCH 050/174] renamed unit-constructor3.cpp to unit-udt.cpp

---
 test/CMakeLists.txt                              | 2 +-
 test/src/{unit-constructor3.cpp => unit-udt.cpp} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename test/src/{unit-constructor3.cpp => unit-udt.cpp} (100%)

diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 8279b157..a988f47b 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -15,7 +15,6 @@ add_executable(${JSON_UNITTEST_TARGET_NAME}
     "src/unit-concepts.cpp"
     "src/unit-constructor1.cpp"
     "src/unit-constructor2.cpp"
-    "src/unit-constructor3.cpp"
     "src/unit-convenience.cpp"
     "src/unit-conversions.cpp"
     "src/unit-deserialization.cpp"
@@ -36,6 +35,7 @@ add_executable(${JSON_UNITTEST_TARGET_NAME}
     "src/unit-regression.cpp"
     "src/unit-serialization.cpp"
     "src/unit-testsuites.cpp"
+    "src/unit-udt.cpp"
     "src/unit-unicode.cpp"
 )
 
diff --git a/test/src/unit-constructor3.cpp b/test/src/unit-udt.cpp
similarity index 100%
rename from test/src/unit-constructor3.cpp
rename to test/src/unit-udt.cpp

From 2bc685f6b4ae2f53d80eaf526a073244c060a80b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Wed, 9 Nov 2016 23:55:03 +0100
Subject: [PATCH 051/174] to_json and from_json takes both two arguments now

the first is the basic_json type, the second the user-defined type
---
 src/json.hpp          | 49 +++++++++++++++++++------------------------
 test/src/unit-udt.cpp | 35 +++++++++++++++++--------------
 2 files changed, 41 insertions(+), 43 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index bd59e83b..4f471070 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -155,22 +155,21 @@ void from_json();
 
 struct to_json_fn
 {
-    template <typename T>
+    template <typename Json, typename T>
     constexpr auto
-    operator()(T &&val) const noexcept(noexcept(to_json(std::forward<T>(val))))
-        -> decltype(to_json(std::forward<T>(val)))
+    operator()(Json&& j, T &&val) const noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
+        -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), void())
     {
-      return to_json(std::forward<T>(val));
+      return to_json(std::forward<Json>(j), std::forward<T>(val));
     }
-
 };
 
 struct from_json_fn
 {
-    template <typename T, typename Json>
+    template <typename Json, typename T>
     constexpr auto operator()(Json &&j, T &val) const
                                noexcept(noexcept(from_json(std::forward<Json>(j), val)))
-        -> decltype(from_json(std::forward<Json>(j), val))
+        -> decltype(from_json(std::forward<Json>(j), val), void())
     {
       return from_json(std::forward<Json>(j), val);
     }
@@ -219,28 +218,19 @@ inline namespace
 template <typename = void, typename = void>
 struct adl_serializer
 {
-  template <typename T, typename Json, typename = enable_if_t<std::is_default_constructible<uncvref_t<T>>::value>>
-  static auto from_json(Json&& j) -> uncvref_t<decltype(::nlohmann::from_json(std::forward<Json>(j), std::declval<T&>()), std::declval<T>())>
-  {
-    uncvref_t<T> ret;
-    ::nlohmann::from_json(std::forward<Json>(j), ret);
-    return ret;
-  }
-
-  template <typename T, typename Json>
-  static auto from_json(Json&& j, T& val) -> decltype(::nlohmann::from_json(std::forward<Json>(j), val))
+  template <typename Json, typename T>
+  static auto from_json(Json&& j, T& val) -> decltype(::nlohmann::from_json(std::forward<Json>(j), val), void())
   {
     ::nlohmann::from_json(std::forward<Json>(j), val);
   }
 
-  template <typename T>
-  static auto to_json(T&& val) -> decltype(::nlohmann::to_json(std::forward<T>(val)))
+  template <typename Json, typename T>
+  static auto to_json(Json& j, T&& val) -> decltype(::nlohmann::to_json(j, std::forward<T>(val)), void())
   {
-    return ::nlohmann::to_json(std::forward<T>(val));
+    ::nlohmann::to_json(j, std::forward<T>(val));
   }
 };
 
-
 /*!
 @brief a class to store JSON values
 
@@ -1399,9 +1389,11 @@ class basic_json
     }
 
     // constructor chosen when JSONSerializer::to_json exists for type T
-    template <typename T, typename = decltype(JSONSerializer<uncvref_t<T>>::to_json(std::declval<uncvref_t<T>>()))>
+    template <typename T, typename = decltype(JSONSerializer<uncvref_t<T>>::to_json(std::declval<basic_json&>(), std::declval<uncvref_t<T>>()))>
     explicit basic_json(T &&val)
-        : basic_json(JSONSerializer<uncvref_t<T>>::to_json(std::forward<T>(val))) {}
+    {
+      JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
+    }
 
     /*!
     @brief create a string (explicit)
@@ -3072,11 +3064,14 @@ class basic_json
         return get_impl(static_cast<ValueType*>(nullptr));
     }
 
-    template <typename ValueType, typename = enable_if_t<std::is_default_constructible<uncvref_t<ValueType>>::value, float>>
-    auto get() const -> remove_reference_t<decltype(JSONSerializer<uncvref_t<ValueType>>::from_json(*this, std::declval<ValueType&>()), std::declval<ValueType>())>
+    template <typename ValueType, typename = decltype(JSONSerializer<uncvref_t<ValueType>>::from_json(std::declval<basic_json>(), std::declval<ValueType&>()))>
+    auto get() const -> uncvref_t<ValueType>
     {
-      uncvref_t<ValueType> ret;
-      JSONSerializer<uncvref_t<ValueType>>::from_json(*this, ret);
+      using type = uncvref_t<ValueType>;
+      static_assert(std::is_default_constructible<type>::value && std::is_copy_constructible<type>::value,
+                    "user-defined types must be DefaultConstructible and CopyConstructible when used with get");
+      type ret;
+      JSONSerializer<type>::from_json(*this, ret);
       return ret;
     }
 
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 77b31c6a..17494a45 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -70,32 +70,31 @@ private:
 
 // free to/from_json functions
 
-json to_json(empty_type)
+void to_json(json& j, empty_type)
 {
-  return json::object();
+  j = json::object();
 }
 
-json to_json(pod_type const& p)
+void to_json(json& j, pod_type const& p)
 {
-  return {{"a", p.a}, {"b", p.b}, {"c", p.c}};
+  j = json{{"a", p.a}, {"b", p.b}, {"c", p.c}};
 }
 
-json to_json(bit_more_complex_type const& p)
+void to_json(json& j, bit_more_complex_type const& p)
 {
-  using nlohmann::to_json;
-  return json{{"a", to_json(p.a)}, {"b", to_json(p.b)}, {"c", p.c}};
+  j = json{{"a", json(p.a)}, {"b", json(p.b)}, {"c", p.c}};
 }
 
 template <typename T>
-json to_json(optional_type<T> const& opt)
+void to_json(json& j, optional_type<T> const& opt)
 {
-  using nlohmann::to_json;
   if (!opt)
-    return nullptr;
-  return json(*opt);
+    j = nullptr;
+  else
+    j = json(*opt);
 }
 
-void from_json(json const&j, empty_type& t)
+void from_json(json const& j, empty_type& t)
 {
   assert(j.empty());
   t = empty_type{};
@@ -292,7 +291,8 @@ TEST_CASE("to_json free function", "[udt]")
     auto const e = udt::pod_type{42, 42, 42};
     auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}};
 
-    auto const j = nlohmann::to_json(e);
+    json j;
+    nlohmann::to_json(j, e);
     CHECK(j == expected);
   }
 
@@ -303,7 +303,8 @@ TEST_CASE("to_json free function", "[udt]")
     auto const expected = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
                         {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
                         {"c", "forty"}};
-    auto const j = nlohmann::to_json(e);
+    json j;
+    nlohmann::to_json(j, e);
     CHECK(j == expected);
   }
 
@@ -314,7 +315,8 @@ TEST_CASE("to_json free function", "[udt]")
       udt::optional_type<udt::pod_type> o;
 
       json expected;
-      auto const j = nlohmann::to_json(o);
+      json j;
+      nlohmann::to_json(j, o);
       CHECK(expected == j);
     }
 
@@ -323,7 +325,8 @@ TEST_CASE("to_json free function", "[udt]")
       udt::optional_type<udt::pod_type> o{{42, 42, 42}};
 
       auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}};
-      auto const j = nlohmann::to_json(o);
+      json j;
+      nlohmann::to_json(j, o);
       CHECK(expected == j);
     }
   }

From 178441cdfd12a8b7f4c49778259470bd40d4f32a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Tue, 15 Nov 2016 14:22:12 +0100
Subject: [PATCH 052/174] add basic test for custom serializer

---
 src/json.hpp          | 62 +++++++++++++++++++++++++++++++++++--------
 test/src/unit-udt.cpp | 56 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 107 insertions(+), 11 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 4f471070..d8f33759 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -150,6 +150,38 @@ struct has_mapped_type
         std::is_integral<decltype(detect(std::declval<T>()))>::value;
 };
 
+template <template <typename, typename> class JSONSerializer, typename Json,
+          typename T>
+struct has_from_json
+{
+private:
+  template <typename U, typename = decltype(uncvref_t<U>::from_json(
+                            std::declval<Json>(), std::declval<T &>()))>
+  static int detect(U &&);
+
+  static void detect(...);
+
+public:
+  static constexpr bool value = std::is_integral<decltype(
+      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+};
+
+template <template <typename, typename> class JSONSerializer, typename Json,
+          typename T>
+struct has_to_json
+{
+private:
+  template <typename U, typename = decltype(uncvref_t<U>::to_json(
+                            std::declval<Json &>(), std::declval<T>()))>
+  static int detect(U &&);
+
+  static void detect(...);
+
+public:
+  static constexpr bool value = std::is_integral<decltype(
+      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+};
+
 void to_json();
 void from_json();
 
@@ -1389,7 +1421,8 @@ class basic_json
     }
 
     // constructor chosen when JSONSerializer::to_json exists for type T
-    template <typename T, typename = decltype(JSONSerializer<uncvref_t<T>>::to_json(std::declval<basic_json&>(), std::declval<uncvref_t<T>>()))>
+    template <typename T, typename = typename std::enable_if<detail::has_to_json<
+                              JSONSerializer, basic_json, uncvref_t<T>>::value>::type>
     explicit basic_json(T &&val)
     {
       JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
@@ -3057,19 +3090,26 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<typename ValueType, typename std::enable_if<
-                 not std::is_pointer<ValueType>::value, int>::type = 0>
-    auto get() const -> decltype(this->get_impl(static_cast<ValueType*>(nullptr)))
-    {
-        return get_impl(static_cast<ValueType*>(nullptr));
+    template <typename ValueType,
+              typename std::enable_if<
+                  not std::is_pointer<ValueType>::value and
+                      not detail::has_from_json<JSONSerializer, basic_json,
+                                                uncvref_t<ValueType>>::value,
+                  int>::type = 0>
+    auto get() const
+        -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) {
+      return get_impl(static_cast<ValueType *>(nullptr));
     }
 
-    template <typename ValueType, typename = decltype(JSONSerializer<uncvref_t<ValueType>>::from_json(std::declval<basic_json>(), std::declval<ValueType&>()))>
-    auto get() const -> uncvref_t<ValueType>
-    {
+    template <typename ValueType,
+              typename = enable_if_t<detail::has_from_json<
+                  JSONSerializer, basic_json, uncvref_t<ValueType>>::value>>
+    auto get() const -> uncvref_t<ValueType> {
       using type = uncvref_t<ValueType>;
-      static_assert(std::is_default_constructible<type>::value && std::is_copy_constructible<type>::value,
-                    "user-defined types must be DefaultConstructible and CopyConstructible when used with get");
+      static_assert(std::is_default_constructible<type>::value &&
+                        std::is_copy_constructible<type>::value,
+                    "user-defined types must be DefaultConstructible and "
+                    "CopyConstructible when used with get");
       type ret;
       JSONSerializer<type>::from_json(*this, ret);
       return ret;
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 17494a45..dc35019c 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -379,3 +379,59 @@ TEST_CASE("from_json free function", "[udt]")
     }
   }
 }
+
+// custom serializer, uses adl by default
+template <typename T, typename = void>
+struct my_serializer;
+
+template<>
+struct my_serializer<udt::pod_type>
+{
+  template <typename Json>
+  static void from_json(Json const& j, udt::pod_type& val)
+  {
+    nlohmann::from_json(j, val);
+  }
+
+  template <typename Json>
+  static void to_json(Json& j, udt::pod_type const& val)
+  {
+    nlohmann::to_json(j, val);
+  }
+};
+
+using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool,
+                                     std::int64_t, std::uint64_t, double,
+                                     std::allocator, my_serializer>;
+
+namespace udt
+{
+  void to_json(my_json& j, pod_type const& val)
+  {
+    j = my_json{{"a", val.a}, {"b", val.b}, {"c", val.c}};
+  }
+
+  void from_json(my_json const& j, pod_type& val)
+  {
+    val = {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()};
+  }
+}
+
+TEST_CASE("custom serializer")
+{
+
+
+  SECTION("default use works like default serializer")
+  {
+    udt::pod_type pod{1, 2, 3};
+    auto const j = my_json{pod};
+
+    auto const j2 = json{pod};
+    CHECK(j.dump() == j2.dump());
+
+    auto const pod2 = j.get<udt::pod_type>();
+    auto const pod3 = j2.get<udt::pod_type>();
+    CHECK(pod2 == pod3);
+    CHECK(pod2 == pod);
+  }
+}

From 23bd2bce358230ea4d52aca35bbe328692256e83 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Wed, 16 Nov 2016 20:49:24 +0100
Subject: [PATCH 053/174] add is_compatible_* traits

---
 src/json.hpp          | 124 ++++++++++++++++++++++++++++++++++--------
 test/src/unit-udt.cpp |  16 ++----
 2 files changed, 106 insertions(+), 34 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index d8f33759..703a1e02 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -150,6 +150,96 @@ struct has_mapped_type
         std::is_integral<decltype(detect(std::declval<T>()))>::value;
 };
 
+template<typename T>
+struct has_key_type
+{
+  private:
+    template <typename U, typename = typename U::key_type>
+    static int detect(U&&);
+
+    static void detect(...);
+  public:
+    static constexpr bool value =
+        std::is_integral<decltype(detect(std::declval<T>()))>::value;
+};
+
+template<typename T>
+struct has_value_type
+{
+  private:
+    template <typename U, typename = typename U::value_type>
+    static int detect(U&&);
+
+    static void detect(...);
+  public:
+    static constexpr bool value =
+        std::is_integral<decltype(detect(std::declval<T>()))>::value;
+};
+
+template <bool B, class RealType, class CompatibleObjectType>
+struct is_compatible_object_type_impl : std::false_type{};
+
+template <class RealType, class CompatibleObjectType>
+struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
+{
+  static constexpr auto value =
+                 std::is_constructible<typename RealType::key_type, typename CompatibleObjectType::key_type>::value and
+                 std::is_constructible<typename RealType::mapped_type, typename CompatibleObjectType::mapped_type>::value;
+};
+
+template<class RealType, class CompatibleObjectType, typename = enable_if_t<has_mapped_type<CompatibleObjectType>::value and has_key_type<CompatibleObjectType>::value>>
+struct is_compatible_object_type
+{
+  static auto constexpr value = is_compatible_object_type_impl<has_mapped_type<CompatibleObjectType>::value and has_key_type<CompatibleObjectType>::value, RealType, CompatibleObjectType>::value;
+};
+
+template <bool B, class BasicJson, class CompatibleArrayType>
+struct is_compatible_array_type_impl : std::false_type{};
+
+template <class BasicJson, class CompatibleArrayType>
+struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
+{
+  static constexpr auto value =
+                 not std::is_same<CompatibleArrayType, typename BasicJson::iterator>::value and
+                 not std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>::value and
+                 not std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>::value and
+                 not std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>::value and
+                 not std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>::value and
+                 not std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>::value and
+                 std::is_constructible<BasicJson, typename CompatibleArrayType::value_type>::value;
+
+};
+
+template <class BasicJson, class CompatibleArrayType>
+struct is_compatible_array_type
+{
+  static auto constexpr value = is_compatible_array_type_impl<has_value_type<CompatibleArrayType>::value, BasicJson, CompatibleArrayType>::value;
+};
+
+template <typename RealIntegerType, typename CompatibleNumberIntegerType>
+struct is_compatible_integer_type
+{
+  static constexpr auto value = 
+                 std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value and
+                 std::numeric_limits<CompatibleNumberIntegerType>::is_integer and
+                 std::numeric_limits<CompatibleNumberIntegerType>::is_signed;
+};
+
+template <typename RealInteger, typename CompatibleNumberUnsignedType>
+struct is_compatible_unsigned_integer_type
+{
+ static constexpr auto value = std::is_constructible<RealInteger, CompatibleNumberUnsignedType>::value and
+                 std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
+                 not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed;
+};
+
+template <typename RealFloat, typename CompatibleFloat>
+struct is_compatible_float_type
+{
+  static constexpr auto value = std::is_constructible<RealFloat, CompatibleFloat>::value and
+                                std::is_floating_point<CompatibleFloat>::value;
+};
+
 template <template <typename, typename> class JSONSerializer, typename Json,
           typename T>
 struct has_from_json
@@ -361,6 +451,11 @@ class basic_json
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
           AllocatorType>;
 
+    template <template <typename...> class T>
+    struct wrapper{};
+
+    using supported_tpl_types = std::tuple<wrapper<ObjectType>, wrapper<ArrayType>, wrapper<AllocatorType>, wrapper<JSONSerializer>>;
+
   public:
     // forward declarations
     template<typename U> class iter_impl;
@@ -1340,9 +1435,7 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<class CompatibleObjectType, typename std::enable_if<
-                 std::is_constructible<typename object_t::key_type, typename CompatibleObjectType::key_type>::value and
-                 std::is_constructible<basic_json, typename CompatibleObjectType::mapped_type>::value, int>::type = 0>
+    template<class CompatibleObjectType, enable_if_t<detail::is_compatible_object_type<object_t, CompatibleObjectType>::value, int> = 0>
     basic_json(const CompatibleObjectType& val)
         : m_type(value_t::object)
     {
@@ -1403,14 +1496,7 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<class CompatibleArrayType, typename std::enable_if<
-                 not std::is_same<CompatibleArrayType, typename basic_json_t::iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename basic_json_t::const_iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename basic_json_t::reverse_iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename basic_json_t::const_reverse_iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename array_t::iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename array_t::const_iterator>::value and
-                 std::is_constructible<basic_json, typename CompatibleArrayType::value_type>::value, int>::type = 0>
+    template<class CompatibleArrayType, enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value, int> = 0>
     basic_json(const CompatibleArrayType& val)
         : m_type(value_t::array)
     {
@@ -1621,11 +1707,7 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<typename CompatibleNumberIntegerType, typename std::enable_if<
-                 std::is_constructible<number_integer_t, CompatibleNumberIntegerType>::value and
-                 std::numeric_limits<CompatibleNumberIntegerType>::is_integer and
-                 std::numeric_limits<CompatibleNumberIntegerType>::is_signed,
-                 CompatibleNumberIntegerType>::type = 0>
+    template<typename CompatibleNumberIntegerType, enable_if_t<detail::is_compatible_integer_type<number_integer_t, CompatibleNumberIntegerType>::value, int> = 0>
     basic_json(const CompatibleNumberIntegerType val) noexcept
         : m_type(value_t::number_integer),
           m_value(static_cast<number_integer_t>(val))
@@ -1679,11 +1761,7 @@ class basic_json
 
     @since version 2.0.0
     */
-    template<typename CompatibleNumberUnsignedType, typename std::enable_if <
-                 std::is_constructible<number_unsigned_t, CompatibleNumberUnsignedType>::value and
-                 std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
-                 not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed,
-                 CompatibleNumberUnsignedType>::type = 0>
+    template<typename CompatibleNumberUnsignedType, enable_if_t<detail::is_compatible_unsigned_integer_type<number_unsigned_t, CompatibleNumberUnsignedType>::value, int> = 0>
     basic_json(const CompatibleNumberUnsignedType val) noexcept
         : m_type(value_t::number_unsigned),
           m_value(static_cast<number_unsigned_t>(val))
@@ -1759,9 +1837,7 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<typename CompatibleNumberFloatType, typename = typename std::enable_if<
-                 std::is_constructible<number_float_t, CompatibleNumberFloatType>::value and
-                 std::is_floating_point<CompatibleNumberFloatType>::value>::type>
+    template<typename CompatibleNumberFloatType, enable_if_t<detail::is_compatible_float_type<number_float_t, CompatibleNumberFloatType>::value, int> = 0>
     basic_json(const CompatibleNumberFloatType val) noexcept
         : basic_json(number_float_t(val))
     {
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index dc35019c..2e2a92cc 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.5
+|  |  |__   |  |  | | | |  version 2.0.7
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
@@ -382,25 +382,22 @@ TEST_CASE("from_json free function", "[udt]")
 
 // custom serializer, uses adl by default
 template <typename T, typename = void>
-struct my_serializer;
-
-template<>
-struct my_serializer<udt::pod_type>
+struct my_serializer
 {
   template <typename Json>
-  static void from_json(Json const& j, udt::pod_type& val)
+  static void from_json(Json const& j, T& val)
   {
     nlohmann::from_json(j, val);
   }
 
   template <typename Json>
-  static void to_json(Json& j, udt::pod_type const& val)
+  static void to_json(Json& j, T const& val)
   {
     nlohmann::to_json(j, val);
   }
 };
 
-using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool,
+/*using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool,
                                      std::int64_t, std::uint64_t, double,
                                      std::allocator, my_serializer>;
 
@@ -419,8 +416,6 @@ namespace udt
 
 TEST_CASE("custom serializer")
 {
-
-
   SECTION("default use works like default serializer")
   {
     udt::pod_type pod{1, 2, 3};
@@ -435,3 +430,4 @@ TEST_CASE("custom serializer")
     CHECK(pod2 == pod);
   }
 }
+*/

From 88819449c2893ec319428ca2893b24bae8fb1308 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Wed, 16 Nov 2016 23:20:05 +0100
Subject: [PATCH 054/174] remove constraints on JSONSerializer instances,
 constrain correctly new methods

---
 src/json.hpp          | 97 ++++++++++++++++++++++++++++++-------------
 test/src/unit-udt.cpp |  3 +-
 2 files changed, 70 insertions(+), 30 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 703a1e02..096aecc8 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -150,6 +150,9 @@ struct has_mapped_type
         std::is_integral<decltype(detect(std::declval<T>()))>::value;
 };
 
+template <template <typename...> class T>
+struct wrapper{};
+
 template<typename T>
 struct has_key_type
 {
@@ -176,6 +179,19 @@ struct has_value_type
         std::is_integral<decltype(detect(std::declval<T>()))>::value;
 };
 
+template<typename T>
+struct has_iterator
+{
+  private:
+    template <typename U, typename = typename U::iterator>
+    static int detect(U&&);
+
+    static void detect(...);
+  public:
+    static constexpr bool value =
+        std::is_integral<decltype(detect(std::declval<T>()))>::value;
+};
+
 template <bool B, class RealType, class CompatibleObjectType>
 struct is_compatible_object_type_impl : std::false_type{};
 
@@ -187,7 +203,7 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
                  std::is_constructible<typename RealType::mapped_type, typename CompatibleObjectType::mapped_type>::value;
 };
 
-template<class RealType, class CompatibleObjectType, typename = enable_if_t<has_mapped_type<CompatibleObjectType>::value and has_key_type<CompatibleObjectType>::value>>
+template<class RealType, class CompatibleObjectType>
 struct is_compatible_object_type
 {
   static auto constexpr value = is_compatible_object_type_impl<has_mapped_type<CompatibleObjectType>::value and has_key_type<CompatibleObjectType>::value, RealType, CompatibleObjectType>::value;
@@ -213,26 +229,43 @@ struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-  static auto constexpr value = is_compatible_array_type_impl<has_value_type<CompatibleArrayType>::value, BasicJson, CompatibleArrayType>::value;
+  static auto constexpr value = is_compatible_array_type_impl<not is_compatible_object_type<typename BasicJson::object_t, CompatibleArrayType>::value and has_value_type<CompatibleArrayType>::value and has_iterator<CompatibleArrayType>::value, BasicJson, CompatibleArrayType>::value;
+};
+
+template <bool, typename, typename>
+struct is_compatible_integer_type_impl : std::false_type{};
+
+template <typename RealIntegerType, typename CompatibleNumberIntegerType>
+struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
+{
+ static constexpr auto value = std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value and
+                 std::numeric_limits<CompatibleNumberIntegerType>::is_integer and
+                 std::numeric_limits<CompatibleNumberIntegerType>::is_signed;
 };
 
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
-  static constexpr auto value = 
-                 std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value and
-                 std::numeric_limits<CompatibleNumberIntegerType>::is_integer and
-                 std::numeric_limits<CompatibleNumberIntegerType>::is_signed;
+  static constexpr auto value = is_compatible_integer_type_impl<std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType, CompatibleNumberIntegerType>::value;
 };
 
-template <typename RealInteger, typename CompatibleNumberUnsignedType>
-struct is_compatible_unsigned_integer_type
+template <bool, typename, typename>
+struct is_compatible_unsigned_integer_type_impl : std::false_type{};
+
+template <typename RealUnsignedType, typename CompatibleNumberUnsignedType>
+struct is_compatible_unsigned_integer_type_impl<true, RealUnsignedType, CompatibleNumberUnsignedType>
 {
- static constexpr auto value = std::is_constructible<RealInteger, CompatibleNumberUnsignedType>::value and
+ static constexpr auto value = std::is_constructible<RealUnsignedType, CompatibleNumberUnsignedType>::value and
                  std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
                  not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed;
 };
 
+template <typename RealUnsignedType, typename CompatibleNumberUnsignedType>
+struct is_compatible_unsigned_integer_type
+{
+  static constexpr auto value = is_compatible_unsigned_integer_type_impl<std::is_arithmetic<CompatibleNumberUnsignedType>::value, RealUnsignedType, CompatibleNumberUnsignedType>::value;
+};
+
 template <typename RealFloat, typename CompatibleFloat>
 struct is_compatible_float_type
 {
@@ -341,13 +374,13 @@ template <typename = void, typename = void>
 struct adl_serializer
 {
   template <typename Json, typename T>
-  static auto from_json(Json&& j, T& val) -> decltype(::nlohmann::from_json(std::forward<Json>(j), val), void())
+  static void from_json(Json&& j, T& val)
   {
     ::nlohmann::from_json(std::forward<Json>(j), val);
   }
 
   template <typename Json, typename T>
-  static auto to_json(Json& j, T&& val) -> decltype(::nlohmann::to_json(j, std::forward<T>(val)), void())
+  static void to_json(Json& j, T&& val)
   {
     ::nlohmann::to_json(j, std::forward<T>(val));
   }
@@ -451,11 +484,6 @@ class basic_json
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
           AllocatorType>;
 
-    template <template <typename...> class T>
-    struct wrapper{};
-
-    using supported_tpl_types = std::tuple<wrapper<ObjectType>, wrapper<ArrayType>, wrapper<AllocatorType>, wrapper<JSONSerializer>>;
-
   public:
     // forward declarations
     template<typename U> class iter_impl;
@@ -1507,8 +1535,15 @@ class basic_json
     }
 
     // constructor chosen when JSONSerializer::to_json exists for type T
-    template <typename T, typename = typename std::enable_if<detail::has_to_json<
-                              JSONSerializer, basic_json, uncvref_t<T>>::value>::type>
+    template <typename T, enable_if_t<detail::has_to_json<
+                              JSONSerializer, basic_json, uncvref_t<T>>::value and not (detail::is_compatible_object_type<object_t, uncvref_t<T>>::value or
+                                                                                        detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>::value or
+                                                                                        detail::is_compatible_float_type<number_float_t, uncvref_t<T>>::value or
+                                                                                        detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>::value or
+                                                                                        detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>::value or
+                                                                                        std::is_constructible<string_t, uncvref_t<T>>::value or
+                                                                                        std::is_base_of<std::istream, uncvref_t<T>>::value or
+                                                                                        std::is_same<boolean_t, uncvref_t<T>>::value), int> = 0>
     explicit basic_json(T &&val)
     {
       JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
@@ -3167,21 +3202,27 @@ class basic_json
     @since version 1.0.0
     */
     template <typename ValueType,
-              typename std::enable_if<
-                  not std::is_pointer<ValueType>::value and
-                      not detail::has_from_json<JSONSerializer, basic_json,
-                                                uncvref_t<ValueType>>::value,
-                  int>::type = 0>
+              enable_if_t<
+                  not std::is_pointer<ValueType>::value,
+                  int> = 0>
     auto get() const
         -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) {
       return get_impl(static_cast<ValueType *>(nullptr));
     }
 
-    template <typename ValueType,
-              typename = enable_if_t<detail::has_from_json<
-                  JSONSerializer, basic_json, uncvref_t<ValueType>>::value>>
-    auto get() const -> uncvref_t<ValueType> {
-      using type = uncvref_t<ValueType>;
+    template <typename T,
+              enable_if_t<detail::has_from_json<
+                  JSONSerializer, basic_json, uncvref_t<T>>::value 
+                              and not (detail::is_compatible_object_type<object_t, uncvref_t<T>>::value or
+                                                                                        detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>::value or
+                                                                                        detail::is_compatible_float_type<number_float_t, uncvref_t<T>>::value or
+                                                                                        detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>::value or
+                                                                                        detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>::value or
+                                                                                        std::is_constructible<string_t, uncvref_t<T>>::value or
+                                                                                        std::is_same<boolean_t, uncvref_t<T>>::value), int> = 0>
+    auto get() const -> uncvref_t<T>
+    {
+      using type = uncvref_t<T>;
       static_assert(std::is_default_constructible<type>::value &&
                         std::is_copy_constructible<type>::value,
                     "user-defined types must be DefaultConstructible and "
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 2e2a92cc..826baaae 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -397,7 +397,7 @@ struct my_serializer
   }
 };
 
-/*using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool,
+using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool,
                                      std::int64_t, std::uint64_t, double,
                                      std::allocator, my_serializer>;
 
@@ -430,4 +430,3 @@ TEST_CASE("custom serializer")
     CHECK(pod2 == pod);
   }
 }
-*/

From 0d91113ccf757d501ab698631827440f6a470181 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Mon, 21 Nov 2016 00:22:47 +0100
Subject: [PATCH 055/174] add negation, disjunction, and conjunction from C++17

---
 src/json.hpp | 48 +++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 39 insertions(+), 9 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 096aecc8..ff58df20 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -119,6 +119,9 @@ using remove_reference_t = typename std::remove_reference<T>::type;
 template <typename T>
 using uncvref_t = remove_cv_t<remove_reference_t<T>>;
 
+template <bool If, typename Then, typename Else>
+using conditional_t = typename std::conditional<If, Then, Else>::type;
+
 // TODO update this doc
 /*!
 @brief unnamed namespace with internal helper functions
@@ -127,6 +130,23 @@ using uncvref_t = remove_cv_t<remove_reference_t<T>>;
 
 namespace detail
 {
+// implementation of 3 C++17 constructs: conjunction, disjunction, negation.
+// This is needed to avoid evaluating all the traits, MSVC cannot compile due
+// to std::is_constructible<basic_json_t, void> being instantiated
+// (void -> back_insert_iterator::value_type)
+// this could slow down compilation, since this implementation is taken from the example in cppreference...
+template <class...> struct conjunction : std::true_type {};
+template <class B1> struct conjunction<B1> : B1 {};
+template <class B1, class... Bn>
+struct conjunction<B1, Bn...>
+    : conditional_t<bool(B1::value), conjunction<Bn...>, B1> {};
+template <class B> struct negation : std::integral_constant<bool, !B::value> {};
+template <class...> struct disjunction : std::false_type {};
+template <class B1> struct disjunction<B1> : B1 {};
+template <class B1, class... Bn>
+struct disjunction<B1, Bn...>
+    : conditional_t<bool(B1::value), B1, disjunction<Bn...>> {};
+
 /*!
 @brief Helper to determine whether there's a key_type for T.
 
@@ -206,7 +226,12 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 template<class RealType, class CompatibleObjectType>
 struct is_compatible_object_type
 {
-  static auto constexpr value = is_compatible_object_type_impl<has_mapped_type<CompatibleObjectType>::value and has_key_type<CompatibleObjectType>::value, RealType, CompatibleObjectType>::value;
+  static auto constexpr value = is_compatible_object_type_impl<
+                                conjunction<negation<std::is_same<void, CompatibleObjectType>>,
+                                            has_mapped_type<CompatibleObjectType>,
+                                            has_key_type<CompatibleObjectType>>::value,
+                                RealType, CompatibleObjectType>::value;
+
 };
 
 template <bool B, class BasicJson, class CompatibleArrayType>
@@ -216,20 +241,25 @@ template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
 {
   static constexpr auto value =
-                 not std::is_same<CompatibleArrayType, typename BasicJson::iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>::value and
-                 std::is_constructible<BasicJson, typename CompatibleArrayType::value_type>::value;
+  conjunction<
+  negation<disjunction<
+                 std::is_same<CompatibleArrayType, typename BasicJson::iterator>,
+                 std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>,
+                 std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>,
+                 std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>,
+                 std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>,
+                 std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>>>,
+                 std::is_constructible<BasicJson, typename CompatibleArrayType::value_type>>::value;
 
 };
 
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-  static auto constexpr value = is_compatible_array_type_impl<not is_compatible_object_type<typename BasicJson::object_t, CompatibleArrayType>::value and has_value_type<CompatibleArrayType>::value and has_iterator<CompatibleArrayType>::value, BasicJson, CompatibleArrayType>::value;
+  static auto constexpr value = is_compatible_array_type_impl<
+  conjunction<negation<is_compatible_object_type<typename BasicJson::object_t, CompatibleArrayType>>,
+              has_value_type<CompatibleArrayType>,
+              has_iterator<CompatibleArrayType>>::value, BasicJson, CompatibleArrayType>::value;
 };
 
 template <bool, typename, typename>

From e2dbe7a69f09eeae66a806334ac2620514c69465 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Mon, 21 Nov 2016 10:17:26 +0100
Subject: [PATCH 056/174] correctly constrain basic_json udt constructor

---
 src/json.hpp | 24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index ff58df20..2265457f 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -512,7 +512,7 @@ class basic_json
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
-          AllocatorType>;
+          AllocatorType, JSONSerializer>;
 
   public:
     // forward declarations
@@ -1565,15 +1565,19 @@ class basic_json
     }
 
     // constructor chosen when JSONSerializer::to_json exists for type T
-    template <typename T, enable_if_t<detail::has_to_json<
-                              JSONSerializer, basic_json, uncvref_t<T>>::value and not (detail::is_compatible_object_type<object_t, uncvref_t<T>>::value or
-                                                                                        detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>::value or
-                                                                                        detail::is_compatible_float_type<number_float_t, uncvref_t<T>>::value or
-                                                                                        detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>::value or
-                                                                                        detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>::value or
-                                                                                        std::is_constructible<string_t, uncvref_t<T>>::value or
-                                                                                        std::is_base_of<std::istream, uncvref_t<T>>::value or
-                                                                                        std::is_same<boolean_t, uncvref_t<T>>::value), int> = 0>
+    template <typename T, enable_if_t<detail::conjunction<detail::negation<std::is_same<uncvref_t<T>, basic_json_t>>,
+detail::negation<detail::disjunction<
+                                     detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>,
+                                     detail::is_compatible_object_type<object_t, uncvref_t<T>>,
+                                     detail::is_compatible_float_type<number_float_t, uncvref_t<T>>,
+                                     detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>,
+                                     detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>,
+                                     std::is_constructible<string_t, uncvref_t<T>>,
+                                     std::is_base_of<std::istream, uncvref_t<T>>,
+                                     std::is_same<boolean_t, uncvref_t<T>>>>,
+                                                          detail::has_to_json<
+                              JSONSerializer, basic_json, uncvref_t<T>>
+>::value, int> = 0>
     explicit basic_json(T &&val)
     {
       JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));

From 9b401972a0d5324789e25be2ba6854273d378afb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Delrieu?= <theo@tanker.io>
Date: Thu, 17 Nov 2016 18:15:40 +0100
Subject: [PATCH 057/174] add a macro for has_xxx types

---
 src/json.hpp | 72 +++++++++++++---------------------------------------
 1 file changed, 18 insertions(+), 54 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 2265457f..bd91a615 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -140,6 +140,7 @@ template <class B1> struct conjunction<B1> : B1 {};
 template <class B1, class... Bn>
 struct conjunction<B1, Bn...>
     : conditional_t<bool(B1::value), conjunction<Bn...>, B1> {};
+
 template <class B> struct negation : std::integral_constant<bool, !B::value> {};
 template <class...> struct disjunction : std::false_type {};
 template <class B1> struct disjunction<B1> : B1 {};
@@ -149,68 +150,31 @@ struct disjunction<B1, Bn...>
 
 /*!
 @brief Helper to determine whether there's a key_type for T.
-
 Thus helper is used to tell associative containers apart from other containers
 such as sequence containers. For instance, `std::map` passes the test as it
 contains a `mapped_type`, whereas `std::vector` fails the test.
-
 @sa http://stackoverflow.com/a/7728728/266378
 @since version 1.0.0, overworked in version 2.0.6
 */
-template<typename T>
-struct has_mapped_type
-{
-  private:
-    template <typename U, typename = typename U::mapped_type>
-    static int detect(U&&);
+#define NLOHMANN_JSON_HAS_HELPER(type)                                         \
+  template <typename T> struct has_##type {                                    \
+  private:                                                                     \
+    template <typename U, typename = typename U::type>                         \
+    static int detect(U &&);                                                   \
+                                                                               \
+    static void detect(...);                                                   \
+                                                                               \
+  public:                                                                      \
+    static constexpr bool value =                                              \
+        std::is_integral<decltype(detect(std::declval<T>()))>::value;          \
+  };
 
-    static void detect(...);
-  public:
-    static constexpr bool value =
-        std::is_integral<decltype(detect(std::declval<T>()))>::value;
-};
+NLOHMANN_JSON_HAS_HELPER(mapped_type)
+NLOHMANN_JSON_HAS_HELPER(key_type)
+NLOHMANN_JSON_HAS_HELPER(value_type)
+NLOHMANN_JSON_HAS_HELPER(iterator)
 
-template <template <typename...> class T>
-struct wrapper{};
-
-template<typename T>
-struct has_key_type
-{
-  private:
-    template <typename U, typename = typename U::key_type>
-    static int detect(U&&);
-
-    static void detect(...);
-  public:
-    static constexpr bool value =
-        std::is_integral<decltype(detect(std::declval<T>()))>::value;
-};
-
-template<typename T>
-struct has_value_type
-{
-  private:
-    template <typename U, typename = typename U::value_type>
-    static int detect(U&&);
-
-    static void detect(...);
-  public:
-    static constexpr bool value =
-        std::is_integral<decltype(detect(std::declval<T>()))>::value;
-};
-
-template<typename T>
-struct has_iterator
-{
-  private:
-    template <typename U, typename = typename U::iterator>
-    static int detect(U&&);
-
-    static void detect(...);
-  public:
-    static constexpr bool value =
-        std::is_integral<decltype(detect(std::declval<T>()))>::value;
-};
+#undef NLOHMANN_JSON_HAS_HELPER
 
 template <bool B, class RealType, class CompatibleObjectType>
 struct is_compatible_object_type_impl : std::false_type{};

From ee19acaf056e310447acba40f53a0786a67215f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Mon, 21 Nov 2016 13:23:25 +0100
Subject: [PATCH 058/174] add is_compatible_basic_json_type trait

---
 src/json.hpp | 41 ++++++++++++++++++++---------------------
 1 file changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index bd91a615..0c477a0d 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -267,6 +267,19 @@ struct is_compatible_float_type
                                 std::is_floating_point<CompatibleFloat>::value;
 };
 
+template <typename T, typename BasicJson>
+struct is_compatible_basic_json_type
+{
+  static auto constexpr value =  disjunction<
+                                     is_compatible_array_type<BasicJson, T>,
+                                     is_compatible_object_type<typename BasicJson::object_t, T>,
+                                     is_compatible_float_type<typename BasicJson::number_float_t, T>,
+                                     is_compatible_integer_type<typename BasicJson::number_integer_t, T>,
+                                     is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t, T>,
+                                     std::is_constructible<typename BasicJson::string_t, T>,
+                                     std::is_same<typename BasicJson::boolean_t, T>>::value;
+};
+
 template <template <typename, typename> class JSONSerializer, typename Json,
           typename T>
 struct has_from_json
@@ -1528,20 +1541,13 @@ class basic_json
         assert_invariant();
     }
 
+
     // constructor chosen when JSONSerializer::to_json exists for type T
+    // first check avoids being chosen instead of move/copy constructor
     template <typename T, enable_if_t<detail::conjunction<detail::negation<std::is_same<uncvref_t<T>, basic_json_t>>,
-detail::negation<detail::disjunction<
-                                     detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>,
-                                     detail::is_compatible_object_type<object_t, uncvref_t<T>>,
-                                     detail::is_compatible_float_type<number_float_t, uncvref_t<T>>,
-                                     detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>,
-                                     detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>,
-                                     std::is_constructible<string_t, uncvref_t<T>>,
-                                     std::is_base_of<std::istream, uncvref_t<T>>,
-                                     std::is_same<boolean_t, uncvref_t<T>>>>,
-                                                          detail::has_to_json<
-                              JSONSerializer, basic_json, uncvref_t<T>>
->::value, int> = 0>
+detail::negation<std::is_base_of<std::istream, uncvref_t<T>>>,
+detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_t>>, detail::has_to_json<
+                              JSONSerializer, basic_json, uncvref_t<T>>>::value, int> = 0>
     explicit basic_json(T &&val)
     {
       JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
@@ -3209,15 +3215,8 @@ detail::negation<detail::disjunction<
     }
 
     template <typename T,
-              enable_if_t<detail::has_from_json<
-                  JSONSerializer, basic_json, uncvref_t<T>>::value 
-                              and not (detail::is_compatible_object_type<object_t, uncvref_t<T>>::value or
-                                                                                        detail::is_compatible_array_type<basic_json_t, uncvref_t<T>>::value or
-                                                                                        detail::is_compatible_float_type<number_float_t, uncvref_t<T>>::value or
-                                                                                        detail::is_compatible_integer_type<number_integer_t, uncvref_t<T>>::value or
-                                                                                        detail::is_compatible_unsigned_integer_type<number_unsigned_t, uncvref_t<T>>::value or
-                                                                                        std::is_constructible<string_t, uncvref_t<T>>::value or
-                                                                                        std::is_same<boolean_t, uncvref_t<T>>::value), int> = 0>
+              enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_t>>,
+                                              detail::has_from_json<JSONSerializer, basic_json_t, uncvref_t<T>>>::value, int> = 0>
     auto get() const -> uncvref_t<T>
     {
       using type = uncvref_t<T>;

From 47bc4021130e66dd235de387e10081259489623b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Delrieu?= <theo@tanker.io>
Date: Tue, 22 Nov 2016 13:27:00 +0100
Subject: [PATCH 059/174] only use conjunction & co when needed to avoid MSVC
 crashing

---
 src/json.hpp | 69 ++++++++++++++++++++++++++++++----------------------
 1 file changed, 40 insertions(+), 29 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 0c477a0d..34d3cb20 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -205,25 +205,28 @@ template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
 {
   static constexpr auto value =
-  conjunction<
-  negation<disjunction<
-                 std::is_same<CompatibleArrayType, typename BasicJson::iterator>,
-                 std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>,
-                 std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>,
-                 std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>,
-                 std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>,
-                 std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>>>,
-                 std::is_constructible<BasicJson, typename CompatibleArrayType::value_type>>::value;
+ not std::is_same<CompatibleArrayType, typename BasicJson::iterator>::value and 
+      not std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>::value and
+     not std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>::value and
+      not std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>::value and
+      not std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>::value and
+not       std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>::value;
 
 };
 
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-  static auto constexpr value = is_compatible_array_type_impl<
-  conjunction<negation<is_compatible_object_type<typename BasicJson::object_t, CompatibleArrayType>>,
-              has_value_type<CompatibleArrayType>,
-              has_iterator<CompatibleArrayType>>::value, BasicJson, CompatibleArrayType>::value;
+  static auto constexpr value = disjunction<std::is_same<BasicJson, CompatibleArrayType>,
+                                            is_compatible_array_type_impl<
+                                                    conjunction<negation<
+                      // MSVC has troubles on that one
+                                                    std::is_same<void, CompatibleArrayType>>,
+                                                    negation<is_compatible_object_type<
+                                                              typename BasicJson::object_t, CompatibleArrayType>>,
+                                                    has_value_type<CompatibleArrayType>,
+                                                    has_iterator<CompatibleArrayType>>::value,
+                                                    BasicJson, CompatibleArrayType>>::value;
 };
 
 template <bool, typename, typename>
@@ -270,14 +273,16 @@ struct is_compatible_float_type
 template <typename T, typename BasicJson>
 struct is_compatible_basic_json_type
 {
-  static auto constexpr value =  disjunction<
-                                     is_compatible_array_type<BasicJson, T>,
-                                     is_compatible_object_type<typename BasicJson::object_t, T>,
-                                     is_compatible_float_type<typename BasicJson::number_float_t, T>,
-                                     is_compatible_integer_type<typename BasicJson::number_integer_t, T>,
-                                     is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t, T>,
-                                     std::is_constructible<typename BasicJson::string_t, T>,
-                                     std::is_same<typename BasicJson::boolean_t, T>>::value;
+  static auto constexpr value =  
+    
+                                     std::is_same<T, BasicJson>::value or
+                                     std::is_constructible<typename BasicJson::string_t, T>::value or
+                                     std::is_same<typename BasicJson::boolean_t, T>::value or
+                                     is_compatible_array_type<BasicJson, T>::value or
+                                     is_compatible_object_type<typename BasicJson::object_t, T>::value or
+                                     is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
+                                     is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or
+                                     is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t, T>::value;
 };
 
 template <template <typename, typename> class JSONSerializer, typename Json,
@@ -1531,14 +1536,20 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<class CompatibleArrayType, enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value, int> = 0>
-    basic_json(const CompatibleArrayType& val)
-        : m_type(value_t::array)
-    {
-        using std::begin;
-        using std::end;
-        m_value.array = create<array_t>(begin(val), end(val));
-        assert_invariant();
+    template <
+        class CompatibleArrayType,
+        enable_if_t<
+            detail::disjunction<
+                // MSVC..
+                std::is_same<uncvref_t<CompatibleArrayType>, basic_json_t>,
+                detail::is_compatible_array_type<basic_json_t,
+                                                 CompatibleArrayType>>::value,
+            int> = 0>
+    basic_json(const CompatibleArrayType &val) : m_type(value_t::array) {
+      using std::begin;
+      using std::end;
+      m_value.array = create<array_t>(begin(val), end(val));
+      assert_invariant();
     }
 
 

From 907484fb4368ed7e21a5ea11a1bb13c769e80e0a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Thu, 24 Nov 2016 00:29:56 +0100
Subject: [PATCH 060/174] format biggest lines

---
 src/json.hpp | 193 +++++++++++++++++++++++++++++++--------------------
 1 file changed, 119 insertions(+), 74 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 34d3cb20..2ab6efd9 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -183,19 +183,20 @@ template <class RealType, class CompatibleObjectType>
 struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 {
   static constexpr auto value =
-                 std::is_constructible<typename RealType::key_type, typename CompatibleObjectType::key_type>::value and
-                 std::is_constructible<typename RealType::mapped_type, typename CompatibleObjectType::mapped_type>::value;
+      std::is_constructible<typename RealType::key_type,
+                            typename CompatibleObjectType::key_type>::value and
+      std::is_constructible<typename RealType::mapped_type,
+                            typename CompatibleObjectType::mapped_type>::value;
 };
 
 template<class RealType, class CompatibleObjectType>
 struct is_compatible_object_type
 {
   static auto constexpr value = is_compatible_object_type_impl<
-                                conjunction<negation<std::is_same<void, CompatibleObjectType>>,
-                                            has_mapped_type<CompatibleObjectType>,
-                                            has_key_type<CompatibleObjectType>>::value,
-                                RealType, CompatibleObjectType>::value;
-
+      conjunction<negation<std::is_same<void, CompatibleObjectType>>,
+                  has_mapped_type<CompatibleObjectType>,
+                  has_key_type<CompatibleObjectType>>::value,
+      RealType, CompatibleObjectType>::value;
 };
 
 template <bool B, class BasicJson, class CompatibleArrayType>
@@ -205,28 +206,34 @@ template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
 {
   static constexpr auto value =
- not std::is_same<CompatibleArrayType, typename BasicJson::iterator>::value and 
-      not std::is_same<CompatibleArrayType, typename BasicJson::const_iterator>::value and
-     not std::is_same<CompatibleArrayType, typename BasicJson::reverse_iterator>::value and
-      not std::is_same<CompatibleArrayType, typename BasicJson::const_reverse_iterator>::value and
-      not std::is_same<CompatibleArrayType, typename BasicJson::array_t::iterator>::value and
-not       std::is_same<CompatibleArrayType, typename BasicJson::array_t::const_iterator>::value;
-
+      not std::is_same<CompatibleArrayType,
+                       typename BasicJson::iterator>::value and
+      not std::is_same<CompatibleArrayType,
+                       typename BasicJson::const_iterator>::value and
+      not std::is_same<CompatibleArrayType,
+                       typename BasicJson::reverse_iterator>::value and
+      not std::is_same<CompatibleArrayType,
+                       typename BasicJson::const_reverse_iterator>::value and
+      not std::is_same<CompatibleArrayType,
+                       typename BasicJson::array_t::iterator>::value and
+      not std::is_same<CompatibleArrayType,
+                       typename BasicJson::array_t::const_iterator>::value;
 };
 
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-  static auto constexpr value = disjunction<std::is_same<BasicJson, CompatibleArrayType>,
-                                            is_compatible_array_type_impl<
-                                                    conjunction<negation<
-                      // MSVC has troubles on that one
-                                                    std::is_same<void, CompatibleArrayType>>,
-                                                    negation<is_compatible_object_type<
-                                                              typename BasicJson::object_t, CompatibleArrayType>>,
-                                                    has_value_type<CompatibleArrayType>,
-                                                    has_iterator<CompatibleArrayType>>::value,
-                                                    BasicJson, CompatibleArrayType>>::value;
+  static auto constexpr value = disjunction<
+      std::is_same<BasicJson, CompatibleArrayType>,
+      is_compatible_array_type_impl<
+          conjunction<negation<
+                          // MSVC has troubles without this
+                          std::is_same<void, CompatibleArrayType>>,
+                      negation<is_compatible_object_type<
+                          typename BasicJson::object_t, CompatibleArrayType>>,
+                      has_value_type<CompatibleArrayType>,
+                      has_iterator<CompatibleArrayType>>::value,
+          BasicJson, CompatibleArrayType>>::value;
 };
 
 template <bool, typename, typename>
@@ -235,15 +242,19 @@ struct is_compatible_integer_type_impl : std::false_type{};
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
 {
- static constexpr auto value = std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value and
-                 std::numeric_limits<CompatibleNumberIntegerType>::is_integer and
-                 std::numeric_limits<CompatibleNumberIntegerType>::is_signed;
+  static constexpr auto value =
+      std::is_constructible<RealIntegerType,
+                            CompatibleNumberIntegerType>::value and
+      std::numeric_limits<CompatibleNumberIntegerType>::is_integer and
+      std::numeric_limits<CompatibleNumberIntegerType>::is_signed;
 };
 
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
-  static constexpr auto value = is_compatible_integer_type_impl<std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType, CompatibleNumberIntegerType>::value;
+  static constexpr auto value = is_compatible_integer_type_impl<
+      std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType,
+      CompatibleNumberIntegerType>::value;
 };
 
 template <bool, typename, typename>
@@ -252,37 +263,43 @@ struct is_compatible_unsigned_integer_type_impl : std::false_type{};
 template <typename RealUnsignedType, typename CompatibleNumberUnsignedType>
 struct is_compatible_unsigned_integer_type_impl<true, RealUnsignedType, CompatibleNumberUnsignedType>
 {
- static constexpr auto value = std::is_constructible<RealUnsignedType, CompatibleNumberUnsignedType>::value and
-                 std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
-                 not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed;
+  static constexpr auto value =
+      std::is_constructible<RealUnsignedType,
+                            CompatibleNumberUnsignedType>::value and
+      std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
+      not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed;
 };
 
 template <typename RealUnsignedType, typename CompatibleNumberUnsignedType>
 struct is_compatible_unsigned_integer_type
 {
-  static constexpr auto value = is_compatible_unsigned_integer_type_impl<std::is_arithmetic<CompatibleNumberUnsignedType>::value, RealUnsignedType, CompatibleNumberUnsignedType>::value;
+  static constexpr auto value = is_compatible_unsigned_integer_type_impl<
+      std::is_arithmetic<CompatibleNumberUnsignedType>::value, RealUnsignedType,
+      CompatibleNumberUnsignedType>::value;
 };
 
 template <typename RealFloat, typename CompatibleFloat>
 struct is_compatible_float_type
 {
-  static constexpr auto value = std::is_constructible<RealFloat, CompatibleFloat>::value and
-                                std::is_floating_point<CompatibleFloat>::value;
+  static constexpr auto value =
+      std::is_constructible<RealFloat, CompatibleFloat>::value and
+      std::is_floating_point<CompatibleFloat>::value;
 };
 
 template <typename T, typename BasicJson>
 struct is_compatible_basic_json_type
 {
-  static auto constexpr value =  
-    
-                                     std::is_same<T, BasicJson>::value or
-                                     std::is_constructible<typename BasicJson::string_t, T>::value or
-                                     std::is_same<typename BasicJson::boolean_t, T>::value or
-                                     is_compatible_array_type<BasicJson, T>::value or
-                                     is_compatible_object_type<typename BasicJson::object_t, T>::value or
-                                     is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
-                                     is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or
-                                     is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t, T>::value;
+  static auto constexpr value =
+      std::is_same<T, BasicJson>::value or
+      std::is_constructible<typename BasicJson::string_t, T>::value or
+      std::is_same<typename BasicJson::boolean_t, T>::value or
+      is_compatible_array_type<BasicJson, T>::value or
+      is_compatible_object_type<typename BasicJson::object_t, T>::value or
+      is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
+      is_compatible_integer_type<typename BasicJson::number_integer_t,
+                                 T>::value or
+      is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t,
+                                          T>::value;
 };
 
 template <template <typename, typename> class JSONSerializer, typename Json,
@@ -322,23 +339,24 @@ void from_json();
 
 struct to_json_fn
 {
-    template <typename Json, typename T>
-    constexpr auto
-    operator()(Json&& j, T &&val) const noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
-        -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)), void())
-    {
-      return to_json(std::forward<Json>(j), std::forward<T>(val));
-    }
+  template <typename Json, typename T>
+  constexpr auto operator()(Json &&j, T &&val) const
+      noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
+          -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)),
+                      void())
+  {
+    return to_json(std::forward<Json>(j), std::forward<T>(val));
+  }
 };
 
 struct from_json_fn
 {
-    template <typename Json, typename T>
-    constexpr auto operator()(Json &&j, T &val) const
-                               noexcept(noexcept(from_json(std::forward<Json>(j), val)))
-        -> decltype(from_json(std::forward<Json>(j), val), void())
-    {
-      return from_json(std::forward<Json>(j), val);
+  template <typename Json, typename T>
+  constexpr auto operator()(Json &&j, T &val) const
+      noexcept(noexcept(from_json(std::forward<Json>(j), val)))
+          -> decltype(from_json(std::forward<Json>(j), val), void())
+  {
+    return from_json(std::forward<Json>(j), val);
     }
 };
 
@@ -1555,10 +1573,17 @@ class basic_json
 
     // constructor chosen when JSONSerializer::to_json exists for type T
     // first check avoids being chosen instead of move/copy constructor
-    template <typename T, enable_if_t<detail::conjunction<detail::negation<std::is_same<uncvref_t<T>, basic_json_t>>,
-detail::negation<std::is_base_of<std::istream, uncvref_t<T>>>,
-detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_t>>, detail::has_to_json<
-                              JSONSerializer, basic_json, uncvref_t<T>>>::value, int> = 0>
+    template <
+        typename T,
+        enable_if_t<
+            detail::conjunction<
+                detail::negation<std::is_same<uncvref_t<T>, basic_json_t>>,
+                detail::negation<std::is_base_of<std::istream, uncvref_t<T>>>,
+                detail::negation<detail::is_compatible_basic_json_type<
+                    uncvref_t<T>, basic_json_t>>,
+                detail::has_to_json<JSONSerializer, basic_json,
+                                    uncvref_t<T>>>::value,
+            int> = 0>
     explicit basic_json(T &&val)
     {
       JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
@@ -1757,7 +1782,11 @@ detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_
 
     @since version 1.0.0
     */
-    template<typename CompatibleNumberIntegerType, enable_if_t<detail::is_compatible_integer_type<number_integer_t, CompatibleNumberIntegerType>::value, int> = 0>
+    template <
+        typename CompatibleNumberIntegerType,
+        enable_if_t<detail::is_compatible_integer_type<
+                        number_integer_t, CompatibleNumberIntegerType>::value,
+                    int> = 0>
     basic_json(const CompatibleNumberIntegerType val) noexcept
         : m_type(value_t::number_integer),
           m_value(static_cast<number_integer_t>(val))
@@ -1811,7 +1840,11 @@ detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_
 
     @since version 2.0.0
     */
-    template<typename CompatibleNumberUnsignedType, enable_if_t<detail::is_compatible_unsigned_integer_type<number_unsigned_t, CompatibleNumberUnsignedType>::value, int> = 0>
+    template <
+        typename CompatibleNumberUnsignedType,
+        enable_if_t<detail::is_compatible_unsigned_integer_type<
+                        number_unsigned_t, CompatibleNumberUnsignedType>::value,
+                    int> = 0>
     basic_json(const CompatibleNumberUnsignedType val) noexcept
         : m_type(value_t::number_unsigned),
           m_value(static_cast<number_unsigned_t>(val))
@@ -1887,7 +1920,10 @@ detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_
 
     @since version 1.0.0
     */
-    template<typename CompatibleNumberFloatType, enable_if_t<detail::is_compatible_float_type<number_float_t, CompatibleNumberFloatType>::value, int> = 0>
+    template <typename CompatibleNumberFloatType,
+              enable_if_t<detail::is_compatible_float_type<
+                              number_float_t, CompatibleNumberFloatType>::value,
+                          int> = 0>
     basic_json(const CompatibleNumberFloatType val) noexcept
         : basic_json(number_float_t(val))
     {
@@ -2941,13 +2977,17 @@ detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_
     }
 
     /// get an array (explicit)
-    template<class T, typename std::enable_if<
-                 std::is_convertible<basic_json_t, typename T::value_type>::value and
-                 not std::is_same<basic_json_t, typename T::value_type>::value and
-                 not std::is_arithmetic<T>::value and
-                 not std::is_convertible<std::string, T>::value and
-                 not detail::has_mapped_type<T>::value, int>::type = 0>
-    T get_impl(T* /*unused*/) const
+    template <
+        class T,
+        typename std::enable_if<
+            std::is_convertible<basic_json_t, typename T::value_type>::value and
+                not std::is_same<basic_json_t,
+                                 typename T::value_type>::value and
+                not std::is_arithmetic<T>::value and
+                not std::is_convertible<std::string, T>::value and
+                not detail::has_mapped_type<T>::value,
+            int>::type = 0>
+    T get_impl(T *) const
     {
         if (is_array())
         {
@@ -3225,9 +3265,14 @@ detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_
       return get_impl(static_cast<ValueType *>(nullptr));
     }
 
-    template <typename T,
-              enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<uncvref_t<T>, basic_json_t>>,
-                                              detail::has_from_json<JSONSerializer, basic_json_t, uncvref_t<T>>>::value, int> = 0>
+    template <
+        typename T,
+        enable_if_t<detail::conjunction<
+                        detail::negation<detail::is_compatible_basic_json_type<
+                            uncvref_t<T>, basic_json_t>>,
+                        detail::has_from_json<JSONSerializer, basic_json_t,
+                                              uncvref_t<T>>>::value,
+                    int> = 0>
     auto get() const -> uncvref_t<T>
     {
       using type = uncvref_t<T>;

From 74bb11d92c965c9ce10e87376f1b969adcac7960 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Delrieu?= <theo@tanker.io>
Date: Thu, 24 Nov 2016 13:22:46 +0100
Subject: [PATCH 061/174] remove some useless checks, format a bit, added some
 comments

---
 src/json.hpp | 151 +++++++++++++++++++++++----------------------------
 1 file changed, 68 insertions(+), 83 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 2ab6efd9..10969138 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -130,11 +130,17 @@ using conditional_t = typename std::conditional<If, Then, Else>::type;
 
 namespace detail
 {
-// implementation of 3 C++17 constructs: conjunction, disjunction, negation.
-// This is needed to avoid evaluating all the traits, MSVC cannot compile due
-// to std::is_constructible<basic_json_t, void> being instantiated
-// (void -> back_insert_iterator::value_type)
-// this could slow down compilation, since this implementation is taken from the example in cppreference...
+// Implementation of 3 C++17 constructs: conjunction, disjunction, negation.
+// This is needed to avoid evaluating all the traits in a condition
+//
+// For example: not std::is_same<void, T>::value and has_value_type<T>::value
+// will not compile when T = void (on MSVC at least)
+// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value
+// will stop evaluating if negation<...>::value == false
+//
+// Please note that those constructs must be used with caution, since symbols can
+// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors)
+// Only use it when you have too (see example ahead)
 template <class...> struct conjunction : std::true_type {};
 template <class B1> struct conjunction<B1> : B1 {};
 template <class B1, class... Bn>
@@ -192,6 +198,8 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 template<class RealType, class CompatibleObjectType>
 struct is_compatible_object_type
 {
+  // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void
+  // hence the conjunction
   static auto constexpr value = is_compatible_object_type_impl<
       conjunction<negation<std::is_same<void, CompatibleObjectType>>,
                   has_mapped_type<CompatibleObjectType>,
@@ -223,17 +231,14 @@ struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-  static auto constexpr value = disjunction<
-      std::is_same<BasicJson, CompatibleArrayType>,
-      is_compatible_array_type_impl<
-          conjunction<negation<
-                          // MSVC has troubles without this
-                          std::is_same<void, CompatibleArrayType>>,
-                      negation<is_compatible_object_type<
-                          typename BasicJson::object_t, CompatibleArrayType>>,
-                      has_value_type<CompatibleArrayType>,
-                      has_iterator<CompatibleArrayType>>::value,
-          BasicJson, CompatibleArrayType>>::value;
+  // the check for CompatibleArrayType = void is done in is_compatible_object_type
+  // but we need the conjunction here as well
+  static auto constexpr value = is_compatible_array_type_impl<
+      conjunction<negation<is_compatible_object_type<
+                      typename BasicJson::object_t, CompatibleArrayType>>,
+                  has_value_type<CompatibleArrayType>,
+                  has_iterator<CompatibleArrayType>>::value,
+      BasicJson, CompatibleArrayType>::value;
 };
 
 template <bool, typename, typename>
@@ -242,11 +247,14 @@ struct is_compatible_integer_type_impl : std::false_type{};
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
 {
+  using RealLimits = std::numeric_limits<RealIntegerType>;
+  using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>;
+
   static constexpr auto value =
       std::is_constructible<RealIntegerType,
                             CompatibleNumberIntegerType>::value and
-      std::numeric_limits<CompatibleNumberIntegerType>::is_integer and
-      std::numeric_limits<CompatibleNumberIntegerType>::is_signed;
+      CompatibleLimits::is_integer and
+      RealLimits::is_signed == CompatibleLimits::is_signed;
 };
 
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
@@ -257,27 +265,6 @@ struct is_compatible_integer_type
       CompatibleNumberIntegerType>::value;
 };
 
-template <bool, typename, typename>
-struct is_compatible_unsigned_integer_type_impl : std::false_type{};
-
-template <typename RealUnsignedType, typename CompatibleNumberUnsignedType>
-struct is_compatible_unsigned_integer_type_impl<true, RealUnsignedType, CompatibleNumberUnsignedType>
-{
-  static constexpr auto value =
-      std::is_constructible<RealUnsignedType,
-                            CompatibleNumberUnsignedType>::value and
-      std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
-      not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed;
-};
-
-template <typename RealUnsignedType, typename CompatibleNumberUnsignedType>
-struct is_compatible_unsigned_integer_type
-{
-  static constexpr auto value = is_compatible_unsigned_integer_type_impl<
-      std::is_arithmetic<CompatibleNumberUnsignedType>::value, RealUnsignedType,
-      CompatibleNumberUnsignedType>::value;
-};
-
 template <typename RealFloat, typename CompatibleFloat>
 struct is_compatible_float_type
 {
@@ -298,8 +285,8 @@ struct is_compatible_basic_json_type
       is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
       is_compatible_integer_type<typename BasicJson::number_integer_t,
                                  T>::value or
-      is_compatible_unsigned_integer_type<typename BasicJson::number_unsigned_t,
-                                          T>::value;
+      is_compatible_integer_type<typename BasicJson::number_unsigned_t,
+                                 T>::value;
 };
 
 template <template <typename, typename> class JSONSerializer, typename Json,
@@ -334,11 +321,14 @@ public:
       detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
+// those declarations are needed to workaround a MSVC bug related to ADL
+// (idea taken from MSVC-Ranges implementation
 void to_json();
 void from_json();
 
 struct to_json_fn
 {
+  // is it really useful to mark those as constexpr?
   template <typename Json, typename T>
   constexpr auto operator()(Json &&j, T &&val) const
       noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
@@ -357,7 +347,7 @@ struct from_json_fn
           -> decltype(from_json(std::forward<Json>(j), val), void())
   {
     return from_json(std::forward<Json>(j), val);
-    }
+  }
 };
 
 /*!
@@ -384,18 +374,18 @@ struct DecimalSeparator : std::numpunct<char>
 // taken from ranges-v3
 // TODO add doc
 template <typename T>
-struct _static_const
+struct static_const
 {
   static constexpr T value{};
 };
 
 template <typename T>
-constexpr T _static_const<T>::value;
+constexpr T static_const<T>::value;
 
 inline namespace
 {
-  constexpr auto const& to_json = _static_const<detail::to_json_fn>::value;
-  constexpr auto const& from_json = _static_const<detail::from_json_fn>::value;
+  constexpr auto const& to_json = static_const<detail::to_json_fn>::value;
+  constexpr auto const& from_json = static_const<detail::from_json_fn>::value;
 }
 
 // default JSONSerializer template argument, doesn't care about template argument
@@ -1493,14 +1483,16 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<class CompatibleObjectType, enable_if_t<detail::is_compatible_object_type<object_t, CompatibleObjectType>::value, int> = 0>
-    basic_json(const CompatibleObjectType& val)
-        : m_type(value_t::object)
+    template <class CompatibleObjectType,
+              enable_if_t<detail::is_compatible_object_type<
+                              object_t, CompatibleObjectType>::value,
+                          int> = 0>
+    basic_json(const CompatibleObjectType &val) : m_type(value_t::object)
     {
-        using std::begin;
-        using std::end;
-        m_value.object = create<object_t>(begin(val), end(val));
-        assert_invariant();
+      using std::begin;
+      using std::end;
+      m_value.object = create<object_t>(begin(val), end(val));
+      assert_invariant();
     }
 
     /*!
@@ -1554,16 +1546,12 @@ class basic_json
 
     @since version 1.0.0
     */
-    template <
-        class CompatibleArrayType,
-        enable_if_t<
-            detail::disjunction<
-                // MSVC..
-                std::is_same<uncvref_t<CompatibleArrayType>, basic_json_t>,
-                detail::is_compatible_array_type<basic_json_t,
-                                                 CompatibleArrayType>>::value,
-            int> = 0>
-    basic_json(const CompatibleArrayType &val) : m_type(value_t::array) {
+    template <class CompatibleArrayType,
+              enable_if_t<detail::is_compatible_array_type<
+                              basic_json_t, CompatibleArrayType>::value,
+                          int> = 0>
+    basic_json(const CompatibleArrayType &val) : m_type(value_t::array)
+    {
       using std::begin;
       using std::end;
       m_value.array = create<array_t>(begin(val), end(val));
@@ -1571,19 +1559,18 @@ class basic_json
     }
 
 
-    // constructor chosen when JSONSerializer::to_json exists for type T
-    // first check avoids being chosen instead of move/copy constructor
+    // constructor chosen when:
+    // - JSONSerializer::to_json exists for type T
+    // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
+    // is_compatible_basic_json_type == not is_user_defined_type
     template <
         typename T,
-        enable_if_t<
-            detail::conjunction<
-                detail::negation<std::is_same<uncvref_t<T>, basic_json_t>>,
-                detail::negation<std::is_base_of<std::istream, uncvref_t<T>>>,
-                detail::negation<detail::is_compatible_basic_json_type<
-                    uncvref_t<T>, basic_json_t>>,
-                detail::has_to_json<JSONSerializer, basic_json,
-                                    uncvref_t<T>>>::value,
-            int> = 0>
+        enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
+                        not detail::is_compatible_basic_json_type<
+                            uncvref_t<T>, basic_json_t>::value and
+                        detail::has_to_json<JSONSerializer, basic_json,
+                                            uncvref_t<T>>::value,
+                    int> = 0>
     explicit basic_json(T &&val)
     {
       JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
@@ -1842,7 +1829,7 @@ class basic_json
     */
     template <
         typename CompatibleNumberUnsignedType,
-        enable_if_t<detail::is_compatible_unsigned_integer_type<
+        enable_if_t<detail::is_compatible_integer_type<
                         number_unsigned_t, CompatibleNumberUnsignedType>::value,
                     int> = 0>
     basic_json(const CompatibleNumberUnsignedType val) noexcept
@@ -3257,21 +3244,19 @@ class basic_json
     @since version 1.0.0
     */
     template <typename ValueType,
-              enable_if_t<
-                  not std::is_pointer<ValueType>::value,
-                  int> = 0>
+              enable_if_t<not std::is_pointer<ValueType>::value, int> = 0>
     auto get() const
-        -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) {
+        -> decltype(this->get_impl(static_cast<ValueType *>(nullptr)))
+    {
       return get_impl(static_cast<ValueType *>(nullptr));
     }
 
     template <
         typename T,
-        enable_if_t<detail::conjunction<
-                        detail::negation<detail::is_compatible_basic_json_type<
-                            uncvref_t<T>, basic_json_t>>,
+        enable_if_t<not detail::is_compatible_basic_json_type<
+                        uncvref_t<T>, basic_json_t>::value and
                         detail::has_from_json<JSONSerializer, basic_json_t,
-                                              uncvref_t<T>>>::value,
+                                              uncvref_t<T>>::value,
                     int> = 0>
     auto get() const -> uncvref_t<T>
     {

From e5999c6c822a37562dde3e031e231b73195e56cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Sat, 26 Nov 2016 01:31:06 +0100
Subject: [PATCH 062/174] add a few tests

---
 src/json.hpp          |  5 ++++-
 test/src/unit-udt.cpp | 38 +++++++++++++++++++++++++++++++++++++-
 2 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 10969138..1e3c6f3b 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -289,6 +289,8 @@ struct is_compatible_basic_json_type
                                  T>::value;
 };
 
+
+// This trait checks if JSONSerializer<T>::from_json exists
 template <template <typename, typename> class JSONSerializer, typename Json,
           typename T>
 struct has_from_json
@@ -305,6 +307,7 @@ public:
       detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
+// This trait checks if JSONSerializer<T>::to_json exists
 template <template <typename, typename> class JSONSerializer, typename Json,
           typename T>
 struct has_to_json
@@ -322,7 +325,7 @@ public:
 };
 
 // those declarations are needed to workaround a MSVC bug related to ADL
-// (idea taken from MSVC-Ranges implementation
+// (taken from MSVC-Ranges implementation)
 void to_json();
 void from_json();
 
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 826baaae..800f9868 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -397,6 +397,29 @@ struct my_serializer
   }
 };
 
+// partial specialization on optional_type
+template <typename T>
+struct my_serializer<udt::optional_type<T>>
+{
+  template <typename Json>
+  static void from_json(Json const& j, udt::optional_type<T>& opt)
+  {
+    if (j.is_null())
+      opt = nullptr;
+    else
+      opt = j.get<T>();
+  }
+
+  template <typename Json>
+  static void to_json(Json& j, udt::optional_type<T> const& opt)
+  {
+    if (opt)
+      j = *opt;
+    else
+      j = nullptr;
+  }
+};
+
 using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool,
                                      std::int64_t, std::uint64_t, double,
                                      std::allocator, my_serializer>;
@@ -414,7 +437,7 @@ namespace udt
   }
 }
 
-TEST_CASE("custom serializer")
+TEST_CASE("custom serializer", "[udt]")
 {
   SECTION("default use works like default serializer")
   {
@@ -429,4 +452,17 @@ TEST_CASE("custom serializer")
     CHECK(pod2 == pod3);
     CHECK(pod2 == pod);
   }
+
+  SECTION("serializer specialization")
+  {
+    udt::optional_type<int> opt;
+
+    json j{opt};
+    CHECK(j.is_null());
+
+    opt = 42;
+    j = json{opt};
+    CHECK(j.get<udt::optional_type<int>>() == opt);
+    CHECK(42 == j.get<int>());
+  }
 }

From 60e6f822fa25fd8f030728b02821da8f1d63b7b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Tue, 29 Nov 2016 13:09:51 +0100
Subject: [PATCH 063/174] add support for non-default-constructible udt

---
 src/json.hpp          | 139 +++++++-----
 test/src/unit-udt.cpp | 486 +++++++-----------------------------------
 2 files changed, 162 insertions(+), 463 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 1e3c6f3b..2dfa7c02 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -290,14 +290,32 @@ struct is_compatible_basic_json_type
 };
 
 
-// This trait checks if JSONSerializer<T>::from_json exists
+// This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
 template <template <typename, typename> class JSONSerializer, typename Json,
           typename T>
 struct has_from_json
 {
 private:
-  template <typename U, typename = decltype(uncvref_t<U>::from_json(
-                            std::declval<Json>(), std::declval<T &>()))>
+  // also check the return type of from_json
+  template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
+                            std::declval<Json>(), std::declval<T &>()))>::value>>
+  static int detect(U &&);
+
+  static void detect(...);
+
+public:
+  static constexpr bool value = std::is_integral<decltype(
+      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+};
+
+// This trait checks if JSONSerializer<T>::from_json(json const&) exists
+// this overload is used for non-default-constructible user-defined-types
+template <template <typename, typename> class JSONSerializer, typename Json,
+          typename T>
+struct has_non_default_from_json
+{
+private:
+  template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
   static int detect(U &&);
 
   static void detect(...);
@@ -326,8 +344,8 @@ public:
 
 // those declarations are needed to workaround a MSVC bug related to ADL
 // (taken from MSVC-Ranges implementation)
-void to_json();
-void from_json();
+//void to_json();
+//void from_json();
 
 struct to_json_fn
 {
@@ -2467,57 +2485,63 @@ class basic_json
         return *this;
     }
 
-    /*!
-    @brief destructor
-
-    Destroys the JSON value and frees all allocated memory.
-
-    @complexity Linear.
-
-    @requirement This function helps `basic_json` satisfying the
-    [Container](http://en.cppreference.com/w/cpp/concept/Container)
-    requirements:
-    - The complexity is linear.
-    - All stored elements are destroyed and all memory is freed.
-
-    @since version 1.0.0
-    */
-    ~basic_json()
+    // this overload is needed, since constructor for udt is explicit
+    template <typename T, enable_if_t<not detail::is_compatible_basic_json_type<
+                                          uncvref_t<T>, basic_json_t>::value and
+                                      detail::has_to_json<JSONSerializer, basic_json_t, uncvref_t<T>>::value>>
+    reference &operator=(T &&val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and
+                                           std::is_nothrow_move_assignable<uncvref_t<T>>::value)
     {
-        assert_invariant();
+      static_assert(sizeof(T) == 0 , "");
+      // I'm not sure this a is good practice...
+      return *this = basic_json_t{std::forward<T>(val)};
+    }
 
-        switch (m_type)
-        {
-            case value_t::object:
-            {
-                AllocatorType<object_t> alloc;
-                alloc.destroy(m_value.object);
-                alloc.deallocate(m_value.object, 1);
-                break;
-            }
+        /*!
+        @brief destructor
 
-            case value_t::array:
-            {
-                AllocatorType<array_t> alloc;
-                alloc.destroy(m_value.array);
-                alloc.deallocate(m_value.array, 1);
-                break;
-            }
+        Destroys the JSON value and frees all allocated memory.
 
-            case value_t::string:
-            {
-                AllocatorType<string_t> alloc;
-                alloc.destroy(m_value.string);
-                alloc.deallocate(m_value.string, 1);
-                break;
-            }
+        @complexity Linear.
 
-            default:
-            {
-                // all other types need no specific destructor
-                break;
-            }
-        }
+        @requirement This function helps `basic_json` satisfying the
+        [Container](http://en.cppreference.com/w/cpp/concept/Container)
+        requirements:
+        - The complexity is linear.
+        - All stored elements are destroyed and all memory is freed.
+
+        @since version 1.0.0
+        */
+        ~basic_json() {
+      assert_invariant();
+
+      switch (m_type) {
+      case value_t::object: {
+        AllocatorType<object_t> alloc;
+        alloc.destroy(m_value.object);
+        alloc.deallocate(m_value.object, 1);
+        break;
+      }
+
+      case value_t::array: {
+        AllocatorType<array_t> alloc;
+        alloc.destroy(m_value.array);
+        alloc.deallocate(m_value.array, 1);
+        break;
+      }
+
+      case value_t::string: {
+        AllocatorType<string_t> alloc;
+        alloc.destroy(m_value.string);
+        alloc.deallocate(m_value.string, 1);
+        break;
+      }
+
+      default: {
+        // all other types need no specific destructor
+        break;
+      }
+      }
     }
 
     /// @}
@@ -3273,6 +3297,19 @@ class basic_json
       return ret;
     }
 
+    // This overload is chosen for non-default constructible user-defined-types
+    template <
+        typename T,
+        enable_if_t<not detail::is_compatible_basic_json_type<
+                        T, basic_json_t>::value and
+                        detail::has_non_default_from_json<JSONSerializer, basic_json_t,
+                                              T>::value,
+                    short> = 0>
+    T get() const
+    {
+      return JSONSerializer<T>::from_json(*this);
+    }
+
     /*!
     @brief get a pointer value (explicit)
 
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 800f9868..cd9ec1c4 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -26,443 +26,105 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE  OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 */
 
+#include <array>
 #include <string>
 #include <memory>
 #include "catch.hpp"
 
 #include "json.hpp"
-using nlohmann::json;
 
 namespace udt
 {
-struct empty_type {};
-struct pod_type {
-  int a;
-  char b;
-  short c;
-};
-
-struct bit_more_complex_type {
-  pod_type a;
-  pod_type b;
-  std::string c;
-};
-
-// best optional implementation ever
-template <typename T>
-class optional_type
-{
-public:
-  optional_type() = default;
-  explicit optional_type(T val) : _val(std::make_shared<T>(std::move(val))) {}
-  explicit operator bool() const noexcept { return _val != nullptr; }
-
-  T const &operator*() const { return *_val; }
-  optional_type& operator=(T const& t)
+  struct age
   {
-    _val = std::make_shared<T>(t);
-    return *this;
-  }
+    int val;
+  };
 
-private:
-  std::shared_ptr<T> _val;
-};
+  struct name
+  {
+    std::string val;
+  };
 
-// free to/from_json functions
+  struct address
+  {
+    std::string val;
+  };
 
-void to_json(json& j, empty_type)
-{
-  j = json::object();
+  struct person
+  {
+    age age;
+    name name;
+  };
+
+  struct contact
+  {
+    person person;
+    address address;
+  };
+
+  struct contact_book
+  {
+    name book_name;
+    std::vector<contact> contacts;
+  };
 }
 
-void to_json(json& j, pod_type const& p)
-{
-  j = json{{"a", p.a}, {"b", p.b}, {"c", p.c}};
-}
-
-void to_json(json& j, bit_more_complex_type const& p)
-{
-  j = json{{"a", json(p.a)}, {"b", json(p.b)}, {"c", p.c}};
-}
-
-template <typename T>
-void to_json(json& j, optional_type<T> const& opt)
-{
-  if (!opt)
-    j = nullptr;
-  else
-    j = json(*opt);
-}
-
-void from_json(json const& j, empty_type& t)
-{
-  assert(j.empty());
-  t = empty_type{};
-}
-
-void from_json(json const&j, pod_type& t)
-{
-  t = {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()};
-}
-
-void from_json(json const&j, bit_more_complex_type& t)
-{
-   // relying on json_traits struct here..
-   t = {j["a"].get<udt::pod_type>(), j["b"].get<udt::pod_type>(),
-        j["c"].get<std::string>()};
-}
-
-template <typename T>
-void from_json(json const& j, optional_type<T>& t)
-{
-  if (j.is_null())
-    t = optional_type<T>{};
-  else
-    t = j.get<T>();
-}
-
-inline bool operator==(pod_type const& lhs, pod_type const& rhs) noexcept
-{
-  return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c);
-}
-
-inline bool operator==(bit_more_complex_type const &lhs,
-                       bit_more_complex_type const &rhs) noexcept {
-  return std::tie(lhs.a, lhs.b, lhs.c) == std::tie(rhs.a, rhs.b, rhs.c);
-}
-
-template <typename T>
-inline bool operator==(optional_type<T> const& lhs, optional_type<T> const& rhs)
-{
-  if (!lhs && !rhs)
-    return true;
-  if (!lhs || !rhs)
-    return false;
-  return *lhs == *rhs;
-}
-}
-
-TEST_CASE("constructors for user-defined types", "[udt]")
-{
-  SECTION("empty type")
-  {
-    udt::empty_type const e{};
-    auto const j = json{e};
-    auto k = json::object();
-    CHECK(j == k);
-  }
-
-  SECTION("pod type")
-  {
-    auto const e = udt::pod_type{42, 42, 42};
-    auto j = json{e};
-    auto k = json{{"a", 42}, {"b", 42}, {"c", 42}};
-    CHECK(j == k);
-  }
-
-  SECTION("bit more complex type")
-  {
-    auto const e =
-        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
-
-    auto j = json{e};
-    auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
-                  {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
-                  {"c", "forty"}};
-    CHECK(j == k);
-  }
-
-  SECTION("vector of udt")
-  {
-    std::vector<udt::bit_more_complex_type> v;
-    auto const e =
-        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
-
-    v.emplace_back(e);
-    v.emplace_back(e);
-    v.emplace_back(e);
-
-    json j = v;
-    auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
-                  {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
-                  {"c", "forty"}};
-    auto l = json{k, k, k};
-    CHECK(j == l);
-  }
-
-  SECTION("optional type") {
-    SECTION("regular case") {
-      udt::optional_type<int> u{3};
-      CHECK(json{u} == json(3));
-    }
-
-    SECTION("nullopt case") {
-      udt::optional_type<float> v;
-      CHECK(json{v} == json{});
-    }
-
-    SECTION("optional of json convertible type")
-    {
-      auto const e =
-          udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
-      udt::optional_type<udt::bit_more_complex_type> o{e};
-      auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
-                    {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
-                    {"c", "forty"}};
-      CHECK(json{o} == k);
-    }
-
-    SECTION("optional of vector of json convertible type")
-    {
-      std::vector<udt::bit_more_complex_type> v;
-      auto const e =
-          udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
-      v.emplace_back(e);
-      v.emplace_back(e);
-      v.emplace_back(e);
-      udt::optional_type<std::vector<udt::bit_more_complex_type>> o{v};
-      auto k = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
-                    {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
-                    {"c", "forty"}};
-      auto l = json{k, k, k};
-      CHECK(json{o} == l);
-    }
-  }
-}
-
-TEST_CASE("get<> for user-defined types", "[udt]")
-{
-  SECTION("pod type")
-  {
-    auto const e = udt::pod_type{42, 42, 42};
-    auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}};
-
-    auto const obj = j.get<udt::pod_type>();
-    CHECK(e == obj);
-  }
-
-  SECTION("bit more complex type")
-  {
-    auto const e =
-        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
-    auto const j = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
-                        {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
-                        {"c", "forty"}};
-
-    auto const obj = j.get<udt::bit_more_complex_type>();
-    CHECK(e == obj);
-  }
-
-  SECTION("vector of udt")
-  {
-    auto const e =
-        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
-    std::vector<udt::bit_more_complex_type> v{e, e, e};
-    auto const j = json(v);
-
-    auto const obj = j.get<decltype(v)>();
-    CHECK(v == obj);
-  }
-
-  SECTION("optional")
-  {
-    SECTION("from null")
-    {
-      udt::optional_type<int> o;
-      json j;
-      CHECK(j.get<decltype(o)>() == o);
-    }
-
-    SECTION("from value")
-    {
-      json j{{"a", 42}, {"b", 42}, {"c", 42}};
-      auto v = j.get<udt::optional_type<udt::pod_type>>();
-      auto expected = udt::pod_type{42,42,42};
-      REQUIRE(v);
-      CHECK(*v == expected);
-    }
-  }
-}
-
-TEST_CASE("to_json free function", "[udt]")
-{
-  SECTION("pod_type")
-  {
-    auto const e = udt::pod_type{42, 42, 42};
-    auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}};
-
-    json j;
-    nlohmann::to_json(j, e);
-    CHECK(j == expected);
-  }
-
-  SECTION("bit_more_complex_type")
-  {
-    auto const e =
-        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
-    auto const expected = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
-                        {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
-                        {"c", "forty"}};
-    json j;
-    nlohmann::to_json(j, e);
-    CHECK(j == expected);
-  }
-
-  SECTION("optional_type")
-  {
-    SECTION("from null")
-    {
-      udt::optional_type<udt::pod_type> o;
-
-      json expected;
-      json j;
-      nlohmann::to_json(j, o);
-      CHECK(expected == j);
-    }
-
-    SECTION("from value")
-    {
-      udt::optional_type<udt::pod_type> o{{42, 42, 42}};
-
-      auto const expected = json{{"a", 42}, {"b", 42}, {"c", 42}};
-      json j;
-      nlohmann::to_json(j, o);
-      CHECK(expected == j);
-    }
-  }
-}
-
-TEST_CASE("from_json free function", "[udt]")
-{
-  SECTION("pod_type")
-  {
-    auto const expected = udt::pod_type{42, 42, 42};
-    auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}};
-
-    udt::pod_type p;
-    nlohmann::from_json(j, p);
-    CHECK(p == expected);
-  }
-
-  SECTION("bit_more_complex_type")
-  {
-    auto const expected =
-        udt::bit_more_complex_type{{42, 42, 42}, {41, 41, 41}, "forty"};
-    auto const j = json{{"a", {{"a", 42}, {"b", 42}, {"c", 42}}},
-                        {"b", {{"a", 41}, {"b", 41}, {"c", 41}}},
-                        {"c", "forty"}};
-    udt::bit_more_complex_type p;
-    nlohmann::from_json(j, p);
-    CHECK(p == expected);
-  }
-
-  SECTION("optional_type")
-  {
-    SECTION("from null")
-    {
-      udt::optional_type<udt::pod_type> expected;
-      json j;
-      udt::optional_type<udt::pod_type> o;
-
-      nlohmann::from_json(j, o);
-      CHECK(expected == o);
-    }
-
-    SECTION("from value")
-    {
-      udt::optional_type<udt::pod_type> expected{{42, 42, 42}};
-      auto const j = json{{"a", 42}, {"b", 42}, {"c", 42}};
-      udt::optional_type<udt::pod_type> o;
-
-      nlohmann::from_json(j, o);
-      CHECK(expected == o);
-    }
-  }
-}
-
-// custom serializer, uses adl by default
-template <typename T, typename = void>
-struct my_serializer
-{
-  template <typename Json>
-  static void from_json(Json const& j, T& val)
-  {
-    nlohmann::from_json(j, val);
-  }
-
-  template <typename Json>
-  static void to_json(Json& j, T const& val)
-  {
-    nlohmann::to_json(j, val);
-  }
-};
-
-// partial specialization on optional_type
-template <typename T>
-struct my_serializer<udt::optional_type<T>>
-{
-  template <typename Json>
-  static void from_json(Json const& j, udt::optional_type<T>& opt)
-  {
-    if (j.is_null())
-      opt = nullptr;
-    else
-      opt = j.get<T>();
-  }
-
-  template <typename Json>
-  static void to_json(Json& j, udt::optional_type<T> const& opt)
-  {
-    if (opt)
-      j = *opt;
-    else
-      j = nullptr;
-  }
-};
-
-using my_json = nlohmann::basic_json<std::map, std::vector, std::string, bool,
-                                     std::int64_t, std::uint64_t, double,
-                                     std::allocator, my_serializer>;
-
+// to_json methods for default basic_json
 namespace udt
 {
-  void to_json(my_json& j, pod_type const& val)
+  void to_json(nlohmann::json& j, age a)
   {
-    j = my_json{{"a", val.a}, {"b", val.b}, {"c", val.c}};
+    j = a.val;
   }
 
-  void from_json(my_json const& j, pod_type& val)
+  void to_json(nlohmann::json& j, name const& n)
   {
-    val = {j["a"].get<int>(), j["b"].get<char>(), j["c"].get<short>()};
+    j = n.val;
+  }
+
+  void to_json(nlohmann::json& j, person const& p)
+  {
+    using nlohmann::json;
+    j = json{{"age", json{p.age}}, {"name", json{p.name}}};
+
+    // this unfortunately does not compile ...
+    // j["age"] = p.age;
+    // j["name"] = p.name;
+  }
+
+  void to_json(nlohmann::json& j, address const& a)
+  {
+    j = a.val;
+  }
+
+  void to_json(nlohmann::json& j, contact const& c)
+  {
+    using nlohmann::json;
+    j = json{{"person", json{c.person}}, {"address", json{c.address}}};
+  }
+
+  void to_json(nlohmann::json& j, contact_book const& cb)
+  {
+    using nlohmann::json;
+    j = json{{"name", json{cb.book_name}}, {"contacts", cb.contacts}};
   }
 }
 
-TEST_CASE("custom serializer", "[udt]")
+TEST_CASE("basic usage", "[udt]")
 {
-  SECTION("default use works like default serializer")
+  using nlohmann::json;
+
+  SECTION("conversion to json via free-functions")
   {
-    udt::pod_type pod{1, 2, 3};
-    auto const j = my_json{pod};
+    udt::age a{23};
 
-    auto const j2 = json{pod};
-    CHECK(j.dump() == j2.dump());
+    CHECK(json{a} == json{23});
 
-    auto const pod2 = j.get<udt::pod_type>();
-    auto const pod3 = j2.get<udt::pod_type>();
-    CHECK(pod2 == pod3);
-    CHECK(pod2 == pod);
+    // a bit narcissic maybe :) ?
+    udt::name n{"theo"};
+    CHECK(json{n} == json{"theo"});
+
+    udt::person sfinae_addict{a, n};
+    CHECK(json{sfinae_addict} == R"({"name":"theo", "age":23})"_json);
   }
-
-  SECTION("serializer specialization")
-  {
-    udt::optional_type<int> opt;
-
-    json j{opt};
-    CHECK(j.is_null());
-
-    opt = 42;
-    j = json{opt};
-    CHECK(j.get<udt::optional_type<int>>() == opt);
-    CHECK(42 == j.get<int>());
-  }
-}
+}
\ No newline at end of file

From c0c72b5b62c29f9c220c1eb56273ff2a6bcc273f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Delrieu?= <theo@tanker.io>
Date: Wed, 30 Nov 2016 23:16:54 +0100
Subject: [PATCH 064/174] rewrite unit-udt: basic usage

---
 src/json.hpp                           | 138 ++++++++++++++++++++--
 test/src/unit-class_const_iterator.cpp |  36 +++---
 test/src/unit-class_iterator.cpp       |  36 +++---
 test/src/unit-udt.cpp                  | 156 ++++++++++++++++++++-----
 4 files changed, 290 insertions(+), 76 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 2dfa7c02..fc7781ea 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -257,6 +257,30 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn
       RealLimits::is_signed == CompatibleLimits::is_signed;
 };
 
+// quickfix, just trying to make things compile before refactoring
+template <bool B, typename RealIntegerType, typename CompatibleEnumType>
+struct is_compatible_enum_type_impl : std::false_type{};
+
+template <typename RealIntegerType, typename CompatibleEnumType>
+struct is_compatible_enum_type_impl<true, RealIntegerType, CompatibleEnumType>
+{
+  using RealLimits = std::numeric_limits<RealIntegerType>;
+  using CompatibleLimits = std::numeric_limits<typename std::underlying_type<CompatibleEnumType>::type>;
+
+  static constexpr auto value =
+      CompatibleLimits::is_integer and
+      RealLimits::is_signed == CompatibleLimits::is_signed;
+};
+
+template <typename RealIntegerType, typename CompatibleEnumType>
+struct is_compatible_enum_type
+{
+  static constexpr auto value = is_compatible_enum_type_impl<
+// quickfix for all enums
+      std::is_enum<CompatibleEnumType>::value, RealIntegerType,
+      CompatibleEnumType>::value;
+};
+
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
@@ -281,6 +305,7 @@ struct is_compatible_basic_json_type
       std::is_constructible<typename BasicJson::string_t, T>::value or
       std::is_same<typename BasicJson::boolean_t, T>::value or
       is_compatible_array_type<BasicJson, T>::value or
+      is_compatible_enum_type<T, typename BasicJson::number_integer_t>::value or
       is_compatible_object_type<typename BasicJson::object_t, T>::value or
       is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
       is_compatible_integer_type<typename BasicJson::number_integer_t,
@@ -289,6 +314,16 @@ struct is_compatible_basic_json_type
                                  T>::value;
 };
 
+template <typename T, typename BasicJson, typename PrimitiveIterator>
+struct is_basic_json_nested_class
+{
+  static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
+                                std::is_same<T, typename BasicJson::const_iterator>::value or
+                                std::is_same<T, typename BasicJson::reverse_iterator>::value or
+                                std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
+                                std::is_same<T, PrimitiveIterator>::value or
+                                std::is_same<T, typename BasicJson::json_pointer>::value;
+};
 
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
 template <template <typename, typename> class JSONSerializer, typename Json,
@@ -344,8 +379,8 @@ public:
 
 // those declarations are needed to workaround a MSVC bug related to ADL
 // (taken from MSVC-Ranges implementation)
-//void to_json();
-//void from_json();
+void to_json();
+void from_json();
 
 struct to_json_fn
 {
@@ -524,6 +559,7 @@ class basic_json
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
           AllocatorType, JSONSerializer>;
+    class primitive_iterator_t;
 
   public:
     // forward declarations
@@ -1589,10 +1625,15 @@ class basic_json
         enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
                         not detail::is_compatible_basic_json_type<
                             uncvref_t<T>, basic_json_t>::value and
+                        not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
+                        not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
+// quickfix
+not std::is_enum<uncvref_t<T>>::value and
+                        not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
                         detail::has_to_json<JSONSerializer, basic_json,
                                             uncvref_t<T>>::value,
                     int> = 0>
-    explicit basic_json(T &&val)
+    basic_json(T &&val)
     {
       JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
     }
@@ -1793,7 +1834,8 @@ class basic_json
     template <
         typename CompatibleNumberIntegerType,
         enable_if_t<detail::is_compatible_integer_type<
-                        number_integer_t, CompatibleNumberIntegerType>::value,
+                        number_integer_t, CompatibleNumberIntegerType>::value or
+detail::is_compatible_enum_type<number_integer_t, CompatibleNumberIntegerType>::value,
                     int> = 0>
     basic_json(const CompatibleNumberIntegerType val) noexcept
         : m_type(value_t::number_integer),
@@ -8502,6 +8544,11 @@ class basic_json
     class primitive_iterator_t
     {
       public:
+
+        difference_type get_value() const noexcept
+        {
+          return m_it;
+        }
         /// set iterator to a defined beginning
         void set_begin() noexcept
         {
@@ -8526,16 +8573,85 @@ class basic_json
             return (m_it == end_value);
         }
 
-        /// return reference to the value to change and compare
-        operator difference_type& () noexcept
+        friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
         {
-            return m_it;
+          return lhs.m_it == rhs.m_it;
         }
 
-        /// return value to compare
-        constexpr operator difference_type () const noexcept
+        friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
         {
-            return m_it;
+          return !(lhs == rhs);
+        }
+
+        friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+          return lhs.m_it < rhs.m_it;
+        }
+
+        friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+          return lhs.m_it <= rhs.m_it;
+        }
+
+        friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+          return lhs.m_it > rhs.m_it;
+        }
+
+        friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+          return lhs.m_it >= rhs.m_it;
+        }
+
+        friend constexpr bool operator+(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+          return lhs.m_it + rhs.m_it;
+        }
+
+        friend constexpr bool operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+          return lhs.m_it - rhs.m_it;
+        }
+
+        friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it)
+        {
+          return os << it.m_it;
+        }
+
+        primitive_iterator_t& operator++()
+        {
+          ++m_it;
+          return *this;
+        }
+
+        primitive_iterator_t& operator++(int)
+        {
+          m_it++;
+          return *this;
+        }
+
+        primitive_iterator_t& operator--()
+        {
+          --m_it;
+          return *this;
+        }
+
+        primitive_iterator_t& operator--(int)
+        {
+          m_it--;
+          return *this;
+        }
+
+        primitive_iterator_t& operator+=(difference_type n)
+        {
+          m_it += n;
+          return *this;
+        }
+
+        primitive_iterator_t& operator-=(difference_type n)
+        {
+          m_it -= n;
+          return *this;
         }
 
       private:
@@ -9240,7 +9356,7 @@ class basic_json
 
                 default:
                 {
-                    if (m_it.primitive_iterator == -n)
+                    if (m_it.primitive_iterator.get_value() == -n)
                     {
                         return *m_object;
                     }
diff --git a/test/src/unit-class_const_iterator.cpp b/test/src/unit-class_const_iterator.cpp
index 13ce7c3f..a1f6b827 100644
--- a/test/src/unit-class_const_iterator.cpp
+++ b/test/src/unit-class_const_iterator.cpp
@@ -220,20 +220,20 @@ TEST_CASE("const_iterator class")
             {
                 json j(json::value_t::null);
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 it++;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.primitive_iterator == 0);
+                CHECK(it.m_it.primitive_iterator.m_it == 0);
                 it++;
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 it++;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("object")
@@ -271,20 +271,20 @@ TEST_CASE("const_iterator class")
             {
                 json j(json::value_t::null);
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 ++it;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.primitive_iterator == 0);
+                CHECK(it.m_it.primitive_iterator.m_it == 0);
                 ++it;
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 ++it;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("object")
@@ -322,18 +322,18 @@ TEST_CASE("const_iterator class")
             {
                 json j(json::value_t::null);
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 it--;
-                CHECK(it.m_it.primitive_iterator == 0);
+                CHECK(it.m_it.primitive_iterator.m_it == 0);
                 it--;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("object")
@@ -371,18 +371,18 @@ TEST_CASE("const_iterator class")
             {
                 json j(json::value_t::null);
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 --it;
-                CHECK(it.m_it.primitive_iterator == 0);
+                CHECK(it.m_it.primitive_iterator.m_it == 0);
                 --it;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("object")
diff --git a/test/src/unit-class_iterator.cpp b/test/src/unit-class_iterator.cpp
index 640bc816..1e8a3cec 100644
--- a/test/src/unit-class_iterator.cpp
+++ b/test/src/unit-class_iterator.cpp
@@ -204,20 +204,20 @@ TEST_CASE("iterator class")
             {
                 json j(json::value_t::null);
                 json::iterator it = j.begin();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 it++;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::iterator it = j.begin();
-                CHECK(it.m_it.primitive_iterator == 0);
+                CHECK(it.m_it.primitive_iterator.m_it == 0);
                 it++;
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 it++;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("object")
@@ -255,20 +255,20 @@ TEST_CASE("iterator class")
             {
                 json j(json::value_t::null);
                 json::iterator it = j.begin();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 ++it;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::iterator it = j.begin();
-                CHECK(it.m_it.primitive_iterator == 0);
+                CHECK(it.m_it.primitive_iterator.m_it == 0);
                 ++it;
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 ++it;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("object")
@@ -306,18 +306,18 @@ TEST_CASE("iterator class")
             {
                 json j(json::value_t::null);
                 json::iterator it = j.end();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::iterator it = j.end();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 it--;
-                CHECK(it.m_it.primitive_iterator == 0);
+                CHECK(it.m_it.primitive_iterator.m_it == 0);
                 it--;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("object")
@@ -355,18 +355,18 @@ TEST_CASE("iterator class")
             {
                 json j(json::value_t::null);
                 json::iterator it = j.end();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::iterator it = j.end();
-                CHECK(it.m_it.primitive_iterator == 1);
+                CHECK(it.m_it.primitive_iterator.m_it == 1);
                 --it;
-                CHECK(it.m_it.primitive_iterator == 0);
+                CHECK(it.m_it.primitive_iterator.m_it == 0);
                 --it;
-                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+                CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
 
             SECTION("object")
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index cd9ec1c4..28443344 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -37,35 +37,35 @@ namespace udt
 {
   struct age
   {
-    int val;
+    int m_val;
   };
 
   struct name
   {
-    std::string val;
+    std::string m_val;
   };
 
   struct address
   {
-    std::string val;
+    std::string m_val;
   };
 
   struct person
   {
-    age age;
-    name name;
+    age m_age;
+    name m_name;
   };
 
   struct contact
   {
-    person person;
-    address address;
+    person m_person;
+    address m_address;
   };
 
   struct contact_book
   {
-    name book_name;
-    std::vector<contact> contacts;
+    name m_book_name;
+    std::vector<contact> m_contacts;
   };
 }
 
@@ -74,39 +74,105 @@ namespace udt
 {
   void to_json(nlohmann::json& j, age a)
   {
-    j = a.val;
+    j = a.m_val;
   }
 
   void to_json(nlohmann::json& j, name const& n)
   {
-    j = n.val;
+    j = n.m_val;
   }
 
   void to_json(nlohmann::json& j, person const& p)
   {
     using nlohmann::json;
-    j = json{{"age", json{p.age}}, {"name", json{p.name}}};
-
-    // this unfortunately does not compile ...
-    // j["age"] = p.age;
-    // j["name"] = p.name;
+    j = json{{"age", json{p.m_age}}, {"name", json{p.m_name}}};
   }
 
   void to_json(nlohmann::json& j, address const& a)
   {
-    j = a.val;
+    j = a.m_val;
   }
 
   void to_json(nlohmann::json& j, contact const& c)
   {
     using nlohmann::json;
-    j = json{{"person", json{c.person}}, {"address", json{c.address}}};
+    j = json{{"person", json{c.m_person}}, {"address", json{c.m_address}}};
   }
 
   void to_json(nlohmann::json& j, contact_book const& cb)
   {
     using nlohmann::json;
-    j = json{{"name", json{cb.book_name}}, {"contacts", cb.contacts}};
+    j = json{{"name", json{cb.m_book_name}}, {"contacts", cb.m_contacts}};
+  }
+
+  // operators
+  bool operator==(age lhs, age rhs)
+  {
+    return lhs.m_val == rhs.m_val;
+  }
+
+  bool operator==(address const &lhs, address const &rhs)
+  {
+    return lhs.m_val == rhs.m_val;
+  }
+
+  bool operator==(name const &lhs, name const &rhs)
+  {
+    return lhs.m_val == rhs.m_val;
+  }
+
+  bool operator==(person const &lhs, person const &rhs)
+  {
+    return std::tie(lhs.m_name, lhs.m_age) == std::tie(rhs.m_name, rhs.m_age);
+  }
+
+  bool operator==(contact const &lhs, contact const &rhs)
+  {
+    return std::tie(lhs.m_person, lhs.m_address) ==
+           std::tie(rhs.m_person, rhs.m_address);
+  }
+
+  bool operator==(contact_book const &lhs, contact_book const &rhs)
+  {
+    return std::tie(lhs.m_book_name, lhs.m_contacts) ==
+           std::tie(rhs.m_book_name, rhs.m_contacts);
+  }
+}
+
+// from_json methods for default basic_json
+namespace udt
+{
+  void from_json(nlohmann::json const& j, age &a)
+  {
+    a.m_val = j.get<int>();
+  }
+
+  void from_json(nlohmann::json const& j, name &n)
+  {
+    n.m_val = j.get<std::string>();
+  }
+
+  void from_json(nlohmann::json const& j, person &p)
+  {
+    p.m_age = j["age"].get<age>();
+    p.m_name = j["name"].get<name>();
+  }
+
+  void from_json(nlohmann::json const &j, address &a)
+  {
+    a.m_val = j.get<std::string>();
+  }
+
+  void from_json(nlohmann::json const& j, contact &c)
+  {
+    c.m_person = j["person"].get<person>();
+    c.m_address = j["address"].get<address>();
+  }
+
+  void from_json(nlohmann::json const&j, contact_book &cb)
+  {
+    cb.m_book_name = j["name"].get<name>();
+    cb.m_contacts = j["contacts"].get<std::vector<contact>>();
   }
 }
 
@@ -114,17 +180,49 @@ TEST_CASE("basic usage", "[udt]")
 {
   using nlohmann::json;
 
+  // a bit narcissic maybe :) ?
+  const udt::age a{23};
+  const udt::name n{"theo"};
+  const udt::person sfinae_addict{a, n};
+  const udt::address addr{"Paris"};
+  const udt::contact cpp_programmer{sfinae_addict, addr};
+  const udt::contact_book book{{"C++"}, {cpp_programmer, cpp_programmer}};
+
   SECTION("conversion to json via free-functions")
   {
-    udt::age a{23};
-
-    CHECK(json{a} == json{23});
-
-    // a bit narcissic maybe :) ?
-    udt::name n{"theo"};
-    CHECK(json{n} == json{"theo"});
-
-    udt::person sfinae_addict{a, n};
+    CHECK(json{a} == json(23));
+    CHECK(json{n} == json("theo"));
     CHECK(json{sfinae_addict} == R"({"name":"theo", "age":23})"_json);
+    CHECK(json("Paris") == json{addr});
+    CHECK(json{cpp_programmer} ==
+          R"({"person" : {"age":23, "name":"theo"}, "address":"Paris"})"_json);
+
+    CHECK(
+        json{book} ==
+        R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo"}, "address":"Paris"}, {"person" : {"age":23, "name":"theo"}, "address":"Paris"}]})"_json);
   }
-}
\ No newline at end of file
+
+  SECTION("conversion from json via free-functions")
+  {
+    const auto big_json =
+        R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo"}, "address":"Paris"}, {"person" : {"age":23, "name":"theo"}, "address":"Paris"}]})"_json;
+    const auto parsed_book = big_json.get<udt::contact_book>();
+    const auto book_name = big_json["name"].get<udt::name>();
+    const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>();
+    const auto contact_json = big_json["contacts"].at(0);
+    const auto contact = contact_json.get<udt::contact>();
+    const auto person = contact_json["person"].get<udt::person>();
+    const auto address = contact_json["address"].get<udt::address>();
+    const auto age = contact_json["person"]["age"].get<udt::age>();
+    const auto name = contact_json["person"]["name"].get<udt::name>();
+
+    CHECK(age == a);
+    CHECK(name == n);
+    CHECK(address == addr);
+    CHECK(person == sfinae_addict);
+    CHECK(contact == cpp_programmer);
+    CHECK(contacts == book.m_contacts);
+    CHECK(book_name == udt::name{"C++"});
+    CHECK(book == parsed_book);
+  }
+}

From 1eafac722016a8cacc2a657dcbd303b6f51ac074 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Sun, 4 Dec 2016 17:52:55 +0100
Subject: [PATCH 065/174] remove explicit keyword on udt-constructor

---
 src/json.hpp          | 90 ++++++++++++++++++++++---------------------
 test/src/unit-udt.cpp | 18 ++++-----
 2 files changed, 55 insertions(+), 53 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index fc7781ea..310779ea 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -257,30 +257,6 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn
       RealLimits::is_signed == CompatibleLimits::is_signed;
 };
 
-// quickfix, just trying to make things compile before refactoring
-template <bool B, typename RealIntegerType, typename CompatibleEnumType>
-struct is_compatible_enum_type_impl : std::false_type{};
-
-template <typename RealIntegerType, typename CompatibleEnumType>
-struct is_compatible_enum_type_impl<true, RealIntegerType, CompatibleEnumType>
-{
-  using RealLimits = std::numeric_limits<RealIntegerType>;
-  using CompatibleLimits = std::numeric_limits<typename std::underlying_type<CompatibleEnumType>::type>;
-
-  static constexpr auto value =
-      CompatibleLimits::is_integer and
-      RealLimits::is_signed == CompatibleLimits::is_signed;
-};
-
-template <typename RealIntegerType, typename CompatibleEnumType>
-struct is_compatible_enum_type
-{
-  static constexpr auto value = is_compatible_enum_type_impl<
-// quickfix for all enums
-      std::is_enum<CompatibleEnumType>::value, RealIntegerType,
-      CompatibleEnumType>::value;
-};
-
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
@@ -289,6 +265,27 @@ struct is_compatible_integer_type
       CompatibleNumberIntegerType>::value;
 };
 
+// quickfix, just trying to make things compile before refactoring
+template <bool B, typename RealIntegerType, typename CompatibleEnumType>
+struct is_compatible_enum_type_impl : std::false_type {};
+
+template <typename RealIntegerType, typename CompatibleEnumType>
+struct is_compatible_enum_type_impl<true, RealIntegerType, CompatibleEnumType>
+{
+  using Underlying = typename std::underlying_type<CompatibleEnumType>::type;
+  static constexpr auto value =
+      is_compatible_integer_type<RealIntegerType, Underlying>::value;
+};
+
+template <typename RealIntegerType, typename CompatibleEnumType>
+struct is_compatible_enum_type
+{
+  static constexpr auto value =
+      is_compatible_enum_type_impl<std::is_enum<CompatibleEnumType>::value,
+                                   RealIntegerType,
+                                   CompatibleEnumType>::value;
+};
+
 template <typename RealFloat, typename CompatibleFloat>
 struct is_compatible_float_type
 {
@@ -306,6 +303,7 @@ struct is_compatible_basic_json_type
       std::is_same<typename BasicJson::boolean_t, T>::value or
       is_compatible_array_type<BasicJson, T>::value or
       is_compatible_enum_type<T, typename BasicJson::number_integer_t>::value or
+      is_compatible_enum_type<T, typename BasicJson::number_unsigned_t>::value or
       is_compatible_object_type<typename BasicJson::object_t, T>::value or
       is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
       is_compatible_integer_type<typename BasicJson::number_integer_t,
@@ -1627,8 +1625,8 @@ class basic_json
                             uncvref_t<T>, basic_json_t>::value and
                         not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
                         not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
-// quickfix
-not std::is_enum<uncvref_t<T>>::value and
+                        not detail::is_compatible_enum_type<number_integer_t, uncvref_t<T>>::value and
+                        not detail::is_compatible_enum_type<number_unsigned_t, uncvref_t<T>>::value and
                         not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
                         detail::has_to_json<JSONSerializer, basic_json,
                                             uncvref_t<T>>::value,
@@ -1831,17 +1829,17 @@ not std::is_enum<uncvref_t<T>>::value and
 
     @since version 1.0.0
     */
-    template <
-        typename CompatibleNumberIntegerType,
-        enable_if_t<detail::is_compatible_integer_type<
-                        number_integer_t, CompatibleNumberIntegerType>::value or
-detail::is_compatible_enum_type<number_integer_t, CompatibleNumberIntegerType>::value,
-                    int> = 0>
+    template <typename CompatibleNumberIntegerType,
+              enable_if_t<
+                  detail::is_compatible_integer_type<
+                      number_integer_t, CompatibleNumberIntegerType>::value or
+                      detail::is_compatible_enum_type<
+                          number_integer_t, CompatibleNumberIntegerType>::value,
+                  int> = 0>
     basic_json(const CompatibleNumberIntegerType val) noexcept
         : m_type(value_t::number_integer),
-          m_value(static_cast<number_integer_t>(val))
-    {
-        assert_invariant();
+          m_value(static_cast<number_integer_t>(val)) {
+      assert_invariant();
     }
 
     /*!
@@ -1892,14 +1890,16 @@ detail::is_compatible_enum_type<number_integer_t, CompatibleNumberIntegerType>::
     */
     template <
         typename CompatibleNumberUnsignedType,
-        enable_if_t<detail::is_compatible_integer_type<
-                        number_unsigned_t, CompatibleNumberUnsignedType>::value,
-                    int> = 0>
+        enable_if_t<
+            detail::is_compatible_integer_type<
+                number_unsigned_t, CompatibleNumberUnsignedType>::value or
+                detail::is_compatible_enum_type<
+                    number_integer_t, CompatibleNumberUnsignedType>::value,
+            int> = 0>
     basic_json(const CompatibleNumberUnsignedType val) noexcept
         : m_type(value_t::number_unsigned),
-          m_value(static_cast<number_unsigned_t>(val))
-    {
-        assert_invariant();
+          m_value(static_cast<number_unsigned_t>(val)) {
+      assert_invariant();
     }
 
     /*!
@@ -8603,12 +8603,14 @@ detail::is_compatible_enum_type<number_integer_t, CompatibleNumberIntegerType>::
           return lhs.m_it >= rhs.m_it;
         }
 
-        friend constexpr bool operator+(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        primitive_iterator_t operator+(difference_type i)
         {
-          return lhs.m_it + rhs.m_it;
+            auto result = *this;
+            result += i;
+            return result;
         }
 
-        friend constexpr bool operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
         {
           return lhs.m_it - rhs.m_it;
         }
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 28443344..2518fcfc 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -85,7 +85,7 @@ namespace udt
   void to_json(nlohmann::json& j, person const& p)
   {
     using nlohmann::json;
-    j = json{{"age", json{p.m_age}}, {"name", json{p.m_name}}};
+    j = json{{"age", p.m_age}, {"name", p.m_name}};
   }
 
   void to_json(nlohmann::json& j, address const& a)
@@ -96,13 +96,13 @@ namespace udt
   void to_json(nlohmann::json& j, contact const& c)
   {
     using nlohmann::json;
-    j = json{{"person", json{c.m_person}}, {"address", json{c.m_address}}};
+    j = json{{"person", c.m_person}, {"address", c.m_address}};
   }
 
   void to_json(nlohmann::json& j, contact_book const& cb)
   {
     using nlohmann::json;
-    j = json{{"name", json{cb.m_book_name}}, {"contacts", cb.m_contacts}};
+    j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}};
   }
 
   // operators
@@ -190,15 +190,15 @@ TEST_CASE("basic usage", "[udt]")
 
   SECTION("conversion to json via free-functions")
   {
-    CHECK(json{a} == json(23));
-    CHECK(json{n} == json("theo"));
-    CHECK(json{sfinae_addict} == R"({"name":"theo", "age":23})"_json);
-    CHECK(json("Paris") == json{addr});
-    CHECK(json{cpp_programmer} ==
+    CHECK(json(a) == json(23));
+    CHECK(json(n) == json("theo"));
+    CHECK(json(sfinae_addict) == R"({"name":"theo", "age":23})"_json);
+    CHECK(json("Paris") == json(addr));
+    CHECK(json(cpp_programmer) ==
           R"({"person" : {"age":23, "name":"theo"}, "address":"Paris"})"_json);
 
     CHECK(
-        json{book} ==
+        json(book) ==
         R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo"}, "address":"Paris"}, {"person" : {"age":23, "name":"theo"}, "address":"Paris"}]})"_json);
   }
 

From f5cb089f8927167ae934d510c752bce581e8f62b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Wed, 7 Dec 2016 23:21:10 +0100
Subject: [PATCH 066/174] add an enum constructor (quickfix)

---
 src/json.hpp | 52 +++++++++++++---------------------------------------
 1 file changed, 13 insertions(+), 39 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 310779ea..35d3d0a6 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -265,27 +265,6 @@ struct is_compatible_integer_type
       CompatibleNumberIntegerType>::value;
 };
 
-// quickfix, just trying to make things compile before refactoring
-template <bool B, typename RealIntegerType, typename CompatibleEnumType>
-struct is_compatible_enum_type_impl : std::false_type {};
-
-template <typename RealIntegerType, typename CompatibleEnumType>
-struct is_compatible_enum_type_impl<true, RealIntegerType, CompatibleEnumType>
-{
-  using Underlying = typename std::underlying_type<CompatibleEnumType>::type;
-  static constexpr auto value =
-      is_compatible_integer_type<RealIntegerType, Underlying>::value;
-};
-
-template <typename RealIntegerType, typename CompatibleEnumType>
-struct is_compatible_enum_type
-{
-  static constexpr auto value =
-      is_compatible_enum_type_impl<std::is_enum<CompatibleEnumType>::value,
-                                   RealIntegerType,
-                                   CompatibleEnumType>::value;
-};
-
 template <typename RealFloat, typename CompatibleFloat>
 struct is_compatible_float_type
 {
@@ -302,8 +281,6 @@ struct is_compatible_basic_json_type
       std::is_constructible<typename BasicJson::string_t, T>::value or
       std::is_same<typename BasicJson::boolean_t, T>::value or
       is_compatible_array_type<BasicJson, T>::value or
-      is_compatible_enum_type<T, typename BasicJson::number_integer_t>::value or
-      is_compatible_enum_type<T, typename BasicJson::number_unsigned_t>::value or
       is_compatible_object_type<typename BasicJson::object_t, T>::value or
       is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
       is_compatible_integer_type<typename BasicJson::number_integer_t,
@@ -1624,9 +1601,8 @@ class basic_json
                         not detail::is_compatible_basic_json_type<
                             uncvref_t<T>, basic_json_t>::value and
                         not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
+                        not std::is_enum<uncvref_t<T>>::value and
                         not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
-                        not detail::is_compatible_enum_type<number_integer_t, uncvref_t<T>>::value and
-                        not detail::is_compatible_enum_type<number_unsigned_t, uncvref_t<T>>::value and
                         not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
                         detail::has_to_json<JSONSerializer, basic_json,
                                             uncvref_t<T>>::value,
@@ -1797,7 +1773,10 @@ class basic_json
 
     @since version 1.0.0
     */
-    basic_json(const int val) noexcept
+
+    // Quickfix, accept every enum type, without looking if a to_json method is provided...
+    template <typename T, enable_if_t<std::is_enum<T>::value, int> = 0>
+    basic_json(T val) noexcept
         : m_type(value_t::number_integer),
           m_value(static_cast<number_integer_t>(val))
     {
@@ -1829,13 +1808,11 @@ class basic_json
 
     @since version 1.0.0
     */
-    template <typename CompatibleNumberIntegerType,
-              enable_if_t<
-                  detail::is_compatible_integer_type<
-                      number_integer_t, CompatibleNumberIntegerType>::value or
-                      detail::is_compatible_enum_type<
-                          number_integer_t, CompatibleNumberIntegerType>::value,
-                  int> = 0>
+    template <
+        typename CompatibleNumberIntegerType,
+        enable_if_t<detail::is_compatible_integer_type<
+                        number_integer_t, CompatibleNumberIntegerType>::value,
+                    int> = 0>
     basic_json(const CompatibleNumberIntegerType val) noexcept
         : m_type(value_t::number_integer),
           m_value(static_cast<number_integer_t>(val)) {
@@ -1890,12 +1867,9 @@ class basic_json
     */
     template <
         typename CompatibleNumberUnsignedType,
-        enable_if_t<
-            detail::is_compatible_integer_type<
-                number_unsigned_t, CompatibleNumberUnsignedType>::value or
-                detail::is_compatible_enum_type<
-                    number_integer_t, CompatibleNumberUnsignedType>::value,
-            int> = 0>
+        enable_if_t<detail::is_compatible_integer_type<
+                        number_unsigned_t, CompatibleNumberUnsignedType>::value,
+                    int> = 0>
     basic_json(const CompatibleNumberUnsignedType val) noexcept
         : m_type(value_t::number_unsigned),
           m_value(static_cast<number_unsigned_t>(val)) {

From 8e43d476d35e53de10fe338e808a7c3a65e4f169 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Tue, 13 Dec 2016 22:01:38 +0100
Subject: [PATCH 067/174] add more tests to unit-udt.cpp

---
 test/src/unit-udt.cpp | 127 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 127 insertions(+)

diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 2518fcfc..81fae3ee 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -226,3 +226,130 @@ TEST_CASE("basic usage", "[udt]")
     CHECK(book == parsed_book);
   }
 }
+
+namespace udt
+{
+template <typename T>
+class optional_type
+{
+public:
+  optional_type() = default;
+  optional_type(T t) { _impl = std::make_shared<T>(std::move(t)); }
+  optional_type(std::nullptr_t) { _impl = nullptr; }
+
+  optional_type &operator=(std::nullptr_t)
+  {
+    _impl = nullptr;
+    return *this;
+  }
+
+  optional_type& operator=(T t)
+  {
+    _impl = std::make_shared<T>(std::move(t));
+    return *this;
+  }
+
+  explicit operator bool() const noexcept { return _impl != nullptr; }
+  T const &operator*() const noexcept { return *_impl; }
+  T &operator*() noexcept { return *_impl; }
+
+private:
+  std::shared_ptr<T> _impl;
+};
+
+struct legacy_type
+{
+  std::string number;
+};
+}
+
+namespace nlohmann
+{
+template <typename T>
+struct adl_serializer<udt::optional_type<T>>
+{
+  static void to_json(json& j, udt::optional_type<T> const& opt)
+  {
+    if (opt)
+      j = *opt;
+    else
+      j = nullptr;
+  }
+
+  static void from_json(json const &j, udt::optional_type<T> &opt)
+  {
+    if (j.is_null())
+      opt = nullptr;
+    else
+      opt = j.get<T>();
+  }
+};
+
+template <>
+struct adl_serializer<udt::legacy_type>
+{
+  static void to_json(json& j, udt::legacy_type const& l)
+  {
+    j = std::stoi(l.number);
+  }
+
+  static void from_json(json const& j, udt::legacy_type& l)
+  {
+    l.number = std::to_string(j.get<int>());
+  }
+};
+}
+
+TEST_CASE("adl_serializer specialization", "[udt]")
+{
+  using nlohmann::json;
+
+  SECTION("partial specialization")
+  {
+    SECTION("to_json")
+    {
+      udt::optional_type<udt::person> optPerson;
+
+      json j = optPerson;
+      CHECK(j.is_null());
+
+      optPerson = udt::person{{42}, {"John Doe"}};
+      j = optPerson;
+      CHECK_FALSE(j.is_null());
+
+      CHECK(j.get<udt::person>() == *optPerson);
+    }
+
+    SECTION("from_json")
+    {
+      auto person = udt::person{{42}, {"John Doe"}};
+      json j = person;
+
+      auto optPerson = j.get<udt::optional_type<udt::person>>();
+      REQUIRE(optPerson);
+      CHECK(*optPerson == person);
+
+      j = nullptr;
+      optPerson = j.get<udt::optional_type<udt::person>>();
+      CHECK(!optPerson);
+    }
+  }
+
+  SECTION("total specialization")
+  {
+    SECTION("to_json")
+    {
+      udt::legacy_type lt{"4242"};
+
+      json j = lt;
+      CHECK(j.get<int>() == 4242);
+    }
+
+    SECTION("from_json")
+    {
+      json j = 4242;
+      auto lt = j.get<udt::legacy_type>();
+      CHECK(lt.number == "4242");
+    }
+  }
+}

From 3d405c6883113b3e26a3ab4fd5200bc2f6299325 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Wed, 14 Dec 2016 00:03:55 +0100
Subject: [PATCH 068/174] add support for enum classes

---
 src/json.hpp          | 21 ++++++++++++---
 test/src/unit-udt.cpp | 62 ++++++++++++++++++++++++++++++++++++-------
 2 files changed, 71 insertions(+), 12 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 35d3d0a6..e6034029 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -122,6 +122,17 @@ using uncvref_t = remove_cv_t<remove_reference_t<T>>;
 template <bool If, typename Then, typename Else>
 using conditional_t = typename std::conditional<If, Then, Else>::type;
 
+// Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait
+template <typename T>
+using is_scoped_enum =
+    std::integral_constant<bool, not std::is_convertible<T, int>::value and
+                                     std::is_enum<T>::value>;
+
+template <typename T>
+using is_unscoped_enum =
+    std::integral_constant<bool, std::is_convertible<T, int>::value and
+                                     std::is_enum<T>::value>;
+
 // TODO update this doc
 /*!
 @brief unnamed namespace with internal helper functions
@@ -130,6 +141,10 @@ using conditional_t = typename std::conditional<If, Then, Else>::type;
 
 namespace detail
 {
+// Very useful construct against boilerplate (more boilerplate needed than in C++17: http://en.cppreference.com/w/cpp/types/void_t)
+template <typename...> struct make_void { using type = void; };
+template <typename... Ts> using void_t = typename make_void<Ts...>::type;
+
 // Implementation of 3 C++17 constructs: conjunction, disjunction, negation.
 // This is needed to avoid evaluating all the traits in a condition
 //
@@ -277,6 +292,7 @@ template <typename T, typename BasicJson>
 struct is_compatible_basic_json_type
 {
   static auto constexpr value =
+      is_unscoped_enum<T>::value or
       std::is_same<T, BasicJson>::value or
       std::is_constructible<typename BasicJson::string_t, T>::value or
       std::is_same<typename BasicJson::boolean_t, T>::value or
@@ -1601,7 +1617,6 @@ class basic_json
                         not detail::is_compatible_basic_json_type<
                             uncvref_t<T>, basic_json_t>::value and
                         not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
-                        not std::is_enum<uncvref_t<T>>::value and
                         not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
                         not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
                         detail::has_to_json<JSONSerializer, basic_json,
@@ -1774,8 +1789,8 @@ class basic_json
     @since version 1.0.0
     */
 
-    // Quickfix, accept every enum type, without looking if a to_json method is provided...
-    template <typename T, enable_if_t<std::is_enum<T>::value, int> = 0>
+    // Constructor for unscoped enums (not enum classes)
+    template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0>
     basic_json(T val) noexcept
         : m_type(value_t::number_integer),
           m_value(static_cast<number_integer_t>(val))
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 81fae3ee..df0e47dd 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -35,6 +35,13 @@ SOFTWARE.
 
 namespace udt
 {
+  enum class country
+  {
+    china,
+    france,
+    russia
+  };
+
   struct age
   {
     int m_val;
@@ -54,6 +61,7 @@ namespace udt
   {
     age m_age;
     name m_name;
+    country m_country;
   };
 
   struct contact
@@ -69,7 +77,7 @@ namespace udt
   };
 }
 
-// to_json methods for default basic_json
+// to_json methods
 namespace udt
 {
   void to_json(nlohmann::json& j, age a)
@@ -82,10 +90,26 @@ namespace udt
     j = n.m_val;
   }
 
+  void to_json(nlohmann::json& j, country c)
+  {
+    switch (c)
+    {
+    case country::china:
+      j = u8"中华人民共和国";
+      return;
+    case country::france:
+      j = "France";
+      return;
+    case country::russia:
+      j = u8"Российская Федерация";
+      return;
+    }
+  }
+
   void to_json(nlohmann::json& j, person const& p)
   {
     using nlohmann::json;
-    j = json{{"age", p.m_age}, {"name", p.m_name}};
+    j = json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}};
   }
 
   void to_json(nlohmann::json& j, address const& a)
@@ -139,7 +163,7 @@ namespace udt
   }
 }
 
-// from_json methods for default basic_json
+// from_json methods
 namespace udt
 {
   void from_json(nlohmann::json const& j, age &a)
@@ -152,10 +176,24 @@ namespace udt
     n.m_val = j.get<std::string>();
   }
 
+  void from_json(nlohmann::json const &j, country &c)
+  {
+    const auto str = j.get<std::string>();
+    static const std::map<std::string, country> m = {
+        {u8"中华人民共和国", country::china},
+        {"France", country::france},
+        {"Российская Федерация", country::russia}};
+
+    const auto it = m.find(str);
+    // TODO test exceptions
+    c = it->second;
+  }
+
   void from_json(nlohmann::json const& j, person &p)
   {
     p.m_age = j["age"].get<age>();
     p.m_name = j["name"].get<name>();
+    p.m_country = j["country"].get<country>();
   }
 
   void from_json(nlohmann::json const &j, address &a)
@@ -183,29 +221,33 @@ TEST_CASE("basic usage", "[udt]")
   // a bit narcissic maybe :) ?
   const udt::age a{23};
   const udt::name n{"theo"};
-  const udt::person sfinae_addict{a, n};
+  const udt::country c{udt::country::france};
+  const udt::person sfinae_addict{a, n, c};
+  const udt::person senior_programmer{{42}, {u8"王芳"}, udt::country::china};
   const udt::address addr{"Paris"};
   const udt::contact cpp_programmer{sfinae_addict, addr};
-  const udt::contact_book book{{"C++"}, {cpp_programmer, cpp_programmer}};
+  const udt::contact_book book{{"C++"}, {cpp_programmer, {senior_programmer, addr}}};
 
   SECTION("conversion to json via free-functions")
   {
     CHECK(json(a) == json(23));
     CHECK(json(n) == json("theo"));
-    CHECK(json(sfinae_addict) == R"({"name":"theo", "age":23})"_json);
+    CHECK(json(c) == json("France"));
+    CHECK(json(sfinae_addict) == R"({"name":"theo", "age":23, "country":"France"})"_json);
     CHECK(json("Paris") == json(addr));
     CHECK(json(cpp_programmer) ==
-          R"({"person" : {"age":23, "name":"theo"}, "address":"Paris"})"_json);
+          R"({"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"})"_json);
 
     CHECK(
         json(book) ==
-        R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo"}, "address":"Paris"}, {"person" : {"age":23, "name":"theo"}, "address":"Paris"}]})"_json);
+        R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json);
+
   }
 
   SECTION("conversion from json via free-functions")
   {
     const auto big_json =
-        R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo"}, "address":"Paris"}, {"person" : {"age":23, "name":"theo"}, "address":"Paris"}]})"_json;
+        R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json;
     const auto parsed_book = big_json.get<udt::contact_book>();
     const auto book_name = big_json["name"].get<udt::name>();
     const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>();
@@ -214,10 +256,12 @@ TEST_CASE("basic usage", "[udt]")
     const auto person = contact_json["person"].get<udt::person>();
     const auto address = contact_json["address"].get<udt::address>();
     const auto age = contact_json["person"]["age"].get<udt::age>();
+    const auto country = contact_json["person"]["country"].get<udt::country>();
     const auto name = contact_json["person"]["name"].get<udt::name>();
 
     CHECK(age == a);
     CHECK(name == n);
+    CHECK(country == c);
     CHECK(address == addr);
     CHECK(person == sfinae_addict);
     CHECK(contact == cpp_programmer);

From 7e750ec1fa0e40271a3948e0b8cf4bcacee33994 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Wed, 14 Dec 2016 21:53:10 +0100
Subject: [PATCH 069/174] fix msvc, by doubling parenthesis on catch assertions

---
 test/src/unit-class_lexer.cpp | 130 +++++++++++++++++-----------------
 1 file changed, 65 insertions(+), 65 deletions(-)

diff --git a/test/src/unit-class_lexer.cpp b/test/src/unit-class_lexer.cpp
index 33ea610a..40867b19 100644
--- a/test/src/unit-class_lexer.cpp
+++ b/test/src/unit-class_lexer.cpp
@@ -38,86 +38,86 @@ TEST_CASE("lexer class")
     {
         SECTION("structural characters")
         {
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("["),
-                              1).scan() == json::lexer::token_type::begin_array);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("]"),
-                              1).scan() == json::lexer::token_type::end_array);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("{"),
-                              1).scan() == json::lexer::token_type::begin_object);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("}"),
-                              1).scan() == json::lexer::token_type::end_object);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(","),
-                              1).scan() == json::lexer::token_type::value_separator);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(":"),
-                              1).scan() == json::lexer::token_type::name_separator);
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("["),
+                              1).scan() == json::lexer::token_type::begin_array));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("]"),
+                              1).scan() == json::lexer::token_type::end_array));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("{"),
+                              1).scan() == json::lexer::token_type::begin_object));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("}"),
+                              1).scan() == json::lexer::token_type::end_object));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(","),
+                              1).scan() == json::lexer::token_type::value_separator));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(":"),
+                              1).scan() == json::lexer::token_type::name_separator));
         }
 
         SECTION("literal names")
         {
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("null"),
-                              4).scan() == json::lexer::token_type::literal_null);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("true"),
-                              4).scan() == json::lexer::token_type::literal_true);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("false"),
-                              5).scan() == json::lexer::token_type::literal_false);
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("null"),
+                              4).scan() == json::lexer::token_type::literal_null));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("true"),
+                              4).scan() == json::lexer::token_type::literal_true));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("false"),
+                              5).scan() == json::lexer::token_type::literal_false));
         }
 
         SECTION("numbers")
         {
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("0"),
-                              1).scan() == json::lexer::token_type::value_number);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1"),
-                              1).scan() == json::lexer::token_type::value_number);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("2"),
-                              1).scan() == json::lexer::token_type::value_number);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("3"),
-                              1).scan() == json::lexer::token_type::value_number);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("4"),
-                              1).scan() == json::lexer::token_type::value_number);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("5"),
-                              1).scan() == json::lexer::token_type::value_number);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("6"),
-                              1).scan() == json::lexer::token_type::value_number);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("7"),
-                              1).scan() == json::lexer::token_type::value_number);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("8"),
-                              1).scan() == json::lexer::token_type::value_number);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("9"),
-                              1).scan() == json::lexer::token_type::value_number);
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("0"),
+                              1).scan() == json::lexer::token_type::value_number));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1"),
+                              1).scan() == json::lexer::token_type::value_number));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("2"),
+                              1).scan() == json::lexer::token_type::value_number));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("3"),
+                              1).scan() == json::lexer::token_type::value_number));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("4"),
+                              1).scan() == json::lexer::token_type::value_number));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("5"),
+                              1).scan() == json::lexer::token_type::value_number));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("6"),
+                              1).scan() == json::lexer::token_type::value_number));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("7"),
+                              1).scan() == json::lexer::token_type::value_number));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("8"),
+                              1).scan() == json::lexer::token_type::value_number));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("9"),
+                              1).scan() == json::lexer::token_type::value_number));
         }
 
         SECTION("whitespace")
         {
             // result is end_of_input, because not token is following
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" "),
-                              1).scan() == json::lexer::token_type::end_of_input);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\t"),
-                              1).scan() == json::lexer::token_type::end_of_input);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\n"),
-                              1).scan() == json::lexer::token_type::end_of_input);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\r"),
-                              1).scan() == json::lexer::token_type::end_of_input);
-            CHECK(json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" \t\n\r\n\t "),
-                              7).scan() == json::lexer::token_type::end_of_input);
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" "),
+                              1).scan() == json::lexer::token_type::end_of_input));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\t"),
+                              1).scan() == json::lexer::token_type::end_of_input));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\n"),
+                              1).scan() == json::lexer::token_type::end_of_input));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\r"),
+                              1).scan() == json::lexer::token_type::end_of_input));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" \t\n\r\n\t "),
+                              7).scan() == json::lexer::token_type::end_of_input));
         }
     }
 
     SECTION("token_type_name")
     {
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::uninitialized) == "<uninitialized>");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_true) == "true literal");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_false) == "false literal");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_null) == "null literal");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::value_string) == "string literal");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::value_number) == "number literal");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::begin_array) == "'['");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::begin_object) == "'{'");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::end_array) == "']'");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::end_object) == "'}'");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::name_separator) == "':'");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::value_separator) == "','");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::parse_error) == "<parse error>");
-        CHECK(json::lexer::token_type_name(json::lexer::token_type::end_of_input) == "end of input");
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::uninitialized) == "<uninitialized>"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::literal_true) == "true literal"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::literal_false) == "false literal"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::literal_null) == "null literal"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_string) == "string literal"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_number) == "number literal"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::begin_array) == "'['"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::begin_object) == "'{'"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::end_array) == "']'"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::end_object) == "'}'"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::name_separator) == "':'"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_separator) == "','"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::parse_error) == "<parse error>"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::end_of_input) == "end of input"));
     }
 
     SECTION("parse errors on first character")
@@ -150,7 +150,7 @@ TEST_CASE("lexer class")
                 case ('8'):
                 case ('9'):
                 {
-                    CHECK(res != json::lexer::token_type::parse_error);
+                    CHECK((res != json::lexer::token_type::parse_error));
                     break;
                 }
 
@@ -160,14 +160,14 @@ TEST_CASE("lexer class")
                 case ('\n'):
                 case ('\r'):
                 {
-                    CHECK(res == json::lexer::token_type::end_of_input);
+                    CHECK((res == json::lexer::token_type::end_of_input));
                     break;
                 }
 
                 // anything else is not expected
                 default:
                 {
-                    CHECK(res == json::lexer::token_type::parse_error);
+                    CHECK((res == json::lexer::token_type::parse_error));
                     break;
                 }
             }

From 1c21c87e6fe4a65268c8eae598587af5aec8f5ae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Wed, 14 Dec 2016 22:08:36 +0100
Subject: [PATCH 070/174] use u8 prefix in unit-udt.cpp

---
 test/src/unit-udt.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index df0e47dd..e860cc89 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -240,14 +240,14 @@ TEST_CASE("basic usage", "[udt]")
 
     CHECK(
         json(book) ==
-        R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json);
+        u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json);
 
   }
 
   SECTION("conversion from json via free-functions")
   {
     const auto big_json =
-        R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json;
+        u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json;
     const auto parsed_book = big_json.get<udt::contact_book>();
     const auto book_name = big_json["name"].get<udt::name>();
     const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>();

From d5ee5830eddc2ec86a2661c3ca644965e176e17a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Thu, 15 Dec 2016 00:06:37 +0100
Subject: [PATCH 071/174] add more tests

---
 test/src/unit-udt.cpp | 249 +++++++++++++++++++++++++++++++++---------
 1 file changed, 199 insertions(+), 50 deletions(-)

diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index e860cc89..9ead6eba 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -33,6 +33,8 @@ SOFTWARE.
 
 #include "json.hpp"
 
+using nlohmann::json;
+
 namespace udt
 {
   enum class country
@@ -80,17 +82,21 @@ namespace udt
 // to_json methods
 namespace udt
 {
-  void to_json(nlohmann::json& j, age a)
+  // templates because of the custom_json tests (see below)
+  template <typename Json>
+  void to_json(Json& j, age a)
   {
     j = a.m_val;
   }
 
-  void to_json(nlohmann::json& j, name const& n)
+  template <typename Json>
+  void to_json(Json& j, name const& n)
   {
     j = n.m_val;
   }
 
-  void to_json(nlohmann::json& j, country c)
+  template <typename Json>
+  void to_json(Json& j, country c)
   {
     switch (c)
     {
@@ -106,10 +112,10 @@ namespace udt
     }
   }
 
-  void to_json(nlohmann::json& j, person const& p)
+  template <typename Json>
+  void to_json(Json& j, person const& p)
   {
-    using nlohmann::json;
-    j = json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}};
+    j = Json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}};
   }
 
   void to_json(nlohmann::json& j, address const& a)
@@ -119,13 +125,11 @@ namespace udt
 
   void to_json(nlohmann::json& j, contact const& c)
   {
-    using nlohmann::json;
     j = json{{"person", c.m_person}, {"address", c.m_address}};
   }
 
   void to_json(nlohmann::json& j, contact_book const& cb)
   {
-    using nlohmann::json;
     j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}};
   }
 
@@ -166,17 +170,20 @@ namespace udt
 // from_json methods
 namespace udt
 {
-  void from_json(nlohmann::json const& j, age &a)
+  template <typename Json>
+  void from_json(Json const& j, age &a)
   {
     a.m_val = j.get<int>();
   }
 
-  void from_json(nlohmann::json const& j, name &n)
+  template <typename Json>
+  void from_json(Json const& j, name &n)
   {
     n.m_val = j.get<std::string>();
   }
 
-  void from_json(nlohmann::json const &j, country &c)
+  template <typename Json>
+  void from_json(Json const &j, country &c)
   {
     const auto str = j.get<std::string>();
     static const std::map<std::string, country> m = {
@@ -189,7 +196,8 @@ namespace udt
     c = it->second;
   }
 
-  void from_json(nlohmann::json const& j, person &p)
+  template <typename Json>
+  void from_json(Json const& j, person &p)
   {
     p.m_age = j["age"].get<age>();
     p.m_name = j["name"].get<name>();
@@ -216,7 +224,6 @@ namespace udt
 
 TEST_CASE("basic usage", "[udt]")
 {
-  using nlohmann::json;
 
   // a bit narcissic maybe :) ?
   const udt::age a{23};
@@ -273,34 +280,6 @@ TEST_CASE("basic usage", "[udt]")
 
 namespace udt
 {
-template <typename T>
-class optional_type
-{
-public:
-  optional_type() = default;
-  optional_type(T t) { _impl = std::make_shared<T>(std::move(t)); }
-  optional_type(std::nullptr_t) { _impl = nullptr; }
-
-  optional_type &operator=(std::nullptr_t)
-  {
-    _impl = nullptr;
-    return *this;
-  }
-
-  optional_type& operator=(T t)
-  {
-    _impl = std::make_shared<T>(std::move(t));
-    return *this;
-  }
-
-  explicit operator bool() const noexcept { return _impl != nullptr; }
-  T const &operator*() const noexcept { return *_impl; }
-  T &operator*() noexcept { return *_impl; }
-
-private:
-  std::shared_ptr<T> _impl;
-};
-
 struct legacy_type
 {
   std::string number;
@@ -310,9 +289,9 @@ struct legacy_type
 namespace nlohmann
 {
 template <typename T>
-struct adl_serializer<udt::optional_type<T>>
+struct adl_serializer<std::shared_ptr<T>>
 {
-  static void to_json(json& j, udt::optional_type<T> const& opt)
+  static void to_json(json& j, std::shared_ptr<T> const& opt)
   {
     if (opt)
       j = *opt;
@@ -320,12 +299,12 @@ struct adl_serializer<udt::optional_type<T>>
       j = nullptr;
   }
 
-  static void from_json(json const &j, udt::optional_type<T> &opt)
+  static void from_json(json const &j, std::shared_ptr<T> &opt)
   {
     if (j.is_null())
       opt = nullptr;
     else
-      opt = j.get<T>();
+      opt.reset(new T(j.get<T>()));
   }
 };
 
@@ -346,18 +325,17 @@ struct adl_serializer<udt::legacy_type>
 
 TEST_CASE("adl_serializer specialization", "[udt]")
 {
-  using nlohmann::json;
 
   SECTION("partial specialization")
   {
     SECTION("to_json")
     {
-      udt::optional_type<udt::person> optPerson;
+      std::shared_ptr<udt::person> optPerson;
 
       json j = optPerson;
       CHECK(j.is_null());
 
-      optPerson = udt::person{{42}, {"John Doe"}};
+      optPerson.reset(new udt::person{{42}, {"John Doe"}});
       j = optPerson;
       CHECK_FALSE(j.is_null());
 
@@ -369,12 +347,12 @@ TEST_CASE("adl_serializer specialization", "[udt]")
       auto person = udt::person{{42}, {"John Doe"}};
       json j = person;
 
-      auto optPerson = j.get<udt::optional_type<udt::person>>();
+      auto optPerson = j.get<std::shared_ptr<udt::person>>();
       REQUIRE(optPerson);
       CHECK(*optPerson == person);
 
       j = nullptr;
-      optPerson = j.get<udt::optional_type<udt::person>>();
+      optPerson = j.get<std::shared_ptr<udt::person>>();
       CHECK(!optPerson);
     }
   }
@@ -397,3 +375,174 @@ TEST_CASE("adl_serializer specialization", "[udt]")
     }
   }
 }
+
+namespace nlohmann
+{
+// this might work in the future, not in the scope of this PR though
+// we have to make this very clear in the doc
+template <typename T>
+struct adl_serializer<std::vector<T>>
+{
+  static void to_json(json& j, std::vector<T> const& opt)
+  {
+  }
+
+  static void from_json(json const &j, std::vector<T> &opt)
+  {
+  }
+};
+}
+
+TEST_CASE("current supported types are preferred over specializations", "[udt]")
+{
+
+  json j = std::vector<int>{1, 2, 3};
+  auto f = j.get<std::vector<int>>();
+  CHECK((f == std::vector<int>{1, 2, 3}));
+}
+
+namespace nlohmann
+{
+template <typename T>
+struct adl_serializer<std::unique_ptr<T>>
+{
+  static void to_json(json& j, std::unique_ptr<T> const& opt)
+  {
+    if (opt)
+      j = *opt;
+    else
+      j = nullptr;
+  }
+
+  // this is the overload needed for non-copyable types,
+  // should we add a priority tag in the implementation to prefer this overload if it exists?
+  static std::unique_ptr<T> from_json(json const &j)
+  {
+    if (j.is_null())
+      return nullptr;
+    else
+      return std::unique_ptr<T>(new T(j.get<T>()));
+  }
+};
+}
+
+TEST_CASE("Non-copyable types", "[udt]")
+{
+  SECTION("to_json")
+  {
+    std::unique_ptr<udt::person> optPerson;
+
+    json j = optPerson;
+    CHECK(j.is_null());
+
+    optPerson.reset(new udt::person{{42}, {"John Doe"}});
+    j = optPerson;
+    CHECK_FALSE(j.is_null());
+
+    CHECK(j.get<udt::person>() == *optPerson);
+  }
+
+  SECTION("from_json")
+  {
+    auto person = udt::person{{42}, {"John Doe"}};
+    json j = person;
+
+    auto optPerson = j.get<std::unique_ptr<udt::person>>();
+    REQUIRE(optPerson);
+    CHECK(*optPerson == person);
+
+    j = nullptr;
+    optPerson = j.get<std::unique_ptr<udt::person>>();
+    CHECK(!optPerson);
+  }
+}
+
+// custom serializer
+// advanced usage (I did not have a real use case in mind)
+template <typename T, typename = typename std::enable_if<std::is_pod<T>::value>::type>
+struct pod_serializer
+{
+  // I could forward-declare this struct, and add a basic_json alias
+  template <typename Json>
+  static void from_json(Json const& j , T& t)
+  {
+    auto value = j.template get<std::uint64_t>();
+    auto bytes = static_cast<char*>(static_cast<void*>(&value));
+    std::memcpy(&t, bytes, sizeof(value));
+  }
+
+  template <typename Json>
+  static void to_json(Json& j, T const& t)
+  {
+    auto bytes = static_cast<char const*>(static_cast<void const*>(&t));
+    std::uint64_t value = bytes[0];
+    for (auto i = 1; i < 8; ++i)
+      value |= bytes[i] << 8 * i;
+
+    j = value;
+  }
+};
+
+namespace udt
+{
+struct small_pod
+{
+  int begin;
+  char middle;
+  short end;
+};
+
+bool operator==(small_pod lhs, small_pod rhs)
+{
+  return std::tie(lhs.begin, lhs.middle, lhs.end) ==
+         std::tie(lhs.begin, lhs.middle, lhs.end);
+}
+}
+
+TEST_CASE("custom serializer for pods", "[udt]")
+{
+  using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, pod_serializer>;
+
+  auto p = udt::small_pod{42, '/', 42};
+  custom_json j = p;
+
+  auto p2 = j.get<udt::small_pod>();
+
+  CHECK(p == p2);
+}
+
+template <typename T, typename>
+struct another_adl_serializer;
+
+  using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, another_adl_serializer>;
+
+template <typename T, typename>
+struct another_adl_serializer
+{
+  static void from_json(custom_json const& j , T& t)
+  {
+    using nlohmann::from_json;
+    from_json(j, t);
+  }
+
+  static void to_json(custom_json& j , T const& t)
+  {
+    using nlohmann::to_json;
+    to_json(j, t);
+  }
+};
+
+TEST_CASE("custom serializer that does adl by default", "[udt]")
+{
+  using json = nlohmann::json;
+
+  auto me = udt::person{23, "theo", udt::country::france};
+
+  json j = me;
+  custom_json cj = me;
+
+  CHECK(j.dump() == cj.dump());
+
+  CHECK(me == j.get<udt::person>());
+  CHECK(me == cj.get<udt::person>());
+}

From aa2679a8ce1f92b107907cd188762d3c7b0ee9ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Thu, 15 Dec 2016 12:22:53 +0100
Subject: [PATCH 072/174] fix tests, avoid instantiating JSONSerializer when it
 will not be used

---
 src/json.hpp          | 19 ++++++++++---------
 test/src/unit-udt.cpp | 14 +++++++-------
 2 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index e6034029..f883d9ed 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -1614,13 +1614,14 @@ class basic_json
     template <
         typename T,
         enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
-                        not detail::is_compatible_basic_json_type<
-                            uncvref_t<T>, basic_json_t>::value and
                         not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
                         not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
                         not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
+
+                        detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
+                            uncvref_t<T>, basic_json_t>>,
                         detail::has_to_json<JSONSerializer, basic_json,
-                                            uncvref_t<T>>::value,
+                                            uncvref_t<T>>>::value,
                     int> = 0>
     basic_json(T &&val)
     {
@@ -3311,10 +3312,10 @@ class basic_json
 
     template <
         typename T,
-        enable_if_t<not detail::is_compatible_basic_json_type<
-                        uncvref_t<T>, basic_json_t>::value and
+        enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
+                        uncvref_t<T>, basic_json_t>>,
                         detail::has_from_json<JSONSerializer, basic_json_t,
-                                              uncvref_t<T>>::value,
+                                              uncvref_t<T>>>::value,
                     int> = 0>
     auto get() const -> uncvref_t<T>
     {
@@ -3331,10 +3332,10 @@ class basic_json
     // This overload is chosen for non-default constructible user-defined-types
     template <
         typename T,
-        enable_if_t<not detail::is_compatible_basic_json_type<
-                        T, basic_json_t>::value and
+        enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
+                        uncvref_t<T>, basic_json_t>>,
                         detail::has_non_default_from_json<JSONSerializer, basic_json_t,
-                                              T>::value,
+                                              uncvref_t<T>>>::value,
                     short> = 0>
     T get() const
     {
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 9ead6eba..364c5ae7 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -27,6 +27,7 @@ SOFTWARE.
 */
 
 #include <array>
+#include <map>
 #include <string>
 #include <memory>
 #include "catch.hpp"
@@ -173,19 +174,19 @@ namespace udt
   template <typename Json>
   void from_json(Json const& j, age &a)
   {
-    a.m_val = j.get<int>();
+    a.m_val = j.template get<int>();
   }
 
   template <typename Json>
   void from_json(Json const& j, name &n)
   {
-    n.m_val = j.get<std::string>();
+    n.m_val = j.template get<std::string>();
   }
 
   template <typename Json>
   void from_json(Json const &j, country &c)
   {
-    const auto str = j.get<std::string>();
+    const auto str = j.template get<std::string>();
     static const std::map<std::string, country> m = {
         {u8"中华人民共和国", country::china},
         {"France", country::france},
@@ -199,9 +200,9 @@ namespace udt
   template <typename Json>
   void from_json(Json const& j, person &p)
   {
-    p.m_age = j["age"].get<age>();
-    p.m_name = j["name"].get<name>();
-    p.m_country = j["country"].get<country>();
+    p.m_age = j["age"].template get<age>();
+    p.m_name = j["name"].template get<name>();
+    p.m_country = j["country"].template get<country>();
   }
 
   void from_json(nlohmann::json const &j, address &a)
@@ -325,7 +326,6 @@ struct adl_serializer<udt::legacy_type>
 
 TEST_CASE("adl_serializer specialization", "[udt]")
 {
-
   SECTION("partial specialization")
   {
     SECTION("to_json")

From be1d3de49be7cf8453171b9c0bc5149a6404c68d Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sun, 18 Dec 2016 20:32:09 +0100
Subject: [PATCH 073/174] :lipstick: moved changes to re2c file and ran `make
 pretty`

---
 src/json.hpp                  | 6315 +++++++++++++++++----------------
 src/json.hpp.re2c             | 4716 +++++++++++++-----------
 test/src/unit-class_lexer.cpp |   48 +-
 test/src/unit-udt.cpp         |  623 ++--
 4 files changed, 6100 insertions(+), 5602 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index f883d9ed..7325e7c8 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -126,12 +126,12 @@ using conditional_t = typename std::conditional<If, Then, Else>::type;
 template <typename T>
 using is_scoped_enum =
     std::integral_constant<bool, not std::is_convertible<T, int>::value and
-                                     std::is_enum<T>::value>;
+    std::is_enum<T>::value>;
 
 template <typename T>
 using is_unscoped_enum =
     std::integral_constant<bool, std::is_convertible<T, int>::value and
-                                     std::is_enum<T>::value>;
+    std::is_enum<T>::value>;
 
 // TODO update this doc
 /*!
@@ -142,7 +142,10 @@ using is_unscoped_enum =
 namespace detail
 {
 // Very useful construct against boilerplate (more boilerplate needed than in C++17: http://en.cppreference.com/w/cpp/types/void_t)
-template <typename...> struct make_void { using type = void; };
+template <typename...> struct make_void
+{
+    using type = void;
+};
 template <typename... Ts> using void_t = typename make_void<Ts...>::type;
 
 // Implementation of 3 C++17 constructs: conjunction, disjunction, negation.
@@ -160,14 +163,14 @@ template <class...> struct conjunction : std::true_type {};
 template <class B1> struct conjunction<B1> : B1 {};
 template <class B1, class... Bn>
 struct conjunction<B1, Bn...>
-    : conditional_t<bool(B1::value), conjunction<Bn...>, B1> {};
+: conditional_t<bool(B1::value), conjunction<Bn...>, B1> {};
 
-template <class B> struct negation : std::integral_constant<bool, !B::value> {};
+template <class B> struct negation : std::integral_constant < bool, !B::value > {};
 template <class...> struct disjunction : std::false_type {};
 template <class B1> struct disjunction<B1> : B1 {};
 template <class B1, class... Bn>
 struct disjunction<B1, Bn...>
-    : conditional_t<bool(B1::value), B1, disjunction<Bn...>> {};
+: conditional_t<bool(B1::value), B1, disjunction<Bn...>> {};
 
 /*!
 @brief Helper to determine whether there's a key_type for T.
@@ -178,17 +181,17 @@ contains a `mapped_type`, whereas `std::vector` fails the test.
 @since version 1.0.0, overworked in version 2.0.6
 */
 #define NLOHMANN_JSON_HAS_HELPER(type)                                         \
-  template <typename T> struct has_##type {                                    \
-  private:                                                                     \
-    template <typename U, typename = typename U::type>                         \
-    static int detect(U &&);                                                   \
-                                                                               \
-    static void detect(...);                                                   \
-                                                                               \
-  public:                                                                      \
-    static constexpr bool value =                                              \
-        std::is_integral<decltype(detect(std::declval<T>()))>::value;          \
-  };
+    template <typename T> struct has_##type {                                    \
+    private:                                                                     \
+        template <typename U, typename = typename U::type>                         \
+        static int detect(U &&);                                                   \
+        \
+        static void detect(...);                                                   \
+        \
+    public:                                                                      \
+        static constexpr bool value =                                              \
+                std::is_integral<decltype(detect(std::declval<T>()))>::value;          \
+    };
 
 NLOHMANN_JSON_HAS_HELPER(mapped_type)
 NLOHMANN_JSON_HAS_HELPER(key_type)
@@ -198,122 +201,122 @@ NLOHMANN_JSON_HAS_HELPER(iterator)
 #undef NLOHMANN_JSON_HAS_HELPER
 
 template <bool B, class RealType, class CompatibleObjectType>
-struct is_compatible_object_type_impl : std::false_type{};
+struct is_compatible_object_type_impl : std::false_type {};
 
 template <class RealType, class CompatibleObjectType>
 struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 {
-  static constexpr auto value =
-      std::is_constructible<typename RealType::key_type,
-                            typename CompatibleObjectType::key_type>::value and
-      std::is_constructible<typename RealType::mapped_type,
-                            typename CompatibleObjectType::mapped_type>::value;
+    static constexpr auto value =
+        std::is_constructible<typename RealType::key_type,
+        typename CompatibleObjectType::key_type>::value and
+        std::is_constructible<typename RealType::mapped_type,
+        typename CompatibleObjectType::mapped_type>::value;
 };
 
 template<class RealType, class CompatibleObjectType>
 struct is_compatible_object_type
 {
-  // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void
-  // hence the conjunction
-  static auto constexpr value = is_compatible_object_type_impl<
-      conjunction<negation<std::is_same<void, CompatibleObjectType>>,
-                  has_mapped_type<CompatibleObjectType>,
-                  has_key_type<CompatibleObjectType>>::value,
-      RealType, CompatibleObjectType>::value;
+    // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void
+    // hence the conjunction
+    static auto constexpr value = is_compatible_object_type_impl <
+                                  conjunction<negation<std::is_same<void, CompatibleObjectType>>,
+                                  has_mapped_type<CompatibleObjectType>,
+                                  has_key_type<CompatibleObjectType>>::value,
+                                  RealType, CompatibleObjectType >::value;
 };
 
 template <bool B, class BasicJson, class CompatibleArrayType>
-struct is_compatible_array_type_impl : std::false_type{};
+struct is_compatible_array_type_impl : std::false_type {};
 
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
 {
-  static constexpr auto value =
-      not std::is_same<CompatibleArrayType,
-                       typename BasicJson::iterator>::value and
-      not std::is_same<CompatibleArrayType,
-                       typename BasicJson::const_iterator>::value and
-      not std::is_same<CompatibleArrayType,
-                       typename BasicJson::reverse_iterator>::value and
-      not std::is_same<CompatibleArrayType,
-                       typename BasicJson::const_reverse_iterator>::value and
-      not std::is_same<CompatibleArrayType,
-                       typename BasicJson::array_t::iterator>::value and
-      not std::is_same<CompatibleArrayType,
-                       typename BasicJson::array_t::const_iterator>::value;
+    static constexpr auto value =
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::iterator>::value and
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::const_iterator>::value and
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::reverse_iterator>::value and
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::const_reverse_iterator>::value and
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::array_t::iterator>::value and
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::array_t::const_iterator>::value;
 };
 
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-  // the check for CompatibleArrayType = void is done in is_compatible_object_type
-  // but we need the conjunction here as well
-  static auto constexpr value = is_compatible_array_type_impl<
-      conjunction<negation<is_compatible_object_type<
-                      typename BasicJson::object_t, CompatibleArrayType>>,
-                  has_value_type<CompatibleArrayType>,
-                  has_iterator<CompatibleArrayType>>::value,
-      BasicJson, CompatibleArrayType>::value;
+    // the check for CompatibleArrayType = void is done in is_compatible_object_type
+    // but we need the conjunction here as well
+    static auto constexpr value = is_compatible_array_type_impl <
+                                  conjunction<negation<is_compatible_object_type<
+                                  typename BasicJson::object_t, CompatibleArrayType>>,
+                                  has_value_type<CompatibleArrayType>,
+                                  has_iterator<CompatibleArrayType>>::value,
+                                  BasicJson, CompatibleArrayType >::value;
 };
 
 template <bool, typename, typename>
-struct is_compatible_integer_type_impl : std::false_type{};
+struct is_compatible_integer_type_impl : std::false_type {};
 
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
 {
-  using RealLimits = std::numeric_limits<RealIntegerType>;
-  using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>;
+    using RealLimits = std::numeric_limits<RealIntegerType>;
+    using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>;
 
-  static constexpr auto value =
-      std::is_constructible<RealIntegerType,
-                            CompatibleNumberIntegerType>::value and
-      CompatibleLimits::is_integer and
-      RealLimits::is_signed == CompatibleLimits::is_signed;
+    static constexpr auto value =
+        std::is_constructible<RealIntegerType,
+        CompatibleNumberIntegerType>::value and
+        CompatibleLimits::is_integer and
+        RealLimits::is_signed == CompatibleLimits::is_signed;
 };
 
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
-  static constexpr auto value = is_compatible_integer_type_impl<
-      std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType,
-      CompatibleNumberIntegerType>::value;
+    static constexpr auto value = is_compatible_integer_type_impl <
+                                  std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType,
+                                  CompatibleNumberIntegerType >::value;
 };
 
 template <typename RealFloat, typename CompatibleFloat>
 struct is_compatible_float_type
 {
-  static constexpr auto value =
-      std::is_constructible<RealFloat, CompatibleFloat>::value and
-      std::is_floating_point<CompatibleFloat>::value;
+    static constexpr auto value =
+        std::is_constructible<RealFloat, CompatibleFloat>::value and
+        std::is_floating_point<CompatibleFloat>::value;
 };
 
 template <typename T, typename BasicJson>
 struct is_compatible_basic_json_type
 {
-  static auto constexpr value =
-      is_unscoped_enum<T>::value or
-      std::is_same<T, BasicJson>::value or
-      std::is_constructible<typename BasicJson::string_t, T>::value or
-      std::is_same<typename BasicJson::boolean_t, T>::value or
-      is_compatible_array_type<BasicJson, T>::value or
-      is_compatible_object_type<typename BasicJson::object_t, T>::value or
-      is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
-      is_compatible_integer_type<typename BasicJson::number_integer_t,
-                                 T>::value or
-      is_compatible_integer_type<typename BasicJson::number_unsigned_t,
-                                 T>::value;
+    static auto constexpr value =
+        is_unscoped_enum<T>::value or
+        std::is_same<T, BasicJson>::value or
+        std::is_constructible<typename BasicJson::string_t, T>::value or
+        std::is_same<typename BasicJson::boolean_t, T>::value or
+        is_compatible_array_type<BasicJson, T>::value or
+        is_compatible_object_type<typename BasicJson::object_t, T>::value or
+        is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
+        is_compatible_integer_type<typename BasicJson::number_integer_t,
+        T>::value or
+        is_compatible_integer_type<typename BasicJson::number_unsigned_t,
+        T>::value;
 };
 
 template <typename T, typename BasicJson, typename PrimitiveIterator>
 struct is_basic_json_nested_class
 {
-  static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
-                                std::is_same<T, typename BasicJson::const_iterator>::value or
-                                std::is_same<T, typename BasicJson::reverse_iterator>::value or
-                                std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
-                                std::is_same<T, PrimitiveIterator>::value or
-                                std::is_same<T, typename BasicJson::json_pointer>::value;
+    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
+                                  std::is_same<T, typename BasicJson::const_iterator>::value or
+                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
+                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
+                                  std::is_same<T, PrimitiveIterator>::value or
+                                  std::is_same<T, typename BasicJson::json_pointer>::value;
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
@@ -321,17 +324,17 @@ template <template <typename, typename> class JSONSerializer, typename Json,
           typename T>
 struct has_from_json
 {
-private:
-  // also check the return type of from_json
-  template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
-                            std::declval<Json>(), std::declval<T &>()))>::value>>
-  static int detect(U &&);
+  private:
+    // also check the return type of from_json
+    template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
+                  std::declval<Json>(), std::declval<T&>()))>::value>>
+    static int detect(U&&);
 
-  static void detect(...);
+    static void detect(...);
 
-public:
-  static constexpr bool value = std::is_integral<decltype(
-      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+  public:
+    static constexpr bool value = std::is_integral<decltype(
+                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&) exists
@@ -340,15 +343,15 @@ template <template <typename, typename> class JSONSerializer, typename Json,
           typename T>
 struct has_non_default_from_json
 {
-private:
-  template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
-  static int detect(U &&);
+  private:
+    template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
+    static int detect(U&&);
 
-  static void detect(...);
+    static void detect(...);
 
-public:
-  static constexpr bool value = std::is_integral<decltype(
-      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+  public:
+    static constexpr bool value = std::is_integral<decltype(
+                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
 // This trait checks if JSONSerializer<T>::to_json exists
@@ -356,16 +359,16 @@ template <template <typename, typename> class JSONSerializer, typename Json,
           typename T>
 struct has_to_json
 {
-private:
-  template <typename U, typename = decltype(uncvref_t<U>::to_json(
-                            std::declval<Json &>(), std::declval<T>()))>
-  static int detect(U &&);
+  private:
+    template <typename U, typename = decltype(uncvref_t<U>::to_json(
+                  std::declval<Json&>(), std::declval<T>()))>
+    static int detect(U&&);
 
-  static void detect(...);
+    static void detect(...);
 
-public:
-  static constexpr bool value = std::is_integral<decltype(
-      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+  public:
+    static constexpr bool value = std::is_integral<decltype(
+                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
 // those declarations are needed to workaround a MSVC bug related to ADL
@@ -375,26 +378,26 @@ void from_json();
 
 struct to_json_fn
 {
-  // is it really useful to mark those as constexpr?
-  template <typename Json, typename T>
-  constexpr auto operator()(Json &&j, T &&val) const
-      noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
-          -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)),
-                      void())
-  {
-    return to_json(std::forward<Json>(j), std::forward<T>(val));
-  }
+    // is it really useful to mark those as constexpr?
+    template <typename Json, typename T>
+    constexpr auto operator()(Json&& j, T&& val) const
+    noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
+    -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)),
+                void())
+    {
+        return to_json(std::forward<Json>(j), std::forward<T>(val));
+    }
 };
 
 struct from_json_fn
 {
-  template <typename Json, typename T>
-  constexpr auto operator()(Json &&j, T &val) const
-      noexcept(noexcept(from_json(std::forward<Json>(j), val)))
-          -> decltype(from_json(std::forward<Json>(j), val), void())
-  {
-    return from_json(std::forward<Json>(j), val);
-  }
+    template <typename Json, typename T>
+    constexpr auto operator()(Json&& j, T& val) const
+    noexcept(noexcept(from_json(std::forward<Json>(j), val)))
+    -> decltype(from_json(std::forward<Json>(j), val), void())
+    {
+        return from_json(std::forward<Json>(j), val);
+    }
 };
 
 /*!
@@ -423,7 +426,7 @@ struct DecimalSeparator : std::numpunct<char>
 template <typename T>
 struct static_const
 {
-  static constexpr T value{};
+    static constexpr T value{};
 };
 
 template <typename T>
@@ -431,8 +434,8 @@ constexpr T static_const<T>::value;
 
 inline namespace
 {
-  constexpr auto const& to_json = static_const<detail::to_json_fn>::value;
-  constexpr auto const& from_json = static_const<detail::from_json_fn>::value;
+constexpr auto const& to_json = static_const<detail::to_json_fn>::value;
+constexpr auto const& from_json = static_const<detail::from_json_fn>::value;
 }
 
 // default JSONSerializer template argument, doesn't care about template argument
@@ -440,17 +443,17 @@ inline namespace
 template <typename = void, typename = void>
 struct adl_serializer
 {
-  template <typename Json, typename T>
-  static void from_json(Json&& j, T& val)
-  {
-    ::nlohmann::from_json(std::forward<Json>(j), val);
-  }
+    template <typename Json, typename T>
+    static void from_json(Json&& j, T& val)
+    {
+        ::nlohmann::from_json(std::forward<Json>(j), val);
+    }
 
-  template <typename Json, typename T>
-  static void to_json(Json& j, T&& val)
-  {
-    ::nlohmann::to_json(j, std::forward<T>(val));
-  }
+    template <typename Json, typename T>
+    static void to_json(Json& j, T&& val)
+    {
+        ::nlohmann::to_json(j, std::forward<T>(val));
+    }
 };
 
 /*!
@@ -1535,12 +1538,12 @@ class basic_json
               enable_if_t<detail::is_compatible_object_type<
                               object_t, CompatibleObjectType>::value,
                           int> = 0>
-    basic_json(const CompatibleObjectType &val) : m_type(value_t::object)
+    basic_json(const CompatibleObjectType& val) : m_type(value_t::object)
     {
-      using std::begin;
-      using std::end;
-      m_value.object = create<object_t>(begin(val), end(val));
-      assert_invariant();
+        using std::begin;
+        using std::end;
+        m_value.object = create<object_t>(begin(val), end(val));
+        assert_invariant();
     }
 
     /*!
@@ -1598,12 +1601,12 @@ class basic_json
               enable_if_t<detail::is_compatible_array_type<
                               basic_json_t, CompatibleArrayType>::value,
                           int> = 0>
-    basic_json(const CompatibleArrayType &val) : m_type(value_t::array)
+    basic_json(const CompatibleArrayType& val) : m_type(value_t::array)
     {
-      using std::begin;
-      using std::end;
-      m_value.array = create<array_t>(begin(val), end(val));
-      assert_invariant();
+        using std::begin;
+        using std::end;
+        m_value.array = create<array_t>(begin(val), end(val));
+        assert_invariant();
     }
 
 
@@ -1614,18 +1617,18 @@ class basic_json
     template <
         typename T,
         enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
-                        not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
-                        not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
-                        not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
+                    not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
+                    not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
+                    not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
 
-                        detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
-                            uncvref_t<T>, basic_json_t>>,
-                        detail::has_to_json<JSONSerializer, basic_json,
-                                            uncvref_t<T>>>::value,
-                    int> = 0>
-    basic_json(T &&val)
+                    detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
+                                            uncvref_t<T>, basic_json_t>>,
+                                        detail::has_to_json<JSONSerializer, basic_json,
+                                                uncvref_t<T>>>::value,
+                                                int> = 0 >
+                    basic_json(T && val)
     {
-      JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
+        JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
     }
 
     /*!
@@ -1828,11 +1831,12 @@ class basic_json
         typename CompatibleNumberIntegerType,
         enable_if_t<detail::is_compatible_integer_type<
                         number_integer_t, CompatibleNumberIntegerType>::value,
-                    int> = 0>
+                    int> = 0 >
     basic_json(const CompatibleNumberIntegerType val) noexcept
         : m_type(value_t::number_integer),
-          m_value(static_cast<number_integer_t>(val)) {
-      assert_invariant();
+          m_value(static_cast<number_integer_t>(val))
+    {
+        assert_invariant();
     }
 
     /*!
@@ -1885,11 +1889,12 @@ class basic_json
         typename CompatibleNumberUnsignedType,
         enable_if_t<detail::is_compatible_integer_type<
                         number_unsigned_t, CompatibleNumberUnsignedType>::value,
-                    int> = 0>
+                    int> = 0 >
     basic_json(const CompatibleNumberUnsignedType val) noexcept
         : m_type(value_t::number_unsigned),
-          m_value(static_cast<number_unsigned_t>(val)) {
-      assert_invariant();
+          m_value(static_cast<number_unsigned_t>(val))
+    {
+        assert_invariant();
     }
 
     /*!
@@ -2123,7 +2128,7 @@ class basic_json
     @since version 1.0.0
     */
     static basic_json array(std::initializer_list<basic_json> init =
-                                std::initializer_list<basic_json>())
+                            std::initializer_list<basic_json>())
     {
         return basic_json(init, false, value_t::array);
     }
@@ -2163,7 +2168,7 @@ class basic_json
     @since version 1.0.0
     */
     static basic_json object(std::initializer_list<basic_json> init =
-                                 std::initializer_list<basic_json>())
+                             std::initializer_list<basic_json>())
     {
         return basic_json(init, false, value_t::object);
     }
@@ -2504,7 +2509,7 @@ class basic_json
         std::is_nothrow_move_assignable<value_t>::value and
         std::is_nothrow_move_constructible<json_value>::value and
         std::is_nothrow_move_assignable<json_value>::value
-    )
+                                       )
     {
         // check that passed value is valid
         other.assert_invariant();
@@ -2521,59 +2526,65 @@ class basic_json
     template <typename T, enable_if_t<not detail::is_compatible_basic_json_type<
                                           uncvref_t<T>, basic_json_t>::value and
                                       detail::has_to_json<JSONSerializer, basic_json_t, uncvref_t<T>>::value>>
-    reference &operator=(T &&val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and
+    reference& operator=(T&& val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and
                                            std::is_nothrow_move_assignable<uncvref_t<T>>::value)
     {
-      static_assert(sizeof(T) == 0 , "");
-      // I'm not sure this a is good practice...
-      return *this = basic_json_t{std::forward<T>(val)};
+        static_assert(sizeof(T) == 0 , "");
+        // I'm not sure this a is good practice...
+        return *this = basic_json_t{std::forward<T>(val)};
     }
 
-        /*!
-        @brief destructor
+    /*!
+    @brief destructor
 
-        Destroys the JSON value and frees all allocated memory.
+    Destroys the JSON value and frees all allocated memory.
 
-        @complexity Linear.
+    @complexity Linear.
 
-        @requirement This function helps `basic_json` satisfying the
-        [Container](http://en.cppreference.com/w/cpp/concept/Container)
-        requirements:
-        - The complexity is linear.
-        - All stored elements are destroyed and all memory is freed.
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is linear.
+    - All stored elements are destroyed and all memory is freed.
 
-        @since version 1.0.0
-        */
-        ~basic_json() {
-      assert_invariant();
+    @since version 1.0.0
+    */
+    ~basic_json()
+    {
+        assert_invariant();
 
-      switch (m_type) {
-      case value_t::object: {
-        AllocatorType<object_t> alloc;
-        alloc.destroy(m_value.object);
-        alloc.deallocate(m_value.object, 1);
-        break;
-      }
+        switch (m_type)
+        {
+            case value_t::object:
+            {
+                AllocatorType<object_t> alloc;
+                alloc.destroy(m_value.object);
+                alloc.deallocate(m_value.object, 1);
+                break;
+            }
 
-      case value_t::array: {
-        AllocatorType<array_t> alloc;
-        alloc.destroy(m_value.array);
-        alloc.deallocate(m_value.array, 1);
-        break;
-      }
+            case value_t::array:
+            {
+                AllocatorType<array_t> alloc;
+                alloc.destroy(m_value.array);
+                alloc.deallocate(m_value.array, 1);
+                break;
+            }
 
-      case value_t::string: {
-        AllocatorType<string_t> alloc;
-        alloc.destroy(m_value.string);
-        alloc.deallocate(m_value.string, 1);
-        break;
-      }
+            case value_t::string:
+            {
+                AllocatorType<string_t> alloc;
+                alloc.destroy(m_value.string);
+                alloc.deallocate(m_value.string, 1);
+                break;
+            }
 
-      default: {
-        // all other types need no specific destructor
-        break;
-      }
-      }
+            default:
+            {
+                // all other types need no specific destructor
+                break;
+            }
+        }
     }
 
     /// @}
@@ -3025,15 +3036,15 @@ class basic_json
     /// get an array (explicit)
     template <
         class T,
-        typename std::enable_if<
+        typename std::enable_if <
             std::is_convertible<basic_json_t, typename T::value_type>::value and
-                not std::is_same<basic_json_t,
-                                 typename T::value_type>::value and
-                not std::is_arithmetic<T>::value and
-                not std::is_convertible<std::string, T>::value and
-                not detail::has_mapped_type<T>::value,
-            int>::type = 0>
-    T get_impl(T *) const
+            not std::is_same<basic_json_t,
+                             typename T::value_type>::value and
+            not std::is_arithmetic<T>::value and
+            not std::is_convertible<std::string, T>::value and
+            not detail::has_mapped_type<T>::value,
+            int >::type = 0 >
+    T get_impl(T*) const
     {
         if (is_array())
         {
@@ -3305,41 +3316,41 @@ class basic_json
     template <typename ValueType,
               enable_if_t<not std::is_pointer<ValueType>::value, int> = 0>
     auto get() const
-        -> decltype(this->get_impl(static_cast<ValueType *>(nullptr)))
+    -> decltype(this->get_impl(static_cast<ValueType*>(nullptr)))
     {
-      return get_impl(static_cast<ValueType *>(nullptr));
+        return get_impl(static_cast<ValueType*>(nullptr));
     }
 
     template <
         typename T,
         enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
-                        uncvref_t<T>, basic_json_t>>,
-                        detail::has_from_json<JSONSerializer, basic_json_t,
-                                              uncvref_t<T>>>::value,
-                    int> = 0>
-    auto get() const -> uncvref_t<T>
+                                            uncvref_t<T>, basic_json_t>>,
+                                        detail::has_from_json<JSONSerializer, basic_json_t,
+                                                uncvref_t<T>>>::value,
+                                                int> = 0 >
+                    auto get() const -> uncvref_t<T>
     {
-      using type = uncvref_t<T>;
-      static_assert(std::is_default_constructible<type>::value &&
-                        std::is_copy_constructible<type>::value,
-                    "user-defined types must be DefaultConstructible and "
-                    "CopyConstructible when used with get");
-      type ret;
-      JSONSerializer<type>::from_json(*this, ret);
-      return ret;
+        using type = uncvref_t<T>;
+        static_assert(std::is_default_constructible<type>::value&&
+        std::is_copy_constructible<type>::value,
+        "user-defined types must be DefaultConstructible and "
+        "CopyConstructible when used with get");
+        type ret;
+        JSONSerializer<type>::from_json(*this, ret);
+        return ret;
     }
 
     // This overload is chosen for non-default constructible user-defined-types
     template <
         typename T,
         enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
-                        uncvref_t<T>, basic_json_t>>,
-                        detail::has_non_default_from_json<JSONSerializer, basic_json_t,
-                                              uncvref_t<T>>>::value,
-                    short> = 0>
-    T get() const
+                                            uncvref_t<T>, basic_json_t>>,
+                                        detail::has_non_default_from_json<JSONSerializer, basic_json_t,
+                                                uncvref_t<T>>>::value,
+                                                short> = 0 >
+                    T get() const
     {
-      return JSONSerializer<T>::from_json(*this);
+        return JSONSerializer<T>::from_json(*this);
     }
 
     /*!
@@ -3421,8 +3432,8 @@ class basic_json
     {
         // get the type of the PointerType (remove pointer and const)
         using pointee_t = typename std::remove_const<typename
-                          std::remove_pointer<typename
-                          std::remove_const<PointerType>::type>::type>::type;
+                std::remove_pointer<typename
+                                    std::remove_const<PointerType>::type>::type>::type;
         // make sure the type matches the allowed types
         static_assert(
             std::is_same<object_t, pointee_t>::value
@@ -3449,8 +3460,8 @@ class basic_json
     {
         // get the type of the PointerType (remove pointer and const)
         using pointee_t = typename std::remove_const<typename
-                          std::remove_pointer<typename
-                          std::remove_const<PointerType>::type>::type>::type;
+                std::remove_pointer<typename
+                                    std::remove_const<PointerType>::type>::type>::type;
         // make sure the type matches the allowed types
         static_assert(
             std::is_same<object_t, pointee_t>::value
@@ -4503,14 +4514,14 @@ class basic_json
             case value_t::object:
             {
                 result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator,
-                                              last.m_it.object_iterator);
+                        last.m_it.object_iterator);
                 break;
             }
 
             case value_t::array:
             {
                 result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator,
-                                             last.m_it.array_iterator);
+                        last.m_it.array_iterator);
                 break;
             }
 
@@ -5727,9 +5738,9 @@ class basic_json
         // insert to array and return iterator
         iterator result(this);
         result.m_it.array_iterator = m_value.array->insert(
-                                         pos.m_it.array_iterator,
-                                         first.m_it.array_iterator,
-                                         last.m_it.array_iterator);
+            pos.m_it.array_iterator,
+            first.m_it.array_iterator,
+            last.m_it.array_iterator);
         return result;
     }
 
@@ -5799,7 +5810,7 @@ class basic_json
         std::is_nothrow_move_assignable<value_t>::value and
         std::is_nothrow_move_constructible<json_value>::value and
         std::is_nothrow_move_assignable<json_value>::value
-    )
+                                       )
     {
         std::swap(m_type, other.m_type);
         std::swap(m_value, other.m_value);
@@ -8399,13 +8410,13 @@ class basic_json
                         o << (pretty_print ? ",\n" : ",");
                     }
                     o << string_t(new_indent, ' ') << "\""
-                      << escape_string(i->first) << "\":"
-                      << (pretty_print ? " " : "");
-                    i->second.dump(o, pretty_print, indent_step, new_indent);
+                                                    << escape_string(i->first) << "\":"
+                                                            << (pretty_print ? " " : "");
+                                                            i->second.dump(o, pretty_print, indent_step, new_indent);
                 }
 
-                // decrease indentation
-                if (pretty_print)
+                                                        // decrease indentation
+                                                        if (pretty_print)
                 {
                     new_indent -= indent_step;
                     o << "\n";
@@ -8450,16 +8461,16 @@ class basic_json
                 }
 
                 o << string_t(new_indent, ' ') << "]";
-                return;
+                   return;
             }
 
-            case value_t::string:
+               case value_t::string:
             {
                 o << string_t("\"") << escape_string(*m_value.string) << "\"";
-                return;
+                                     return;
             }
 
-            case value_t::boolean:
+                                 case value_t::boolean:
             {
                 o << (m_value.boolean ? "true" : "false");
                 return;
@@ -8533,126 +8544,126 @@ class basic_json
     */
     class primitive_iterator_t
     {
-      public:
+        public:
 
         difference_type get_value() const noexcept
-        {
-          return m_it;
-        }
-        /// set iterator to a defined beginning
-        void set_begin() noexcept
-        {
-            m_it = begin_value;
-        }
+    {
+        return m_it;
+    }
+    /// set iterator to a defined beginning
+    void set_begin() noexcept
+    {
+        m_it = begin_value;
+    }
 
-        /// set iterator to a defined past the end
-        void set_end() noexcept
-        {
-            m_it = end_value;
-        }
+    /// set iterator to a defined past the end
+    void set_end() noexcept
+    {
+        m_it = end_value;
+    }
 
-        /// return whether the iterator can be dereferenced
-        constexpr bool is_begin() const noexcept
-        {
-            return (m_it == begin_value);
-        }
+    /// return whether the iterator can be dereferenced
+    constexpr bool is_begin() const noexcept
+    {
+        return (m_it == begin_value);
+    }
 
-        /// return whether the iterator is at end
-        constexpr bool is_end() const noexcept
-        {
-            return (m_it == end_value);
-        }
+    /// return whether the iterator is at end
+    constexpr bool is_end() const noexcept
+    {
+        return (m_it == end_value);
+    }
 
-        friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-        {
-          return lhs.m_it == rhs.m_it;
-        }
+    friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it == rhs.m_it;
+    }
 
-        friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-        {
-          return !(lhs == rhs);
-        }
+    friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return !(lhs == rhs);
+    }
 
-        friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-        {
-          return lhs.m_it < rhs.m_it;
-        }
+    friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it < rhs.m_it;
+    }
 
-        friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-        {
-          return lhs.m_it <= rhs.m_it;
-        }
+    friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it <= rhs.m_it;
+    }
 
-        friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-        {
-          return lhs.m_it > rhs.m_it;
-        }
+    friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it > rhs.m_it;
+    }
 
-        friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-        {
-          return lhs.m_it >= rhs.m_it;
-        }
+    friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it >= rhs.m_it;
+    }
 
-        primitive_iterator_t operator+(difference_type i)
-        {
-            auto result = *this;
-            result += i;
-            return result;
-        }
+    primitive_iterator_t operator+(difference_type i)
+    {
+        auto result = *this;
+        result += i;
+        return result;
+    }
 
-        friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-        {
-          return lhs.m_it - rhs.m_it;
-        }
+    friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it - rhs.m_it;
+    }
 
-        friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it)
-        {
-          return os << it.m_it;
-        }
+    friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it)
+    {
+        return os << it.m_it;
+    }
 
-        primitive_iterator_t& operator++()
-        {
-          ++m_it;
-          return *this;
-        }
+    primitive_iterator_t& operator++()
+    {
+        ++m_it;
+        return *this;
+    }
 
-        primitive_iterator_t& operator++(int)
-        {
-          m_it++;
-          return *this;
-        }
+    primitive_iterator_t& operator++(int)
+    {
+        m_it++;
+        return *this;
+    }
 
-        primitive_iterator_t& operator--()
-        {
-          --m_it;
-          return *this;
-        }
+    primitive_iterator_t& operator--()
+    {
+        --m_it;
+        return *this;
+    }
 
-        primitive_iterator_t& operator--(int)
-        {
-          m_it--;
-          return *this;
-        }
+    primitive_iterator_t& operator--(int)
+    {
+        m_it--;
+        return *this;
+    }
 
-        primitive_iterator_t& operator+=(difference_type n)
-        {
-          m_it += n;
-          return *this;
-        }
+    primitive_iterator_t& operator+=(difference_type n)
+    {
+        m_it += n;
+        return *this;
+    }
 
-        primitive_iterator_t& operator-=(difference_type n)
-        {
-          m_it -= n;
-          return *this;
-        }
+    primitive_iterator_t& operator-=(difference_type n)
+    {
+        m_it -= n;
+        return *this;
+    }
 
-      private:
-        static constexpr difference_type begin_value = 0;
-        static constexpr difference_type end_value = begin_value + 1;
+    private:
+    static constexpr difference_type begin_value = 0;
+    static constexpr difference_type end_value = begin_value + 1;
 
-        /// iterator as signed integer type
-        difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
-    };
+    /// iterator as signed integer type
+    difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
+                                              };
 
     /*!
     @brief an iterator value
@@ -8672,104 +8683,104 @@ class basic_json
 
         /// create an uninitialized internal_iterator
         internal_iterator() noexcept
-            : object_iterator(), array_iterator(), primitive_iterator()
-        {}
+        : object_iterator(), array_iterator(), primitive_iterator()
+    {}
     };
 
     /// proxy class for the iterator_wrapper functions
     template<typename IteratorType>
     class iteration_proxy
     {
-      private:
+        private:
         /// helper class for iteration
         class iteration_proxy_internal
         {
-          private:
+            private:
             /// the iterator
             IteratorType anchor;
             /// an index for arrays (used to create key names)
             size_t array_index = 0;
 
-          public:
+            public:
             explicit iteration_proxy_internal(IteratorType it) noexcept
-                : anchor(it)
-            {}
+            : anchor(it)
+    {}
 
-            /// dereference operator (needed for range-based for)
-            iteration_proxy_internal& operator*()
+    /// dereference operator (needed for range-based for)
+    iteration_proxy_internal& operator*()
+    {
+        return *this;
+    }
+
+    /// increment operator (needed for range-based for)
+    iteration_proxy_internal& operator++()
+    {
+        ++anchor;
+        ++array_index;
+
+        return *this;
+    }
+
+    /// inequality operator (needed for range-based for)
+    bool operator!= (const iteration_proxy_internal& o) const
+    {
+        return anchor != o.anchor;
+    }
+
+    /// return key of the iterator
+    typename basic_json::string_t key() const
+    {
+        assert(anchor.m_object != nullptr);
+
+        switch (anchor.m_object->type())
+        {
+            // use integer array index as key
+            case value_t::array:
             {
-                return *this;
+                return std::to_string(array_index);
             }
 
-            /// increment operator (needed for range-based for)
-            iteration_proxy_internal& operator++()
+            // use key from the object
+            case value_t::object:
             {
-                ++anchor;
-                ++array_index;
-
-                return *this;
+                return anchor.key();
             }
 
-            /// inequality operator (needed for range-based for)
-            bool operator!= (const iteration_proxy_internal& o) const
+            // use an empty key for all primitive types
+            default:
             {
-                return anchor != o.anchor;
+                return "";
             }
+        }
+    }
 
-            /// return key of the iterator
-            typename basic_json::string_t key() const
-            {
-                assert(anchor.m_object != nullptr);
-
-                switch (anchor.m_object->type())
-                {
-                    // use integer array index as key
-                    case value_t::array:
-                    {
-                        return std::to_string(array_index);
-                    }
-
-                    // use key from the object
-                    case value_t::object:
-                    {
-                        return anchor.key();
-                    }
-
-                    // use an empty key for all primitive types
-                    default:
-                    {
-                        return "";
-                    }
-                }
-            }
-
-            /// return value of the iterator
-            typename IteratorType::reference value() const
-            {
-                return anchor.value();
-            }
+    /// return value of the iterator
+    typename IteratorType::reference value() const
+    {
+        return anchor.value();
+    }
         };
 
-        /// the container to iterate
-        typename IteratorType::reference container;
+    /// the container to iterate
+    typename IteratorType::reference container;
 
-      public:
-        /// construct iteration proxy from a container
-        explicit iteration_proxy(typename IteratorType::reference cont)
-            : container(cont)
-        {}
+    public:
+    /// construct iteration proxy from a container
+    explicit iteration_proxy(typename IteratorType::reference cont)
+    : container(cont)
+    {}
 
-        /// return iterator begin (needed for range-based for)
-        iteration_proxy_internal begin() noexcept
-        {
-            return iteration_proxy_internal(container.begin());
-        }
+    /// return iterator begin (needed for range-based for)
+    iteration_proxy_internal begin() noexcept
+    {
+        return iteration_proxy_internal(container.begin());
+    }
 
-        /// return iterator end (needed for range-based for)
-        iteration_proxy_internal end() noexcept
-        {
-            return iteration_proxy_internal(container.end());
-        }
+    /// return iterator end (needed for range-based for)
+    iteration_proxy_internal end() noexcept
+    {
+        return iteration_proxy_internal(container.end());
+    }
     };
 
   public:
@@ -8793,7 +8804,7 @@ class basic_json
     @since version 1.0.0, simplified in version 2.0.9
     */
     template<typename U>
-    class iter_impl : public std::iterator<std::random_access_iterator_tag, U>
+  class iter_impl : public std::iterator<std::random_access_iterator_tag, U>
     {
         /// allow basic_json to access private members
         friend class basic_json;
@@ -8803,19 +8814,19 @@ class basic_json
                       or std::is_same<U, const basic_json>::value,
                       "iter_impl only accepts (const) basic_json");
 
-      public:
+        public:
         /// the type of the values when the iterator is dereferenced
         using value_type = typename basic_json::value_type;
         /// a type to represent differences between iterators
         using difference_type = typename basic_json::difference_type;
         /// defines a pointer to the type iterated over (value_type)
         using pointer = typename std::conditional<std::is_const<U>::value,
-              typename basic_json::const_pointer,
-              typename basic_json::pointer>::type;
+                typename basic_json::const_pointer,
+                typename basic_json::pointer>::type;
         /// defines a reference to the type iterated over (value_type)
         using reference = typename std::conditional<std::is_const<U>::value,
-              typename basic_json::const_reference,
-              typename basic_json::reference>::type;
+                typename basic_json::const_reference,
+                typename basic_json::reference>::type;
         /// the category of the iterator
         using iterator_category = std::bidirectional_iterator_tag;
 
@@ -8829,566 +8840,566 @@ class basic_json
         @post The iterator is initialized; i.e. `m_object != nullptr`.
         */
         explicit iter_impl(pointer object) noexcept
-            : m_object(object)
+        : m_object(object)
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
         {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
-                    m_it.object_iterator = typename object_t::iterator();
-                    break;
-                }
-
-                case basic_json::value_t::array:
-                {
-                    m_it.array_iterator = typename array_t::iterator();
-                    break;
-                }
-
-                default:
-                {
-                    m_it.primitive_iterator = primitive_iterator_t();
-                    break;
-                }
-            }
-        }
-
-        /*
-        Use operator `const_iterator` instead of `const_iterator(const iterator&
-        other) noexcept` to avoid two class definitions for @ref iterator and
-        @ref const_iterator.
-
-        This function is only called if this class is an @ref iterator. If this
-        class is a @ref const_iterator this function is not called.
-        */
-        operator const_iterator() const
-        {
-            const_iterator ret;
-
-            if (m_object)
-            {
-                ret.m_object = m_object;
-                ret.m_it = m_it;
+                m_it.object_iterator = typename object_t::iterator();
+                break;
             }
 
-            return ret;
-        }
-
-        /*!
-        @brief copy constructor
-        @param[in] other  iterator to copy from
-        @note It is not checked whether @a other is initialized.
-        */
-        iter_impl(const iter_impl& other) noexcept
-            : m_object(other.m_object), m_it(other.m_it)
-        {}
-
-        /*!
-        @brief copy assignment
-        @param[in,out] other  iterator to copy from
-        @note It is not checked whether @a other is initialized.
-        */
-        iter_impl& operator=(iter_impl other) noexcept(
-            std::is_nothrow_move_constructible<pointer>::value and
-            std::is_nothrow_move_assignable<pointer>::value and
-            std::is_nothrow_move_constructible<internal_iterator>::value and
-            std::is_nothrow_move_assignable<internal_iterator>::value
-        )
-        {
-            std::swap(m_object, other.m_object);
-            std::swap(m_it, other.m_it);
-            return *this;
-        }
-
-      private:
-        /*!
-        @brief set the iterator to the first value
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        void set_begin() noexcept
-        {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::array:
             {
-                case basic_json::value_t::object:
-                {
-                    m_it.object_iterator = m_object->m_value.object->begin();
-                    break;
-                }
+                m_it.array_iterator = typename array_t::iterator();
+                break;
+            }
 
-                case basic_json::value_t::array:
-                {
-                    m_it.array_iterator = m_object->m_value.array->begin();
-                    break;
-                }
-
-                case basic_json::value_t::null:
-                {
-                    // set to end so begin()==end() is true: null is empty
-                    m_it.primitive_iterator.set_end();
-                    break;
-                }
-
-                default:
-                {
-                    m_it.primitive_iterator.set_begin();
-                    break;
-                }
+            default:
+            {
+                m_it.primitive_iterator = primitive_iterator_t();
+                break;
             }
         }
+    }
 
-        /*!
-        @brief set the iterator past the last value
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        void set_end() noexcept
+    /*
+    Use operator `const_iterator` instead of `const_iterator(const iterator&
+    other) noexcept` to avoid two class definitions for @ref iterator and
+    @ref const_iterator.
+
+    This function is only called if this class is an @ref iterator. If this
+    class is a @ref const_iterator this function is not called.
+    */
+    operator const_iterator() const
+    {
+        const_iterator ret;
+
+        if (m_object)
         {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
-            {
-                case basic_json::value_t::object:
-                {
-                    m_it.object_iterator = m_object->m_value.object->end();
-                    break;
-                }
-
-                case basic_json::value_t::array:
-                {
-                    m_it.array_iterator = m_object->m_value.array->end();
-                    break;
-                }
-
-                default:
-                {
-                    m_it.primitive_iterator.set_end();
-                    break;
-                }
-            }
+            ret.m_object = m_object;
+            ret.m_it = m_it;
         }
 
-      public:
-        /*!
-        @brief return a reference to the value pointed to by the iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        reference operator*() const
+        return ret;
+    }
+
+    /*!
+    @brief copy constructor
+    @param[in] other  iterator to copy from
+    @note It is not checked whether @a other is initialized.
+    */
+    iter_impl(const iter_impl& other) noexcept
+    : m_object(other.m_object), m_it(other.m_it)
+    {}
+
+    /*!
+    @brief copy assignment
+    @param[in,out] other  iterator to copy from
+    @note It is not checked whether @a other is initialized.
+    */
+    iter_impl& operator=(iter_impl other) noexcept(
+        std::is_nothrow_move_constructible<pointer>::value and
+        std::is_nothrow_move_assignable<pointer>::value and
+        std::is_nothrow_move_constructible<internal_iterator>::value and
+        std::is_nothrow_move_assignable<internal_iterator>::value
+                                       )
+    {
+        std::swap(m_object, other.m_object);
+        std::swap(m_it, other.m_it);
+        return *this;
+    }
+
+    private:
+    /*!
+    @brief set the iterator to the first value
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    void set_begin() noexcept
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
         {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
-                    assert(m_it.object_iterator != m_object->m_value.object->end());
-                    return m_it.object_iterator->second;
-                }
+                m_it.object_iterator = m_object->m_value.object->begin();
+                break;
+            }
 
-                case basic_json::value_t::array:
-                {
-                    assert(m_it.array_iterator != m_object->m_value.array->end());
-                    return *m_it.array_iterator;
-                }
+            case basic_json::value_t::array:
+            {
+                m_it.array_iterator = m_object->m_value.array->begin();
+                break;
+            }
 
-                case basic_json::value_t::null:
-                {
+            case basic_json::value_t::null:
+            {
+                // set to end so begin()==end() is true: null is empty
+                m_it.primitive_iterator.set_end();
+                break;
+            }
+
+            default:
+            {
+                m_it.primitive_iterator.set_begin();
+                break;
+            }
+        }
+    }
+
+    /*!
+    @brief set the iterator past the last value
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    void set_end() noexcept
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
+            {
+                m_it.object_iterator = m_object->m_value.object->end();
+                break;
+            }
+
+            case basic_json::value_t::array:
+            {
+                m_it.array_iterator = m_object->m_value.array->end();
+                break;
+            }
+
+            default:
+            {
+                m_it.primitive_iterator.set_end();
+                break;
+            }
+        }
+    }
+
+    public:
+    /*!
+    @brief return a reference to the value pointed to by the iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    reference operator*() const
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
+            {
+                assert(m_it.object_iterator != m_object->m_value.object->end());
+                return m_it.object_iterator->second;
+            }
+
+            case basic_json::value_t::array:
+            {
+                assert(m_it.array_iterator != m_object->m_value.array->end());
+                return *m_it.array_iterator;
+            }
+
+            case basic_json::value_t::null:
+            {
                     JSON_THROW(std::out_of_range("cannot get value"));
-                }
+            }
 
-                default:
+            default:
+            {
+                if (m_it.primitive_iterator.is_begin())
                 {
-                    if (m_it.primitive_iterator.is_begin())
-                    {
-                        return *m_object;
-                    }
+                    return *m_object;
+                }
 
                     JSON_THROW(std::out_of_range("cannot get value"));
-                }
             }
         }
+    }
 
-        /*!
-        @brief dereference the iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        pointer operator->() const
+    /*!
+    @brief dereference the iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    pointer operator->() const
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
         {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
-                    assert(m_it.object_iterator != m_object->m_value.object->end());
-                    return &(m_it.object_iterator->second);
-                }
+                assert(m_it.object_iterator != m_object->m_value.object->end());
+                return &(m_it.object_iterator->second);
+            }
 
-                case basic_json::value_t::array:
-                {
-                    assert(m_it.array_iterator != m_object->m_value.array->end());
-                    return &*m_it.array_iterator;
-                }
+            case basic_json::value_t::array:
+            {
+                assert(m_it.array_iterator != m_object->m_value.array->end());
+                return &*m_it.array_iterator;
+            }
 
-                default:
+            default:
+            {
+                if (m_it.primitive_iterator.is_begin())
                 {
-                    if (m_it.primitive_iterator.is_begin())
-                    {
-                        return m_object;
-                    }
+                    return m_object;
+                }
 
                     JSON_THROW(std::out_of_range("cannot get value"));
-                }
+            }
+        }
+    }
+
+    /*!
+    @brief post-increment (it++)
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl operator++(int)
+    {
+        auto result = *this;
+        ++(*this);
+        return result;
+    }
+
+    /*!
+    @brief pre-increment (++it)
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl& operator++()
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
+            {
+                std::advance(m_it.object_iterator, 1);
+                break;
+            }
+
+            case basic_json::value_t::array:
+            {
+                std::advance(m_it.array_iterator, 1);
+                break;
+            }
+
+            default:
+            {
+                ++m_it.primitive_iterator;
+                break;
             }
         }
 
-        /*!
-        @brief post-increment (it++)
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl operator++(int)
-        {
-            auto result = *this;
-            ++(*this);
-            return result;
-        }
+        return *this;
+    }
 
-        /*!
-        @brief pre-increment (++it)
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl& operator++()
-        {
-            assert(m_object != nullptr);
+    /*!
+    @brief post-decrement (it--)
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl operator--(int)
+    {
+        auto result = *this;
+        --(*this);
+        return result;
+    }
 
-            switch (m_object->m_type)
+    /*!
+    @brief pre-decrement (--it)
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl& operator--()
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
-                    std::advance(m_it.object_iterator, 1);
-                    break;
-                }
-
-                case basic_json::value_t::array:
-                {
-                    std::advance(m_it.array_iterator, 1);
-                    break;
-                }
-
-                default:
-                {
-                    ++m_it.primitive_iterator;
-                    break;
-                }
+                std::advance(m_it.object_iterator, -1);
+                break;
             }
 
-            return *this;
-        }
-
-        /*!
-        @brief post-decrement (it--)
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl operator--(int)
-        {
-            auto result = *this;
-            --(*this);
-            return result;
-        }
-
-        /*!
-        @brief pre-decrement (--it)
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl& operator--()
-        {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::array:
             {
-                case basic_json::value_t::object:
-                {
-                    std::advance(m_it.object_iterator, -1);
-                    break;
-                }
-
-                case basic_json::value_t::array:
-                {
-                    std::advance(m_it.array_iterator, -1);
-                    break;
-                }
-
-                default:
-                {
-                    --m_it.primitive_iterator;
-                    break;
-                }
+                std::advance(m_it.array_iterator, -1);
+                break;
             }
 
-            return *this;
+            default:
+            {
+                --m_it.primitive_iterator;
+                break;
+            }
         }
 
-        /*!
-        @brief  comparison: equal
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator==(const iter_impl& other) const
+        return *this;
+    }
+
+    /*!
+    @brief  comparison: equal
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator==(const iter_impl& other) const
+    {
+        // if objects are not the same, the comparison is undefined
+        if (m_object != other.m_object)
         {
-            // if objects are not the same, the comparison is undefined
-            if (m_object != other.m_object)
-            {
                 JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
-            }
-
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
-            {
-                case basic_json::value_t::object:
-                {
-                    return (m_it.object_iterator == other.m_it.object_iterator);
-                }
-
-                case basic_json::value_t::array:
-                {
-                    return (m_it.array_iterator == other.m_it.array_iterator);
-                }
-
-                default:
-                {
-                    return (m_it.primitive_iterator == other.m_it.primitive_iterator);
-                }
-            }
         }
 
-        /*!
-        @brief  comparison: not equal
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator!=(const iter_impl& other) const
-        {
-            return not operator==(other);
-        }
+        assert(m_object != nullptr);
 
-        /*!
-        @brief  comparison: smaller
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator<(const iter_impl& other) const
+        switch (m_object->m_type)
         {
-            // if objects are not the same, the comparison is undefined
-            if (m_object != other.m_object)
+            case basic_json::value_t::object:
             {
+                return (m_it.object_iterator == other.m_it.object_iterator);
+            }
+
+            case basic_json::value_t::array:
+            {
+                return (m_it.array_iterator == other.m_it.array_iterator);
+            }
+
+            default:
+            {
+                return (m_it.primitive_iterator == other.m_it.primitive_iterator);
+            }
+        }
+    }
+
+    /*!
+    @brief  comparison: not equal
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator!=(const iter_impl& other) const
+    {
+        return not operator==(other);
+    }
+
+    /*!
+    @brief  comparison: smaller
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator<(const iter_impl& other) const
+    {
+        // if objects are not the same, the comparison is undefined
+        if (m_object != other.m_object)
+        {
                 JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
-            }
+        }
 
-            assert(m_object != nullptr);
+        assert(m_object != nullptr);
 
-            switch (m_object->m_type)
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
                     JSON_THROW(std::domain_error("cannot compare order of object iterators"));
-                }
+            }
 
-                case basic_json::value_t::array:
-                {
-                    return (m_it.array_iterator < other.m_it.array_iterator);
-                }
+            case basic_json::value_t::array:
+            {
+                return (m_it.array_iterator < other.m_it.array_iterator);
+            }
 
-                default:
-                {
-                    return (m_it.primitive_iterator < other.m_it.primitive_iterator);
-                }
+            default:
+            {
+                return (m_it.primitive_iterator < other.m_it.primitive_iterator);
             }
         }
+    }
 
-        /*!
-        @brief  comparison: less than or equal
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator<=(const iter_impl& other) const
+    /*!
+    @brief  comparison: less than or equal
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator<=(const iter_impl& other) const
+    {
+        return not other.operator < (*this);
+    }
+
+    /*!
+    @brief  comparison: greater than
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator>(const iter_impl& other) const
+    {
+        return not operator<=(other);
+    }
+
+    /*!
+    @brief  comparison: greater than or equal
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator>=(const iter_impl& other) const
+    {
+        return not operator<(other);
+    }
+
+    /*!
+    @brief  add to iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl& operator+=(difference_type i)
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
         {
-            return not other.operator < (*this);
-        }
-
-        /*!
-        @brief  comparison: greater than
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator>(const iter_impl& other) const
-        {
-            return not operator<=(other);
-        }
-
-        /*!
-        @brief  comparison: greater than or equal
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator>=(const iter_impl& other) const
-        {
-            return not operator<(other);
-        }
-
-        /*!
-        @brief  add to iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl& operator+=(difference_type i)
-        {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
                     JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
-                }
-
-                case basic_json::value_t::array:
-                {
-                    std::advance(m_it.array_iterator, i);
-                    break;
-                }
-
-                default:
-                {
-                    m_it.primitive_iterator += i;
-                    break;
-                }
             }
 
-            return *this;
-        }
-
-        /*!
-        @brief  subtract from iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl& operator-=(difference_type i)
-        {
-            return operator+=(-i);
-        }
-
-        /*!
-        @brief  add to iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl operator+(difference_type i)
-        {
-            auto result = *this;
-            result += i;
-            return result;
-        }
-
-        /*!
-        @brief  subtract from iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl operator-(difference_type i)
-        {
-            auto result = *this;
-            result -= i;
-            return result;
-        }
-
-        /*!
-        @brief  return difference
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        difference_type operator-(const iter_impl& other) const
-        {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::array:
+            {
+                std::advance(m_it.array_iterator, i);
+                break;
+            }
+
+            default:
+            {
+                m_it.primitive_iterator += i;
+                break;
+            }
+        }
+
+        return *this;
+    }
+
+    /*!
+    @brief  subtract from iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl& operator-=(difference_type i)
+    {
+        return operator+=(-i);
+    }
+
+    /*!
+    @brief  add to iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl operator+(difference_type i)
+    {
+        auto result = *this;
+        result += i;
+        return result;
+    }
+
+    /*!
+    @brief  subtract from iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl operator-(difference_type i)
+    {
+        auto result = *this;
+        result -= i;
+        return result;
+    }
+
+    /*!
+    @brief  return difference
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    difference_type operator-(const iter_impl& other) const
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
                     JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
-                }
+            }
 
-                case basic_json::value_t::array:
-                {
-                    return m_it.array_iterator - other.m_it.array_iterator;
-                }
+            case basic_json::value_t::array:
+            {
+                return m_it.array_iterator - other.m_it.array_iterator;
+            }
 
-                default:
-                {
-                    return m_it.primitive_iterator - other.m_it.primitive_iterator;
-                }
+            default:
+            {
+                return m_it.primitive_iterator - other.m_it.primitive_iterator;
             }
         }
+    }
 
-        /*!
-        @brief  access to successor
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        reference operator[](difference_type n) const
+    /*!
+    @brief  access to successor
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    reference operator[](difference_type n) const
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
         {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
                     JSON_THROW(std::domain_error("cannot use operator[] for object iterators"));
-                }
+            }
 
-                case basic_json::value_t::array:
-                {
-                    return *std::next(m_it.array_iterator, n);
-                }
+            case basic_json::value_t::array:
+            {
+                return *std::next(m_it.array_iterator, n);
+            }
 
-                case basic_json::value_t::null:
-                {
+            case basic_json::value_t::null:
+            {
                     JSON_THROW(std::out_of_range("cannot get value"));
-                }
+            }
 
-                default:
+            default:
+            {
+                if (m_it.primitive_iterator.get_value() == -n)
                 {
-                    if (m_it.primitive_iterator.get_value() == -n)
-                    {
-                        return *m_object;
-                    }
+                    return *m_object;
+                }
 
                     JSON_THROW(std::out_of_range("cannot get value"));
-                }
             }
         }
+    }
 
-        /*!
-        @brief  return the key of an object iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        typename object_t::key_type key() const
+    /*!
+    @brief  return the key of an object iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    typename object_t::key_type key() const
+    {
+        assert(m_object != nullptr);
+
+        if (m_object->is_object())
         {
-            assert(m_object != nullptr);
-
-            if (m_object->is_object())
-            {
-                return m_it.object_iterator->first;
-            }
+            return m_it.object_iterator->first;
+        }
 
             JSON_THROW(std::domain_error("cannot use key() for non-object iterators"));
-        }
+    }
 
-        /*!
-        @brief  return the value of an iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        reference value() const
-        {
-            return operator*();
-        }
+    /*!
+    @brief  return the value of an iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    reference value() const
+    {
+        return operator*();
+    }
 
-      private:
-        /// associated JSON instance
-        pointer m_object = nullptr;
-        /// the actual iterator of the associated instance
-        internal_iterator m_it = internal_iterator();
-    };
+    private:
+    /// associated JSON instance
+    pointer m_object = nullptr;
+    /// the actual iterator of the associated instance
+    internal_iterator m_it = internal_iterator();
+                       };
 
     /*!
     @brief a template for a reverse iterator class
@@ -9408,9 +9419,9 @@ class basic_json
     @since version 1.0.0
     */
     template<typename Base>
-    class json_reverse_iterator : public std::reverse_iterator<Base>
+  class json_reverse_iterator : public std::reverse_iterator<Base>
     {
-      public:
+        public:
         /// shortcut to the reverse iterator adaptor
         using base_iterator = std::reverse_iterator<Base>;
         /// the reference type for the pointed-to element
@@ -9418,89 +9429,89 @@ class basic_json
 
         /// create reverse iterator from iterator
         json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept
-            : base_iterator(it)
-        {}
+        : base_iterator(it)
+    {}
 
-        /// create reverse iterator from base class
-        json_reverse_iterator(const base_iterator& it) noexcept
-            : base_iterator(it)
-        {}
+    /// create reverse iterator from base class
+    json_reverse_iterator(const base_iterator& it) noexcept
+    : base_iterator(it)
+    {}
 
-        /// post-increment (it++)
-        json_reverse_iterator operator++(int)
-        {
-            return base_iterator::operator++(1);
-        }
+    /// post-increment (it++)
+    json_reverse_iterator operator++(int)
+    {
+        return base_iterator::operator++(1);
+    }
 
-        /// pre-increment (++it)
-        json_reverse_iterator& operator++()
-        {
-            base_iterator::operator++();
-            return *this;
-        }
+    /// pre-increment (++it)
+    json_reverse_iterator& operator++()
+    {
+        base_iterator::operator++();
+        return *this;
+    }
 
-        /// post-decrement (it--)
-        json_reverse_iterator operator--(int)
-        {
-            return base_iterator::operator--(1);
-        }
+    /// post-decrement (it--)
+    json_reverse_iterator operator--(int)
+    {
+        return base_iterator::operator--(1);
+    }
 
-        /// pre-decrement (--it)
-        json_reverse_iterator& operator--()
-        {
-            base_iterator::operator--();
-            return *this;
-        }
+    /// pre-decrement (--it)
+    json_reverse_iterator& operator--()
+    {
+        base_iterator::operator--();
+        return *this;
+    }
 
-        /// add to iterator
-        json_reverse_iterator& operator+=(difference_type i)
-        {
-            base_iterator::operator+=(i);
-            return *this;
-        }
+    /// add to iterator
+    json_reverse_iterator& operator+=(difference_type i)
+    {
+        base_iterator::operator+=(i);
+        return *this;
+    }
 
-        /// add to iterator
-        json_reverse_iterator operator+(difference_type i) const
-        {
-            auto result = *this;
-            result += i;
-            return result;
-        }
+    /// add to iterator
+    json_reverse_iterator operator+(difference_type i) const
+    {
+        auto result = *this;
+        result += i;
+        return result;
+    }
 
-        /// subtract from iterator
-        json_reverse_iterator operator-(difference_type i) const
-        {
-            auto result = *this;
-            result -= i;
-            return result;
-        }
+    /// subtract from iterator
+    json_reverse_iterator operator-(difference_type i) const
+    {
+        auto result = *this;
+        result -= i;
+        return result;
+    }
 
-        /// return difference
-        difference_type operator-(const json_reverse_iterator& other) const
-        {
-            return this->base() - other.base();
-        }
+    /// return difference
+    difference_type operator-(const json_reverse_iterator& other) const
+    {
+        return this->base() - other.base();
+    }
 
-        /// access to successor
-        reference operator[](difference_type n) const
-        {
-            return *(this->operator+(n));
-        }
+    /// access to successor
+    reference operator[](difference_type n) const
+    {
+        return *(this->operator+(n));
+    }
 
-        /// return the key of an object iterator
-        typename object_t::key_type key() const
-        {
-            auto it = --this->base();
-            return it.key();
-        }
+    /// return the key of an object iterator
+    typename object_t::key_type key() const
+    {
+        auto it = --this->base();
+        return it.key();
+    }
 
-        /// return the value of an iterator
-        reference value() const
-        {
-            auto it = --this->base();
-            return it.operator * ();
-        }
-    };
+    /// return the value of an iterator
+    reference value() const
+    {
+        auto it = --this->base();
+        return it.operator * ();
+    }
+                                                   };
 
 
   private:
@@ -9517,656 +9528,666 @@ class basic_json
     */
     class lexer
     {
-      public:
+        public:
         /// token types for the parser
         enum class token_type
-        {
-            uninitialized,   ///< indicating the scanner is uninitialized
-            literal_true,    ///< the `true` literal
-            literal_false,   ///< the `false` literal
-            literal_null,    ///< the `null` literal
-            value_string,    ///< a string -- use get_string() for actual value
-            value_number,    ///< a number -- use get_number() for actual value
-            begin_array,     ///< the character for array begin `[`
-            begin_object,    ///< the character for object begin `{`
-            end_array,       ///< the character for array end `]`
-            end_object,      ///< the character for object end `}`
-            name_separator,  ///< the name separator `:`
-            value_separator, ///< the value separator `,`
-            parse_error,     ///< indicating a parse error
-            end_of_input     ///< indicating the end of the input buffer
-        };
+    {
+        uninitialized,   ///< indicating the scanner is uninitialized
+        literal_true,    ///< the `true` literal
+        literal_false,   ///< the `false` literal
+        literal_null,    ///< the `null` literal
+        value_string,    ///< a string -- use get_string() for actual value
+        value_number,    ///< a number -- use get_number() for actual value
+        begin_array,     ///< the character for array begin `[`
+        begin_object,    ///< the character for object begin `{`
+        end_array,       ///< the character for array end `]`
+        end_object,      ///< the character for object end `}`
+        name_separator,  ///< the name separator `:`
+        value_separator, ///< the value separator `,`
+        parse_error,     ///< indicating a parse error
+        end_of_input     ///< indicating the end of the input buffer
+    };
 
-        /// the char type to use in the lexer
-        using lexer_char_t = unsigned char;
+    /// the char type to use in the lexer
+    using lexer_char_t = unsigned char;
 
-        /// a lexer from a buffer with given length
-        lexer(const lexer_char_t* buff, const size_t len) noexcept
-            : m_content(buff)
-        {
-            assert(m_content != nullptr);
-            m_start = m_cursor = m_content;
-            m_limit = m_content + len;
-        }
+    /// a lexer from a buffer with given length
+    lexer(const lexer_char_t* buff, const size_t len) noexcept
+    : m_content(buff)
+    {
+        assert(m_content != nullptr);
+        m_start = m_cursor = m_content;
+        m_limit = m_content + len;
+    }
 
-        /// a lexer from an input stream
-        explicit lexer(std::istream& s)
-            : m_stream(&s), m_line_buffer()
+    /// a lexer from an input stream
+    explicit lexer(std::istream& s)
+    : m_stream(&s), m_line_buffer()
+    {
+        // immediately abort if stream is erroneous
+        if (s.fail())
         {
-            // immediately abort if stream is erroneous
-            if (s.fail())
-            {
                 JSON_THROW(std::invalid_argument("stream error"));
-            }
-
-            // fill buffer
-            fill_line_buffer();
-
-            // skip UTF-8 byte-order mark
-            if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF")
-            {
-                m_line_buffer[0] = ' ';
-                m_line_buffer[1] = ' ';
-                m_line_buffer[2] = ' ';
-            }
         }
 
-        // switch off unwanted functions (due to pointer members)
-        lexer() = delete;
-        lexer(const lexer&) = delete;
-        lexer operator=(const lexer&) = delete;
+        // fill buffer
+        fill_line_buffer();
 
-        /*!
-        @brief create a string from one or two Unicode code points
-
-        There are two cases: (1) @a codepoint1 is in the Basic Multilingual
-        Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2)
-        @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to
-        represent a code point above U+FFFF.
-
-        @param[in] codepoint1  the code point (can be high surrogate)
-        @param[in] codepoint2  the code point (can be low surrogate or 0)
-
-        @return string representation of the code point; the length of the
-        result string is between 1 and 4 characters.
-
-        @throw std::out_of_range if code point is > 0x10ffff; example: `"code
-        points above 0x10FFFF are invalid"`
-        @throw std::invalid_argument if the low surrogate is invalid; example:
-        `""missing or wrong low surrogate""`
-
-        @complexity Constant.
-
-        @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code>
-        */
-        static string_t to_unicode(const std::size_t codepoint1,
-                                   const std::size_t codepoint2 = 0)
+        // skip UTF-8 byte-order mark
+        if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF")
         {
-            // calculate the code point from the given code points
-            std::size_t codepoint = codepoint1;
+            m_line_buffer[0] = ' ';
+            m_line_buffer[1] = ' ';
+            m_line_buffer[2] = ' ';
+        }
+    }
 
-            // check if codepoint1 is a high surrogate
-            if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
-            {
-                // check if codepoint2 is a low surrogate
-                if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
-                {
-                    codepoint =
-                        // high surrogate occupies the most significant 22 bits
-                        (codepoint1 << 10)
-                        // low surrogate occupies the least significant 15 bits
-                        + codepoint2
-                        // there is still the 0xD800, 0xDC00 and 0x10000 noise
-                        // in the result so we have to subtract with:
-                        // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00
-                        - 0x35FDC00;
-                }
-                else
-                {
-                    JSON_THROW(std::invalid_argument("missing or wrong low surrogate"));
-                }
-            }
+    // switch off unwanted functions (due to pointer members)
+    lexer() = delete;
+    lexer(const lexer&) = delete;
+    lexer operator=(const lexer&) = delete;
 
-            string_t result;
+    /*!
+    @brief create a string from one or two Unicode code points
 
-            if (codepoint < 0x80)
+    There are two cases: (1) @a codepoint1 is in the Basic Multilingual
+    Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2)
+    @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to
+    represent a code point above U+FFFF.
+
+    @param[in] codepoint1  the code point (can be high surrogate)
+    @param[in] codepoint2  the code point (can be low surrogate or 0)
+
+    @return string representation of the code point; the length of the
+    result string is between 1 and 4 characters.
+
+    @throw std::out_of_range if code point is > 0x10ffff; example: `"code
+    points above 0x10FFFF are invalid"`
+    @throw std::invalid_argument if the low surrogate is invalid; example:
+    `""missing or wrong low surrogate""`
+
+    @complexity Constant.
+
+    @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code>
+    */
+    static string_t to_unicode(const std::size_t codepoint1,
+                               const std::size_t codepoint2 = 0)
+    {
+        // calculate the code point from the given code points
+        std::size_t codepoint = codepoint1;
+
+        // check if codepoint1 is a high surrogate
+        if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
+        {
+            // check if codepoint2 is a low surrogate
+            if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
             {
-                // 1-byte characters: 0xxxxxxx (ASCII)
-                result.append(1, static_cast<typename string_t::value_type>(codepoint));
-            }
-            else if (codepoint <= 0x7ff)
-            {
-                // 2-byte characters: 110xxxxx 10xxxxxx
-                result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-            }
-            else if (codepoint <= 0xffff)
-            {
-                // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx
-                result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-            }
-            else if (codepoint <= 0x10ffff)
-            {
-                // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
-                result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+                codepoint =
+                // high surrogate occupies the most significant 22 bits
+                (codepoint1 << 10)
+                 // low surrogate occupies the least significant 15 bits
+                 + codepoint2
+                 // there is still the 0xD800, 0xDC00 and 0x10000 noise
+                 // in the result so we have to subtract with:
+                 // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00
+                 - 0x35FDC00;
             }
             else
             {
+                    JSON_THROW(std::invalid_argument("missing or wrong low surrogate"));
+            }
+        }
+
+        string_t result;
+
+        if (codepoint < 0x80)
+        {
+            // 1-byte characters: 0xxxxxxx (ASCII)
+            result.append(1, static_cast<typename string_t::value_type>(codepoint));
+        }
+        else if (codepoint <= 0x7ff)
+        {
+            // 2-byte characters: 110xxxxx 10xxxxxx
+            result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+        }
+        else if (codepoint <= 0xffff)
+        {
+            // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx
+            result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+        }
+        else if (codepoint <= 0x10ffff)
+        {
+            // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+            result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+        }
+        else
+        {
                 JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid"));
-            }
-
-            return result;
         }
 
-        /// return name of values of type token_type (only used for errors)
-        static std::string token_type_name(const token_type t)
+        return result;
+    }
+
+    /// return name of values of type token_type (only used for errors)
+    static std::string token_type_name(const token_type t)
+    {
+        switch (t)
         {
-            switch (t)
+            case token_type::uninitialized:
+                return "<uninitialized>";
+            case token_type::literal_true:
+                return "true literal";
+            case token_type::literal_false:
+                return "false literal";
+            case token_type::literal_null:
+                return "null literal";
+            case token_type::value_string:
+                return "string literal";
+            case token_type::value_number:
+                return "number literal";
+            case token_type::begin_array:
+                return "'['";
+            case token_type::begin_object:
+                return "'{'";
+            case token_type::end_array:
+                return "']'";
+            case token_type::end_object:
+                return "'}'";
+            case token_type::name_separator:
+                return "':'";
+            case token_type::value_separator:
+                return "','";
+            case token_type::parse_error:
+                return "<parse error>";
+            case token_type::end_of_input:
+                return "end of input";
+            default:
             {
-                case token_type::uninitialized:
-                    return "<uninitialized>";
-                case token_type::literal_true:
-                    return "true literal";
-                case token_type::literal_false:
-                    return "false literal";
-                case token_type::literal_null:
-                    return "null literal";
-                case token_type::value_string:
-                    return "string literal";
-                case token_type::value_number:
-                    return "number literal";
-                case token_type::begin_array:
-                    return "'['";
-                case token_type::begin_object:
-                    return "'{'";
-                case token_type::end_array:
-                    return "']'";
-                case token_type::end_object:
-                    return "'}'";
-                case token_type::name_separator:
-                    return "':'";
-                case token_type::value_separator:
-                    return "','";
-                case token_type::parse_error:
-                    return "<parse error>";
-                case token_type::end_of_input:
-                    return "end of input";
-                default:
+                // catch non-enum values
+                return "unknown token"; // LCOV_EXCL_LINE
+            }
+        }
+    }
+
+    /*!
+    This function implements a scanner for JSON. It is specified using
+    regular expressions that try to follow RFC 7159 as close as possible.
+    These regular expressions are then translated into a minimized
+    deterministic finite automaton (DFA) by the tool
+    [re2c](http://re2c.org). As a result, the translated code for this
+    function consists of a large block of code with `goto` jumps.
+
+    @return the class of the next token read from the buffer
+
+    @complexity Linear in the length of the input.\n
+
+    Proposition: The loop below will always terminate for finite input.\n
+
+    Proof (by contradiction): Assume a finite input. To loop forever, the
+    loop must never hit code with a `break` statement. The only code
+    snippets without a `break` statement are the continue statements for
+    whitespace and byte-order-marks. To loop forever, the input must be an
+    infinite sequence of whitespace or byte-order-marks. This contradicts
+    the assumption of finite input, q.e.d.
+    */
+    token_type scan()
+    {
+        while (true)
+        {
+            // pointer for backtracking information
+            m_marker = nullptr;
+
+            // remember the begin of the token
+            m_start = m_cursor;
+            assert(m_start != nullptr);
+
+
+            {
+                lexer_char_t yych;
+                unsigned int yyaccept = 0;
+                static const unsigned char yybm[] =
                 {
-                    // catch non-enum values
-                    return "unknown token"; // LCOV_EXCL_LINE
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,  32,  32,   0,   0,  32,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    160, 128,   0, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    192, 192, 192, 192, 192, 192, 192, 192,
+                    192, 192, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128,   0, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                };
+                if ((m_limit - m_cursor) < 5)
+                {
+                    fill_line_buffer(5);    // LCOV_EXCL_LINE
                 }
-            }
-        }
-
-        /*!
-        This function implements a scanner for JSON. It is specified using
-        regular expressions that try to follow RFC 7159 as close as possible.
-        These regular expressions are then translated into a minimized
-        deterministic finite automaton (DFA) by the tool
-        [re2c](http://re2c.org). As a result, the translated code for this
-        function consists of a large block of code with `goto` jumps.
-
-        @return the class of the next token read from the buffer
-
-        @complexity Linear in the length of the input.\n
-
-        Proposition: The loop below will always terminate for finite input.\n
-
-        Proof (by contradiction): Assume a finite input. To loop forever, the
-        loop must never hit code with a `break` statement. The only code
-        snippets without a `break` statement are the continue statements for
-        whitespace and byte-order-marks. To loop forever, the input must be an
-        infinite sequence of whitespace or byte-order-marks. This contradicts
-        the assumption of finite input, q.e.d.
-        */
-        token_type scan()
-        {
-            while (true)
-            {
-                // pointer for backtracking information
-                m_marker = nullptr;
-
-                // remember the begin of the token
-                m_start = m_cursor;
-                assert(m_start != nullptr);
-
-
+                yych = *m_cursor;
+                if (yybm[0 + yych] & 32)
                 {
-                    lexer_char_t yych;
-                    unsigned int yyaccept = 0;
-                    static const unsigned char yybm[] =
+                    goto basic_json_parser_6;
+                }
+                if (yych <= '[')
+                {
+                    if (yych <= '-')
                     {
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,  32,  32,   0,   0,  32,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        160, 128,   0, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        192, 192, 192, 192, 192, 192, 192, 192,
-                        192, 192, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128,   0, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                    };
-                    if ((m_limit - m_cursor) < 5)
-                    {
-                        fill_line_buffer(5);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yybm[0 + yych] & 32)
-                    {
-                        goto basic_json_parser_6;
-                    }
-                    if (yych <= '[')
-                    {
-                        if (yych <= '-')
+                        if (yych <= '"')
                         {
-                            if (yych <= '"')
+                            if (yych <= 0x00)
                             {
-                                if (yych <= 0x00)
-                                {
-                                    goto basic_json_parser_2;
-                                }
-                                if (yych <= '!')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                goto basic_json_parser_9;
+                                goto basic_json_parser_2;
                             }
-                            else
+                            if (yych <= '!')
                             {
-                                if (yych <= '+')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                if (yych <= ',')
-                                {
-                                    goto basic_json_parser_10;
-                                }
-                                goto basic_json_parser_12;
+                                goto basic_json_parser_4;
                             }
+                            goto basic_json_parser_9;
                         }
                         else
                         {
-                            if (yych <= '9')
+                            if (yych <= '+')
                             {
-                                if (yych <= '/')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                if (yych <= '0')
-                                {
-                                    goto basic_json_parser_13;
-                                }
-                                goto basic_json_parser_15;
+                                goto basic_json_parser_4;
                             }
-                            else
+                            if (yych <= ',')
                             {
-                                if (yych <= ':')
-                                {
-                                    goto basic_json_parser_17;
-                                }
-                                if (yych <= 'Z')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                goto basic_json_parser_19;
+                                goto basic_json_parser_10;
                             }
+                            goto basic_json_parser_12;
                         }
                     }
                     else
                     {
-                        if (yych <= 'n')
+                        if (yych <= '9')
                         {
-                            if (yych <= 'e')
+                            if (yych <= '/')
                             {
-                                if (yych == ']')
-                                {
-                                    goto basic_json_parser_21;
-                                }
                                 goto basic_json_parser_4;
                             }
-                            else
+                            if (yych <= '0')
                             {
-                                if (yych <= 'f')
-                                {
-                                    goto basic_json_parser_23;
-                                }
-                                if (yych <= 'm')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                goto basic_json_parser_24;
+                                goto basic_json_parser_13;
                             }
+                            goto basic_json_parser_15;
                         }
                         else
                         {
-                            if (yych <= 'z')
+                            if (yych <= ':')
+                            {
+                                goto basic_json_parser_17;
+                            }
+                            if (yych <= 'Z')
                             {
-                                if (yych == 't')
-                                {
-                                    goto basic_json_parser_25;
-                                }
-                                goto basic_json_parser_4;
-                            }
-                            else
-                            {
-                                if (yych <= '{')
-                                {
-                                    goto basic_json_parser_26;
-                                }
-                                if (yych == '}')
-                                {
-                                    goto basic_json_parser_28;
-                                }
                                 goto basic_json_parser_4;
                             }
+                            goto basic_json_parser_19;
                         }
                     }
+                }
+                else
+                {
+                    if (yych <= 'n')
+                    {
+                        if (yych <= 'e')
+                        {
+                            if (yych == ']')
+                            {
+                                goto basic_json_parser_21;
+                            }
+                            goto basic_json_parser_4;
+                        }
+                        else
+                        {
+                            if (yych <= 'f')
+                            {
+                                goto basic_json_parser_23;
+                            }
+                            if (yych <= 'm')
+                            {
+                                goto basic_json_parser_4;
+                            }
+                            goto basic_json_parser_24;
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'z')
+                        {
+                            if (yych == 't')
+                            {
+                                goto basic_json_parser_25;
+                            }
+                            goto basic_json_parser_4;
+                        }
+                        else
+                        {
+                            if (yych <= '{')
+                            {
+                                goto basic_json_parser_26;
+                            }
+                            if (yych == '}')
+                            {
+                                goto basic_json_parser_28;
+                            }
+                            goto basic_json_parser_4;
+                        }
+                    }
+                }
 basic_json_parser_2:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::end_of_input;
-                        break;
-                    }
+                ++m_cursor;
+                {
+                    last_token_type = token_type::end_of_input;
+                    break;
+                }
 basic_json_parser_4:
-                    ++m_cursor;
+                ++m_cursor;
 basic_json_parser_5:
-                    {
-                        last_token_type = token_type::parse_error;
-                        break;
-                    }
+                {
+                    last_token_type = token_type::parse_error;
+                    break;
+                }
 basic_json_parser_6:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yybm[0 + yych] & 32)
-                    {
-                        goto basic_json_parser_6;
-                    }
-                    {
-                        continue;
-                    }
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yybm[0 + yych] & 32)
+                {
+                    goto basic_json_parser_6;
+                }
+                {
+                    continue;
+                }
 basic_json_parser_9:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych <= 0x1F)
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_31;
-                    }
-                    if (yych <= 0xC1)
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    if (yych <= 0xF4)
-                    {
-                        goto basic_json_parser_31;
-                    }
+                yyaccept = 0;
+                yych = *(m_marker = ++m_cursor);
+                if (yych <= 0x1F)
+                {
                     goto basic_json_parser_5;
+                }
+                if (yych <= 0x7F)
+                {
+                    goto basic_json_parser_31;
+                }
+                if (yych <= 0xC1)
+                {
+                    goto basic_json_parser_5;
+                }
+                if (yych <= 0xF4)
+                {
+                    goto basic_json_parser_31;
+                }
+                goto basic_json_parser_5;
 basic_json_parser_10:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::value_separator;
-                        break;
-                    }
+                ++m_cursor;
+                {
+                    last_token_type = token_type::value_separator;
+                    break;
+                }
 basic_json_parser_12:
-                    yych = *++m_cursor;
+                yych = *++m_cursor;
+                if (yych <= '/')
+                {
+                    goto basic_json_parser_5;
+                }
+                if (yych <= '0')
+                {
+                    goto basic_json_parser_13;
+                }
+                if (yych <= '9')
+                {
+                    goto basic_json_parser_15;
+                }
+                goto basic_json_parser_5;
+basic_json_parser_13:
+                yyaccept = 1;
+                yych = *(m_marker = ++m_cursor);
+                if (yych <= 'D')
+                {
+                    if (yych == '.')
+                    {
+                        goto basic_json_parser_43;
+                    }
+                }
+                else
+                {
+                    if (yych <= 'E')
+                    {
+                        goto basic_json_parser_44;
+                    }
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_44;
+                    }
+                }
+basic_json_parser_14:
+                {
+                    last_token_type = token_type::value_number;
+                    break;
+                }
+basic_json_parser_15:
+                yyaccept = 1;
+                m_marker = ++m_cursor;
+                if ((m_limit - m_cursor) < 3)
+                {
+                    fill_line_buffer(3);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yybm[0 + yych] & 64)
+                {
+                    goto basic_json_parser_15;
+                }
+                if (yych <= 'D')
+                {
+                    if (yych == '.')
+                    {
+                        goto basic_json_parser_43;
+                    }
+                    goto basic_json_parser_14;
+                }
+                else
+                {
+                    if (yych <= 'E')
+                    {
+                        goto basic_json_parser_44;
+                    }
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_44;
+                    }
+                    goto basic_json_parser_14;
+                }
+basic_json_parser_17:
+                ++m_cursor;
+                {
+                    last_token_type = token_type::name_separator;
+                    break;
+                }
+basic_json_parser_19:
+                ++m_cursor;
+                {
+                    last_token_type = token_type::begin_array;
+                    break;
+                }
+basic_json_parser_21:
+                ++m_cursor;
+                {
+                    last_token_type = token_type::end_array;
+                    break;
+                }
+basic_json_parser_23:
+                yyaccept = 0;
+                yych = *(m_marker = ++m_cursor);
+                if (yych == 'a')
+                {
+                    goto basic_json_parser_45;
+                }
+                goto basic_json_parser_5;
+basic_json_parser_24:
+                yyaccept = 0;
+                yych = *(m_marker = ++m_cursor);
+                if (yych == 'u')
+                {
+                    goto basic_json_parser_46;
+                }
+                goto basic_json_parser_5;
+basic_json_parser_25:
+                yyaccept = 0;
+                yych = *(m_marker = ++m_cursor);
+                if (yych == 'r')
+                {
+                    goto basic_json_parser_47;
+                }
+                goto basic_json_parser_5;
+basic_json_parser_26:
+                ++m_cursor;
+                {
+                    last_token_type = token_type::begin_object;
+                    break;
+                }
+basic_json_parser_28:
+                ++m_cursor;
+                {
+                    last_token_type = token_type::end_object;
+                    break;
+                }
+basic_json_parser_30:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+basic_json_parser_31:
+                if (yybm[0 + yych] & 128)
+                {
+                    goto basic_json_parser_30;
+                }
+                if (yych <= 0xE0)
+                {
+                    if (yych <= '\\')
+                    {
+                        if (yych <= 0x1F)
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '"')
+                        {
+                            goto basic_json_parser_33;
+                        }
+                        goto basic_json_parser_35;
+                    }
+                    else
+                    {
+                        if (yych <= 0xC1)
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 0xDF)
+                        {
+                            goto basic_json_parser_36;
+                        }
+                        goto basic_json_parser_37;
+                    }
+                }
+                else
+                {
+                    if (yych <= 0xEF)
+                    {
+                        if (yych == 0xED)
+                        {
+                            goto basic_json_parser_39;
+                        }
+                        goto basic_json_parser_38;
+                    }
+                    else
+                    {
+                        if (yych <= 0xF0)
+                        {
+                            goto basic_json_parser_40;
+                        }
+                        if (yych <= 0xF3)
+                        {
+                            goto basic_json_parser_41;
+                        }
+                        if (yych <= 0xF4)
+                        {
+                            goto basic_json_parser_42;
+                        }
+                    }
+                }
+basic_json_parser_32:
+                m_cursor = m_marker;
+                if (yyaccept == 0)
+                {
+                    goto basic_json_parser_5;
+                }
+                else
+                {
+                    goto basic_json_parser_14;
+                }
+basic_json_parser_33:
+                ++m_cursor;
+                {
+                    last_token_type = token_type::value_string;
+                    break;
+                }
+basic_json_parser_35:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= 'e')
+                {
                     if (yych <= '/')
                     {
-                        goto basic_json_parser_5;
-                    }
-                    if (yych <= '0')
-                    {
-                        goto basic_json_parser_13;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_15;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_13:
-                    yyaccept = 1;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych <= 'D')
-                    {
-                        if (yych == '.')
+                        if (yych == '"')
                         {
-                            goto basic_json_parser_43;
+                            goto basic_json_parser_30;
                         }
-                    }
-                    else
-                    {
-                        if (yych <= 'E')
+                        if (yych <= '.')
                         {
-                            goto basic_json_parser_44;
+                            goto basic_json_parser_32;
                         }
-                        if (yych == 'e')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                    }
-basic_json_parser_14:
-                    {
-                        last_token_type = token_type::value_number;
-                        break;
-                    }
-basic_json_parser_15:
-                    yyaccept = 1;
-                    m_marker = ++m_cursor;
-                    if ((m_limit - m_cursor) < 3)
-                    {
-                        fill_line_buffer(3);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yybm[0 + yych] & 64)
-                    {
-                        goto basic_json_parser_15;
-                    }
-                    if (yych <= 'D')
-                    {
-                        if (yych == '.')
-                        {
-                            goto basic_json_parser_43;
-                        }
-                        goto basic_json_parser_14;
-                    }
-                    else
-                    {
-                        if (yych <= 'E')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        if (yych == 'e')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        goto basic_json_parser_14;
-                    }
-basic_json_parser_17:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::name_separator;
-                        break;
-                    }
-basic_json_parser_19:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::begin_array;
-                        break;
-                    }
-basic_json_parser_21:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::end_array;
-                        break;
-                    }
-basic_json_parser_23:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych == 'a')
-                    {
-                        goto basic_json_parser_45;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_24:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych == 'u')
-                    {
-                        goto basic_json_parser_46;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_25:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych == 'r')
-                    {
-                        goto basic_json_parser_47;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_26:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::begin_object;
-                        break;
-                    }
-basic_json_parser_28:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::end_object;
-                        break;
-                    }
-basic_json_parser_30:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-basic_json_parser_31:
-                    if (yybm[0 + yych] & 128)
-                    {
                         goto basic_json_parser_30;
                     }
-                    if (yych <= 0xE0)
+                    else
                     {
                         if (yych <= '\\')
                         {
-                            if (yych <= 0x1F)
-                            {
-                                goto basic_json_parser_32;
-                            }
-                            if (yych <= '"')
-                            {
-                                goto basic_json_parser_33;
-                            }
-                            goto basic_json_parser_35;
-                        }
-                        else
-                        {
-                            if (yych <= 0xC1)
-                            {
-                                goto basic_json_parser_32;
-                            }
-                            if (yych <= 0xDF)
-                            {
-                                goto basic_json_parser_36;
-                            }
-                            goto basic_json_parser_37;
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= 0xEF)
-                        {
-                            if (yych == 0xED)
-                            {
-                                goto basic_json_parser_39;
-                            }
-                            goto basic_json_parser_38;
-                        }
-                        else
-                        {
-                            if (yych <= 0xF0)
-                            {
-                                goto basic_json_parser_40;
-                            }
-                            if (yych <= 0xF3)
-                            {
-                                goto basic_json_parser_41;
-                            }
-                            if (yych <= 0xF4)
-                            {
-                                goto basic_json_parser_42;
-                            }
-                        }
-                    }
-basic_json_parser_32:
-                    m_cursor = m_marker;
-                    if (yyaccept == 0)
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    else
-                    {
-                        goto basic_json_parser_14;
-                    }
-basic_json_parser_33:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::value_string;
-                        break;
-                    }
-basic_json_parser_35:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 'e')
-                    {
-                        if (yych <= '/')
-                        {
-                            if (yych == '"')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            if (yych <= '.')
+                            if (yych <= '[')
                             {
                                 goto basic_json_parser_32;
                             }
@@ -10174,33 +10195,33 @@ basic_json_parser_35:
                         }
                         else
                         {
-                            if (yych <= '\\')
+                            if (yych == 'b')
                             {
-                                if (yych <= '[')
-                                {
-                                    goto basic_json_parser_32;
-                                }
                                 goto basic_json_parser_30;
                             }
-                            else
-                            {
-                                if (yych == 'b')
-                                {
-                                    goto basic_json_parser_30;
-                                }
-                                goto basic_json_parser_32;
-                            }
+                            goto basic_json_parser_32;
                         }
                     }
+                }
+                else
+                {
+                    if (yych <= 'q')
+                    {
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        if (yych == 'n')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        goto basic_json_parser_32;
+                    }
                     else
                     {
-                        if (yych <= 'q')
+                        if (yych <= 's')
                         {
-                            if (yych <= 'f')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            if (yych == 'n')
+                            if (yych <= 'r')
                             {
                                 goto basic_json_parser_30;
                             }
@@ -10208,920 +10229,910 @@ basic_json_parser_35:
                         }
                         else
                         {
-                            if (yych <= 's')
+                            if (yych <= 't')
                             {
-                                if (yych <= 'r')
-                                {
-                                    goto basic_json_parser_30;
-                                }
-                                goto basic_json_parser_32;
+                                goto basic_json_parser_30;
                             }
-                            else
+                            if (yych <= 'u')
                             {
-                                if (yych <= 't')
-                                {
-                                    goto basic_json_parser_30;
-                                }
-                                if (yych <= 'u')
-                                {
-                                    goto basic_json_parser_48;
-                                }
-                                goto basic_json_parser_32;
+                                goto basic_json_parser_48;
                             }
+                            goto basic_json_parser_32;
                         }
                     }
+                }
 basic_json_parser_36:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_30;
-                    }
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= 0x7F)
+                {
                     goto basic_json_parser_32;
+                }
+                if (yych <= 0xBF)
+                {
+                    goto basic_json_parser_30;
+                }
+                goto basic_json_parser_32;
 basic_json_parser_37:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x9F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_36;
-                    }
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= 0x9F)
+                {
                     goto basic_json_parser_32;
+                }
+                if (yych <= 0xBF)
+                {
+                    goto basic_json_parser_36;
+                }
+                goto basic_json_parser_32;
 basic_json_parser_38:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_36;
-                    }
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= 0x7F)
+                {
                     goto basic_json_parser_32;
+                }
+                if (yych <= 0xBF)
+                {
+                    goto basic_json_parser_36;
+                }
+                goto basic_json_parser_32;
 basic_json_parser_39:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0x9F)
-                    {
-                        goto basic_json_parser_36;
-                    }
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= 0x7F)
+                {
                     goto basic_json_parser_32;
+                }
+                if (yych <= 0x9F)
+                {
+                    goto basic_json_parser_36;
+                }
+                goto basic_json_parser_32;
 basic_json_parser_40:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x8F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_38;
-                    }
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= 0x8F)
+                {
                     goto basic_json_parser_32;
+                }
+                if (yych <= 0xBF)
+                {
+                    goto basic_json_parser_38;
+                }
+                goto basic_json_parser_32;
 basic_json_parser_41:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_38;
-                    }
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= 0x7F)
+                {
                     goto basic_json_parser_32;
+                }
+                if (yych <= 0xBF)
+                {
+                    goto basic_json_parser_38;
+                }
+                goto basic_json_parser_32;
 basic_json_parser_42:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0x8F)
-                    {
-                        goto basic_json_parser_38;
-                    }
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= 0x7F)
+                {
                     goto basic_json_parser_32;
+                }
+                if (yych <= 0x8F)
+                {
+                    goto basic_json_parser_38;
+                }
+                goto basic_json_parser_32;
 basic_json_parser_43:
-                    yych = *++m_cursor;
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_49;
-                    }
+                yych = *++m_cursor;
+                if (yych <= '/')
+                {
                     goto basic_json_parser_32;
+                }
+                if (yych <= '9')
+                {
+                    goto basic_json_parser_49;
+                }
+                goto basic_json_parser_32;
 basic_json_parser_44:
-                    yych = *++m_cursor;
-                    if (yych <= ',')
+                yych = *++m_cursor;
+                if (yych <= ',')
+                {
+                    if (yych == '+')
                     {
-                        if (yych == '+')
-                        {
-                            goto basic_json_parser_51;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= '-')
-                        {
-                            goto basic_json_parser_51;
-                        }
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_52;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_45:
-                    yych = *++m_cursor;
-                    if (yych == 'l')
-                    {
-                        goto basic_json_parser_54;
+                        goto basic_json_parser_51;
                     }
                     goto basic_json_parser_32;
-basic_json_parser_46:
-                    yych = *++m_cursor;
-                    if (yych == 'l')
+                }
+                else
+                {
+                    if (yych <= '-')
                     {
-                        goto basic_json_parser_55;
+                        goto basic_json_parser_51;
                     }
-                    goto basic_json_parser_32;
-basic_json_parser_47:
-                    yych = *++m_cursor;
-                    if (yych == 'u')
-                    {
-                        goto basic_json_parser_56;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_48:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_57;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_57;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_57;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_49:
-                    yyaccept = 1;
-                    m_marker = ++m_cursor;
-                    if ((m_limit - m_cursor) < 3)
-                    {
-                        fill_line_buffer(3);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 'D')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_14;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_49;
-                        }
-                        goto basic_json_parser_14;
-                    }
-                    else
-                    {
-                        if (yych <= 'E')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        if (yych == 'e')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        goto basic_json_parser_14;
-                    }
-basic_json_parser_51:
-                    yych = *++m_cursor;
                     if (yych <= '/')
                     {
                         goto basic_json_parser_32;
                     }
-                    if (yych >= ':')
-                    {
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_52:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_14;
-                    }
                     if (yych <= '9')
                     {
                         goto basic_json_parser_52;
                     }
-                    goto basic_json_parser_14;
-basic_json_parser_54:
-                    yych = *++m_cursor;
-                    if (yych == 's')
-                    {
-                        goto basic_json_parser_58;
-                    }
                     goto basic_json_parser_32;
-basic_json_parser_55:
-                    yych = *++m_cursor;
-                    if (yych == 'l')
-                    {
-                        goto basic_json_parser_59;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_56:
-                    yych = *++m_cursor;
-                    if (yych == 'e')
-                    {
-                        goto basic_json_parser_61;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_57:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_63;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_63;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_63;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_58:
-                    yych = *++m_cursor;
-                    if (yych == 'e')
-                    {
-                        goto basic_json_parser_64;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_59:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::literal_null;
-                        break;
-                    }
-basic_json_parser_61:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::literal_true;
-                        break;
-                    }
-basic_json_parser_63:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_66;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_66;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_66;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_64:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::literal_false;
-                        break;
-                    }
-basic_json_parser_66:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        goto basic_json_parser_32;
-                    }
                 }
-
-            }
-
-            return last_token_type;
-        }
-
-        /*!
-        @brief append data from the stream to the line buffer
-
-        This function is called by the scan() function when the end of the
-        buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be
-        incremented without leaving the limits of the line buffer. Note re2c
-        decides when to call this function.
-
-        If the lexer reads from contiguous storage, there is no trailing null
-        byte. Therefore, this function must make sure to add these padding
-        null bytes.
-
-        If the lexer reads from an input stream, this function reads the next
-        line of the input.
-
-        @pre
-            p p p p p p u u u u u x . . . . . .
-            ^           ^       ^   ^
-            m_content   m_start |   m_limit
-                                m_cursor
-
-        @post
-            u u u u u x x x x x x x . . . . . .
-            ^       ^               ^
-            |       m_cursor        m_limit
-            m_start
-            m_content
-        */
-        void fill_line_buffer(size_t n = 0)
-        {
-            // if line buffer is used, m_content points to its data
-            assert(m_line_buffer.empty()
-                   or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()));
-
-            // if line buffer is used, m_limit is set past the end of its data
-            assert(m_line_buffer.empty()
-                   or m_limit == m_content + m_line_buffer.size());
-
-            // pointer relationships
-            assert(m_content <= m_start);
-            assert(m_start <= m_cursor);
-            assert(m_cursor <= m_limit);
-            assert(m_marker == nullptr or m_marker  <= m_limit);
-
-            // number of processed characters (p)
-            const auto num_processed_chars = static_cast<size_t>(m_start - m_content);
-            // offset for m_marker wrt. to m_start
-            const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start;
-            // number of unprocessed characters (u)
-            const auto offset_cursor = m_cursor - m_start;
-
-            // no stream is used or end of file is reached
-            if (m_stream == nullptr or m_stream->eof())
-            {
-                // m_start may or may not be pointing into m_line_buffer at
-                // this point. We trust the standand library to do the right
-                // thing. See http://stackoverflow.com/q/28142011/266378
-                m_line_buffer.assign(m_start, m_limit);
-
-                // append n characters to make sure that there is sufficient
-                // space between m_cursor and m_limit
-                m_line_buffer.append(1, '\x00');
-                if (n > 0)
+basic_json_parser_45:
+                yych = *++m_cursor;
+                if (yych == 'l')
                 {
-                    m_line_buffer.append(n - 1, '\x01');
+                    goto basic_json_parser_54;
                 }
-            }
-            else
-            {
-                // delete processed characters from line buffer
-                m_line_buffer.erase(0, num_processed_chars);
-                // read next line from input stream
-                m_line_buffer_tmp.clear();
-                std::getline(*m_stream, m_line_buffer_tmp, '\n');
-
-                // add line with newline symbol to the line buffer
-                m_line_buffer += m_line_buffer_tmp;
-                m_line_buffer.push_back('\n');
-            }
-
-            // set pointers
-            m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data());
-            assert(m_content != nullptr);
-            m_start  = m_content;
-            m_marker = m_start + offset_marker;
-            m_cursor = m_start + offset_cursor;
-            m_limit  = m_start + m_line_buffer.size();
-        }
-
-        /// return string representation of last read token
-        string_t get_token_string() const
-        {
-            assert(m_start != nullptr);
-            return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
-                            static_cast<size_t>(m_cursor - m_start));
-        }
-
-        /*!
-        @brief return string value for string tokens
-
-        The function iterates the characters between the opening and closing
-        quotes of the string value. The complete string is the range
-        [m_start,m_cursor). Consequently, we iterate from m_start+1 to
-        m_cursor-1.
-
-        We differentiate two cases:
-
-        1. Escaped characters. In this case, a new character is constructed
-           according to the nature of the escape. Some escapes create new
-           characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied
-           as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape
-           `"\\uxxxx"` need special care. In this case, to_unicode takes care
-           of the construction of the values.
-        2. Unescaped characters are copied as is.
-
-        @pre `m_cursor - m_start >= 2`, meaning the length of the last token
-        is at least 2 bytes which is trivially true for any string (which
-        consists of at least two quotes).
-
-            " c1 c2 c3 ... "
-            ^                ^
-            m_start          m_cursor
-
-        @complexity Linear in the length of the string.\n
-
-        Lemma: The loop body will always terminate.\n
-
-        Proof (by contradiction): Assume the loop body does not terminate. As
-        the loop body does not contain another loop, one of the called
-        functions must never return. The called functions are `std::strtoul`
-        and to_unicode. Neither function can loop forever, so the loop body
-        will never loop forever which contradicts the assumption that the loop
-        body does not terminate, q.e.d.\n
-
-        Lemma: The loop condition for the for loop is eventually false.\n
-
-        Proof (by contradiction): Assume the loop does not terminate. Due to
-        the above lemma, this can only be due to a tautological loop
-        condition; that is, the loop condition i < m_cursor - 1 must always be
-        true. Let x be the change of i for any loop iteration. Then
-        m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This
-        can be rephrased to m_cursor - m_start - 2 > x. With the
-        precondition, we x <= 0, meaning that the loop condition holds
-        indefinitly if i is always decreased. However, observe that the value
-        of i is strictly increasing with each iteration, as it is incremented
-        by 1 in the iteration expression and never decremented inside the loop
-        body. Hence, the loop condition will eventually be false which
-        contradicts the assumption that the loop condition is a tautology,
-        q.e.d.
-
-        @return string value of current token without opening and closing
-        quotes
-        @throw std::out_of_range if to_unicode fails
-        */
-        string_t get_string() const
-        {
-            assert(m_cursor - m_start >= 2);
-
-            string_t result;
-            result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
-
-            // iterate the result between the quotes
-            for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
-            {
-                // find next escape character
-                auto e = std::find(i, m_cursor - 1, '\\');
-                if (e != i)
+                goto basic_json_parser_32;
+basic_json_parser_46:
+                yych = *++m_cursor;
+                if (yych == 'l')
                 {
-                    // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705
-                    for (auto k = i; k < e; k++)
+                    goto basic_json_parser_55;
+                }
+                goto basic_json_parser_32;
+basic_json_parser_47:
+                yych = *++m_cursor;
+                if (yych == 'u')
+                {
+                    goto basic_json_parser_56;
+                }
+                goto basic_json_parser_32;
+basic_json_parser_48:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= '@')
+                {
+                    if (yych <= '/')
                     {
-                        result.push_back(static_cast<typename string_t::value_type>(*k));
+                        goto basic_json_parser_32;
                     }
-                    i = e - 1; // -1 because of ++i
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_57;
+                    }
+                    goto basic_json_parser_32;
                 }
                 else
                 {
-                    // processing escaped character
-                    // read next character
-                    ++i;
-
-                    switch (*i)
+                    if (yych <= 'F')
                     {
-                        // the default escapes
-                        case 't':
-                        {
-                            result += "\t";
-                            break;
-                        }
-                        case 'b':
-                        {
-                            result += "\b";
-                            break;
-                        }
-                        case 'f':
-                        {
-                            result += "\f";
-                            break;
-                        }
-                        case 'n':
-                        {
-                            result += "\n";
-                            break;
-                        }
-                        case 'r':
-                        {
-                            result += "\r";
-                            break;
-                        }
-                        case '\\':
-                        {
-                            result += "\\";
-                            break;
-                        }
-                        case '/':
-                        {
-                            result += "/";
-                            break;
-                        }
-                        case '"':
-                        {
-                            result += "\"";
-                            break;
-                        }
-
-                        // unicode
-                        case 'u':
-                        {
-                            // get code xxxx from uxxxx
-                            auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
-                                                          4).c_str(), nullptr, 16);
-
-                            // check if codepoint is a high surrogate
-                            if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
-                            {
-                                // make sure there is a subsequent unicode
-                                if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
-                                {
-                                    JSON_THROW(std::invalid_argument("missing low surrogate"));
-                                }
-
-                                // get code yyyy from uxxxx\uyyyy
-                                auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
-                                                               (i + 7), 4).c_str(), nullptr, 16);
-                                result += to_unicode(codepoint, codepoint2);
-                                // skip the next 10 characters (xxxx\uyyyy)
-                                i += 10;
-                            }
-                            else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF)
-                            {
-                                // we found a lone low surrogate
-                                JSON_THROW(std::invalid_argument("missing high surrogate"));
-                            }
-                            else
-                            {
-                                // add unicode character(s)
-                                result += to_unicode(codepoint);
-                                // skip the next four characters (xxxx)
-                                i += 4;
-                            }
-                            break;
-                        }
+                        goto basic_json_parser_57;
                     }
+                    if (yych <= '`')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 'f')
+                    {
+                        goto basic_json_parser_57;
+                    }
+                    goto basic_json_parser_32;
                 }
-            }
-
-            return result;
-        }
-
-        /*!
-        @brief parse floating point number
-
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
-
-        @param[in,out] endptr recieves a pointer to the first character after
-        the number
-
-        @return the floating point number
-        */
-        long double str_to_float_t(long double* /* type */, char** endptr) const
-        {
-            return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
-
-        /*!
-        @brief parse floating point number
-
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
-
-        @param[in,out] endptr  recieves a pointer to the first character after
-        the number
-
-        @return the floating point number
-        */
-        double str_to_float_t(double* /* type */, char** endptr) const
-        {
-            return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
-
-        /*!
-        @brief parse floating point number
-
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
-
-        @param[in,out] endptr  recieves a pointer to the first character after
-        the number
-
-        @return the floating point number
-        */
-        float str_to_float_t(float* /* type */, char** endptr) const
-        {
-            return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
-
-        /*!
-        @brief return number value for number tokens
-
-        This function translates the last token into the most appropriate
-        number type (either integer, unsigned integer or floating point),
-        which is passed back to the caller via the result parameter.
-
-        This function parses the integer component up to the radix point or
-        exponent while collecting information about the 'floating point
-        representation', which it stores in the result parameter. If there is
-        no radix point or exponent, and the number can fit into a @ref
-        number_integer_t or @ref number_unsigned_t then it sets the result
-        parameter accordingly.
-
-        If the number is a floating point number the number is then parsed
-        using @a std:strtod (or @a std:strtof or @a std::strtold).
-
-        @param[out] result  @ref basic_json object to receive the number, or
-        NAN if the conversion read past the current token. The latter case
-        needs to be treated by the caller function.
-        */
-        void get_number(basic_json& result) const
-        {
-            assert(m_start != nullptr);
-
-            const lexer::lexer_char_t* curptr = m_start;
-
-            // accumulate the integer conversion result (unsigned for now)
-            number_unsigned_t value = 0;
-
-            // maximum absolute value of the relevant integer type
-            number_unsigned_t max;
-
-            // temporarily store the type to avoid unecessary bitfield access
-            value_t type;
-
-            // look for sign
-            if (*curptr == '-')
-            {
-                type = value_t::number_integer;
-                max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1;
-                curptr++;
-            }
-            else
-            {
-                type = value_t::number_unsigned;
-                max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)());
-            }
-
-            // count the significant figures
-            for (; curptr < m_cursor; curptr++)
-            {
-                // quickly skip tests if a digit
-                if (*curptr < '0' || *curptr > '9')
+basic_json_parser_49:
+                yyaccept = 1;
+                m_marker = ++m_cursor;
+                if ((m_limit - m_cursor) < 3)
                 {
-                    if (*curptr == '.')
+                    fill_line_buffer(3);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= 'D')
+                {
+                    if (yych <= '/')
                     {
-                        // don't count '.' but change to float
-                        type = value_t::number_float;
-                        continue;
+                        goto basic_json_parser_14;
                     }
-                    // assume exponent (if not then will fail parse): change to
-                    // float, stop counting and record exponent details
-                    type = value_t::number_float;
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_49;
+                    }
+                    goto basic_json_parser_14;
+                }
+                else
+                {
+                    if (yych <= 'E')
+                    {
+                        goto basic_json_parser_44;
+                    }
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_44;
+                    }
+                    goto basic_json_parser_14;
+                }
+basic_json_parser_51:
+                yych = *++m_cursor;
+                if (yych <= '/')
+                {
+                    goto basic_json_parser_32;
+                }
+                if (yych >= ':')
+                {
+                    goto basic_json_parser_32;
+                }
+basic_json_parser_52:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= '/')
+                {
+                    goto basic_json_parser_14;
+                }
+                if (yych <= '9')
+                {
+                    goto basic_json_parser_52;
+                }
+                goto basic_json_parser_14;
+basic_json_parser_54:
+                yych = *++m_cursor;
+                if (yych == 's')
+                {
+                    goto basic_json_parser_58;
+                }
+                goto basic_json_parser_32;
+basic_json_parser_55:
+                yych = *++m_cursor;
+                if (yych == 'l')
+                {
+                    goto basic_json_parser_59;
+                }
+                goto basic_json_parser_32;
+basic_json_parser_56:
+                yych = *++m_cursor;
+                if (yych == 'e')
+                {
+                    goto basic_json_parser_61;
+                }
+                goto basic_json_parser_32;
+basic_json_parser_57:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= '@')
+                {
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_63;
+                    }
+                    goto basic_json_parser_32;
+                }
+                else
+                {
+                    if (yych <= 'F')
+                    {
+                        goto basic_json_parser_63;
+                    }
+                    if (yych <= '`')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 'f')
+                    {
+                        goto basic_json_parser_63;
+                    }
+                    goto basic_json_parser_32;
+                }
+basic_json_parser_58:
+                yych = *++m_cursor;
+                if (yych == 'e')
+                {
+                    goto basic_json_parser_64;
+                }
+                goto basic_json_parser_32;
+basic_json_parser_59:
+                ++m_cursor;
+                {
+                    last_token_type = token_type::literal_null;
                     break;
                 }
-
-                // skip if definitely not an integer
-                if (type != value_t::number_float)
+basic_json_parser_61:
+                ++m_cursor;
                 {
-                    auto digit = static_cast<number_unsigned_t>(*curptr - '0');
-
-                    // overflow if value * 10 + digit > max, move terms around
-                    // to avoid overflow in intermediate values
-                    if (value > (max - digit) / 10)
-                    {
-                        // overflow
-                        type = value_t::number_float;
-                    }
-                    else
-                    {
-                        // no overflow
-                        value = value * 10 + digit;
-                    }
+                    last_token_type = token_type::literal_true;
+                    break;
                 }
-            }
-
-            // save the value (if not a float)
-            if (type == value_t::number_unsigned)
-            {
-                result.m_value.number_unsigned = value;
-            }
-            else if (type == value_t::number_integer)
-            {
-                // invariant: if we parsed a '-', the absolute value is between
-                // 0 (we allow -0) and max == -INT64_MIN
-                assert(value >= 0);
-                assert(value <= max);
-
-                if (value == max)
+basic_json_parser_63:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
                 {
-                    // we cannot simply negate value (== max == -INT64_MIN),
-                    // see https://github.com/nlohmann/json/issues/389
-                    result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN);
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= '@')
+                {
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_66;
+                    }
+                    goto basic_json_parser_32;
                 }
                 else
                 {
-                    // all other values can be negated safely
-                    result.m_value.number_integer = -static_cast<number_integer_t>(value);
+                    if (yych <= 'F')
+                    {
+                        goto basic_json_parser_66;
+                    }
+                    if (yych <= '`')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 'f')
+                    {
+                        goto basic_json_parser_66;
+                    }
+                    goto basic_json_parser_32;
                 }
+basic_json_parser_64:
+                ++m_cursor;
+                {
+                    last_token_type = token_type::literal_false;
+                    break;
+                }
+basic_json_parser_66:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    fill_line_buffer(1);    // LCOV_EXCL_LINE
+                }
+                yych = *m_cursor;
+                if (yych <= '@')
+                {
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_30;
+                    }
+                    goto basic_json_parser_32;
+                }
+                else
+                {
+                    if (yych <= 'F')
+                    {
+                        goto basic_json_parser_30;
+                    }
+                    if (yych <= '`')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 'f')
+                    {
+                        goto basic_json_parser_30;
+                    }
+                    goto basic_json_parser_32;
+                }
+            }
+
+        }
+
+        return last_token_type;
+    }
+
+    /*!
+    @brief append data from the stream to the line buffer
+
+    This function is called by the scan() function when the end of the
+    buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be
+    incremented without leaving the limits of the line buffer. Note re2c
+    decides when to call this function.
+
+    If the lexer reads from contiguous storage, there is no trailing null
+    byte. Therefore, this function must make sure to add these padding
+    null bytes.
+
+    If the lexer reads from an input stream, this function reads the next
+    line of the input.
+
+    @pre
+        p p p p p p u u u u u x . . . . . .
+        ^           ^       ^   ^
+        m_content   m_start |   m_limit
+                            m_cursor
+
+    @post
+        u u u u u x x x x x x x . . . . . .
+        ^       ^               ^
+        |       m_cursor        m_limit
+        m_start
+        m_content
+    */
+    void fill_line_buffer(size_t n = 0)
+    {
+        // if line buffer is used, m_content points to its data
+        assert(m_line_buffer.empty()
+               or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()));
+
+        // if line buffer is used, m_limit is set past the end of its data
+        assert(m_line_buffer.empty()
+               or m_limit == m_content + m_line_buffer.size());
+
+        // pointer relationships
+        assert(m_content <= m_start);
+        assert(m_start <= m_cursor);
+        assert(m_cursor <= m_limit);
+        assert(m_marker == nullptr or m_marker  <= m_limit);
+
+        // number of processed characters (p)
+            const auto num_processed_chars = static_cast<size_t>(m_start - m_content);
+        // offset for m_marker wrt. to m_start
+        const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start;
+        // number of unprocessed characters (u)
+        const auto offset_cursor = m_cursor - m_start;
+
+        // no stream is used or end of file is reached
+        if (m_stream == nullptr or m_stream->eof())
+        {
+            // m_start may or may not be pointing into m_line_buffer at
+            // this point. We trust the standand library to do the right
+            // thing. See http://stackoverflow.com/q/28142011/266378
+            m_line_buffer.assign(m_start, m_limit);
+
+            // append n characters to make sure that there is sufficient
+            // space between m_cursor and m_limit
+            m_line_buffer.append(1, '\x00');
+            if (n > 0)
+            {
+                m_line_buffer.append(n - 1, '\x01');
+            }
+        }
+        else
+        {
+            // delete processed characters from line buffer
+            m_line_buffer.erase(0, num_processed_chars);
+            // read next line from input stream
+            m_line_buffer_tmp.clear();
+            std::getline(*m_stream, m_line_buffer_tmp, '\n');
+
+            // add line with newline symbol to the line buffer
+            m_line_buffer += m_line_buffer_tmp;
+            m_line_buffer.push_back('\n');
+        }
+
+        // set pointers
+        m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data());
+        assert(m_content != nullptr);
+        m_start  = m_content;
+        m_marker = m_start + offset_marker;
+        m_cursor = m_start + offset_cursor;
+        m_limit  = m_start + m_line_buffer.size();
+    }
+
+    /// return string representation of last read token
+    string_t get_token_string() const
+    {
+        assert(m_start != nullptr);
+        return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
+                        static_cast<size_t>(m_cursor - m_start));
+    }
+
+    /*!
+    @brief return string value for string tokens
+
+    The function iterates the characters between the opening and closing
+    quotes of the string value. The complete string is the range
+    [m_start,m_cursor). Consequently, we iterate from m_start+1 to
+    m_cursor-1.
+
+    We differentiate two cases:
+
+    1. Escaped characters. In this case, a new character is constructed
+       according to the nature of the escape. Some escapes create new
+       characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied
+       as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape
+       `"\\uxxxx"` need special care. In this case, to_unicode takes care
+       of the construction of the values.
+    2. Unescaped characters are copied as is.
+
+    @pre `m_cursor - m_start >= 2`, meaning the length of the last token
+    is at least 2 bytes which is trivially true for any string (which
+    consists of at least two quotes).
+
+        " c1 c2 c3 ... "
+        ^                ^
+        m_start          m_cursor
+
+    @complexity Linear in the length of the string.\n
+
+    Lemma: The loop body will always terminate.\n
+
+    Proof (by contradiction): Assume the loop body does not terminate. As
+    the loop body does not contain another loop, one of the called
+    functions must never return. The called functions are `std::strtoul`
+    and to_unicode. Neither function can loop forever, so the loop body
+    will never loop forever which contradicts the assumption that the loop
+    body does not terminate, q.e.d.\n
+
+    Lemma: The loop condition for the for loop is eventually false.\n
+
+    Proof (by contradiction): Assume the loop does not terminate. Due to
+    the above lemma, this can only be due to a tautological loop
+    condition; that is, the loop condition i < m_cursor - 1 must always be
+    true. Let x be the change of i for any loop iteration. Then
+    m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This
+    can be rephrased to m_cursor - m_start - 2 > x. With the
+    precondition, we x <= 0, meaning that the loop condition holds
+    indefinitly if i is always decreased. However, observe that the value
+    of i is strictly increasing with each iteration, as it is incremented
+    by 1 in the iteration expression and never decremented inside the loop
+    body. Hence, the loop condition will eventually be false which
+    contradicts the assumption that the loop condition is a tautology,
+    q.e.d.
+
+    @return string value of current token without opening and closing
+    quotes
+    @throw std::out_of_range if to_unicode fails
+    */
+    string_t get_string() const
+    {
+        assert(m_cursor - m_start >= 2);
+
+        string_t result;
+        result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
+
+        // iterate the result between the quotes
+        for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
+        {
+            // find next escape character
+            auto e = std::find(i, m_cursor - 1, '\\');
+            if (e != i)
+            {
+                // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705
+                for (auto k = i; k < e; k++)
+                {
+                    result.push_back(static_cast<typename string_t::value_type>(*k));
+                }
+                i = e - 1; // -1 because of ++i
             }
             else
             {
-                // parse with strtod
-                result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr);
+                // processing escaped character
+                // read next character
+                ++i;
 
-                // replace infinity and NAN by null
-                if (not std::isfinite(result.m_value.number_float))
+                switch (*i)
                 {
-                    type = value_t::null;
-                    result.m_value = basic_json::json_value();
+                    // the default escapes
+                    case 't':
+                    {
+                        result += "\t";
+                        break;
+                    }
+                    case 'b':
+                    {
+                        result += "\b";
+                        break;
+                    }
+                    case 'f':
+                    {
+                        result += "\f";
+                        break;
+                    }
+                    case 'n':
+                    {
+                        result += "\n";
+                        break;
+                    }
+                    case 'r':
+                    {
+                        result += "\r";
+                        break;
+                    }
+                    case '\\':
+                    {
+                        result += "\\";
+                        break;
+                    }
+                    case '/':
+                    {
+                        result += "/";
+                        break;
+                    }
+                    case '"':
+                    {
+                        result += "\"";
+                        break;
+                    }
+
+                    // unicode
+                    case 'u':
+                    {
+                        // get code xxxx from uxxxx
+                        auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
+                                                      4).c_str(), nullptr, 16);
+
+                        // check if codepoint is a high surrogate
+                        if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
+                        {
+                            // make sure there is a subsequent unicode
+                            if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
+                            {
+                                    JSON_THROW(std::invalid_argument("missing low surrogate"));
+                            }
+
+                            // get code yyyy from uxxxx\uyyyy
+                            auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
+                                                           (i + 7), 4).c_str(), nullptr, 16);
+                            result += to_unicode(codepoint, codepoint2);
+                            // skip the next 10 characters (xxxx\uyyyy)
+                            i += 10;
+                        }
+                        else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF)
+                        {
+                            // we found a lone low surrogate
+                                JSON_THROW(std::invalid_argument("missing high surrogate"));
+                        }
+                        else
+                        {
+                            // add unicode character(s)
+                            result += to_unicode(codepoint);
+                            // skip the next four characters (xxxx)
+                            i += 4;
+                        }
+                        break;
+                    }
                 }
             }
-
-            // save the type
-            result.m_type = type;
         }
 
-      private:
-        /// optional input stream
-        std::istream* m_stream = nullptr;
-        /// line buffer buffer for m_stream
-        string_t m_line_buffer {};
-        /// used for filling m_line_buffer
-        string_t m_line_buffer_tmp {};
-        /// the buffer pointer
-        const lexer_char_t* m_content = nullptr;
-        /// pointer to the beginning of the current symbol
-        const lexer_char_t* m_start = nullptr;
-        /// pointer for backtracking information
-        const lexer_char_t* m_marker = nullptr;
-        /// pointer to the current symbol
-        const lexer_char_t* m_cursor = nullptr;
-        /// pointer to the end of the buffer
-        const lexer_char_t* m_limit = nullptr;
-        /// the last token type
-        token_type last_token_type = token_type::end_of_input;
-    };
+        return result;
+    }
+
+    /*!
+    @brief parse floating point number
+
+    This function (and its overloads) serves to select the most approprate
+    standard floating point number parsing function based on the type
+    supplied via the first parameter.  Set this to @a
+    static_cast<number_float_t*>(nullptr).
+
+    @param[in,out] endptr recieves a pointer to the first character after
+    the number
+
+    @return the floating point number
+    */
+    long double str_to_float_t(long double* /* type */, char** endptr) const
+    {
+        return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+    }
+
+    /*!
+    @brief parse floating point number
+
+    This function (and its overloads) serves to select the most approprate
+    standard floating point number parsing function based on the type
+    supplied via the first parameter.  Set this to @a
+    static_cast<number_float_t*>(nullptr).
+
+    @param[in,out] endptr  recieves a pointer to the first character after
+    the number
+
+    @return the floating point number
+    */
+    double str_to_float_t(double* /* type */, char** endptr) const
+    {
+        return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+    }
+
+    /*!
+    @brief parse floating point number
+
+    This function (and its overloads) serves to select the most approprate
+    standard floating point number parsing function based on the type
+    supplied via the first parameter.  Set this to @a
+    static_cast<number_float_t*>(nullptr).
+
+    @param[in,out] endptr  recieves a pointer to the first character after
+    the number
+
+    @return the floating point number
+    */
+    float str_to_float_t(float* /* type */, char** endptr) const
+    {
+        return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+    }
+
+    /*!
+    @brief return number value for number tokens
+
+    This function translates the last token into the most appropriate
+    number type (either integer, unsigned integer or floating point),
+    which is passed back to the caller via the result parameter.
+
+    This function parses the integer component up to the radix point or
+    exponent while collecting information about the 'floating point
+    representation', which it stores in the result parameter. If there is
+    no radix point or exponent, and the number can fit into a @ref
+    number_integer_t or @ref number_unsigned_t then it sets the result
+    parameter accordingly.
+
+    If the number is a floating point number the number is then parsed
+    using @a std:strtod (or @a std:strtof or @a std::strtold).
+
+    @param[out] result  @ref basic_json object to receive the number, or
+    NAN if the conversion read past the current token. The latter case
+    needs to be treated by the caller function.
+    */
+    void get_number(basic_json& result) const
+    {
+        assert(m_start != nullptr);
+
+        const lexer::lexer_char_t* curptr = m_start;
+
+        // accumulate the integer conversion result (unsigned for now)
+        number_unsigned_t value = 0;
+
+        // maximum absolute value of the relevant integer type
+        number_unsigned_t max;
+
+        // temporarily store the type to avoid unecessary bitfield access
+        value_t type;
+
+        // look for sign
+        if (*curptr == '-')
+        {
+            type = value_t::number_integer;
+            max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1;
+            curptr++;
+        }
+        else
+        {
+            type = value_t::number_unsigned;
+            max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)());
+        }
+
+        // count the significant figures
+        for (; curptr < m_cursor; curptr++)
+        {
+            // quickly skip tests if a digit
+            if (*curptr < '0' || *curptr > '9')
+            {
+                if (*curptr == '.')
+                {
+                    // don't count '.' but change to float
+                    type = value_t::number_float;
+                    continue;
+                }
+                // assume exponent (if not then will fail parse): change to
+                // float, stop counting and record exponent details
+                type = value_t::number_float;
+                break;
+            }
+
+            // skip if definitely not an integer
+            if (type != value_t::number_float)
+            {
+                auto digit = static_cast<number_unsigned_t>(*curptr - '0');
+
+                // overflow if value * 10 + digit > max, move terms around
+                // to avoid overflow in intermediate values
+                if (value > (max - digit) / 10)
+                {
+                    // overflow
+                    type = value_t::number_float;
+                }
+                else
+                {
+                    // no overflow
+                    value = value * 10 + digit;
+                }
+            }
+        }
+
+        // save the value (if not a float)
+        if (type == value_t::number_unsigned)
+        {
+            result.m_value.number_unsigned = value;
+        }
+        else if (type == value_t::number_integer)
+        {
+            // invariant: if we parsed a '-', the absolute value is between
+            // 0 (we allow -0) and max == -INT64_MIN
+            assert(value >= 0);
+            assert(value <= max);
+
+            if (value == max)
+            {
+                // we cannot simply negate value (== max == -INT64_MIN),
+                // see https://github.com/nlohmann/json/issues/389
+                result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN);
+            }
+            else
+            {
+                // all other values can be negated safely
+                result.m_value.number_integer = -static_cast<number_integer_t>(value);
+            }
+        }
+        else
+        {
+            // parse with strtod
+                result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr);
+
+            // replace infinity and NAN by null
+            if (not std::isfinite(result.m_value.number_float))
+            {
+                type = value_t::null;
+                result.m_value = basic_json::json_value();
+            }
+        }
+
+        // save the type
+        result.m_type = type;
+    }
+
+    private:
+    /// optional input stream
+    std::istream* m_stream = nullptr;
+    /// line buffer buffer for m_stream
+    string_t m_line_buffer {};
+    /// used for filling m_line_buffer
+    string_t m_line_buffer_tmp {};
+    /// the buffer pointer
+    const lexer_char_t* m_content = nullptr;
+    /// pointer to the beginning of the current symbol
+    const lexer_char_t* m_start = nullptr;
+    /// pointer for backtracking information
+    const lexer_char_t* m_marker = nullptr;
+    /// pointer to the current symbol
+    const lexer_char_t* m_cursor = nullptr;
+    /// pointer to the end of the buffer
+    const lexer_char_t* m_limit = nullptr;
+    /// the last token type
+    token_type last_token_type = token_type::end_of_input;
+                                                };
 
     /*!
     @brief syntax analysis
@@ -11130,282 +11141,282 @@ basic_json_parser_66:
     */
     class parser
     {
-      public:
+        public:
         /// a parser reading from a string literal
         parser(const char* buff, const parser_callback_t cb = nullptr)
-            : callback(cb),
-              m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff))
-        {}
+        : callback(cb),
+        m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff))
+    {}
 
-        /// a parser reading from an input stream
-        parser(std::istream& is, const parser_callback_t cb = nullptr)
-            : callback(cb), m_lexer(is)
-        {}
+    /// a parser reading from an input stream
+    parser(std::istream& is, const parser_callback_t cb = nullptr)
+    : callback(cb), m_lexer(is)
+    {}
 
-        /// a parser reading from an iterator range with contiguous storage
-        template<class IteratorType, typename std::enable_if<
-                     std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value
-                     , int>::type
-                 = 0>
-        parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr)
-            : callback(cb),
-              m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)),
-                      static_cast<size_t>(std::distance(first, last)))
-        {}
+    /// a parser reading from an iterator range with contiguous storage
+    template<class IteratorType, typename std::enable_if<
+                 std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value
+                 , int>::type
+             = 0>
+    parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr)
+    : callback(cb),
+    m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)),
+            static_cast<size_t>(std::distance(first, last)))
+    {}
 
-        /// public parser interface
-        basic_json parse()
+    /// public parser interface
+    basic_json parse()
+    {
+        // read first token
+        get_token();
+
+        basic_json result = parse_internal(true);
+        result.assert_invariant();
+
+        expect(lexer::token_type::end_of_input);
+
+        // return parser result and replace it with null in case the
+        // top-level value was discarded by the callback function
+        return result.is_discarded() ? basic_json() : std::move(result);
+    }
+
+    private:
+    /// the actual parser
+    basic_json parse_internal(bool keep)
+    {
+        auto result = basic_json(value_t::discarded);
+
+        switch (last_token)
         {
-            // read first token
-            get_token();
-
-            basic_json result = parse_internal(true);
-            result.assert_invariant();
-
-            expect(lexer::token_type::end_of_input);
-
-            // return parser result and replace it with null in case the
-            // top-level value was discarded by the callback function
-            return result.is_discarded() ? basic_json() : std::move(result);
-        }
-
-      private:
-        /// the actual parser
-        basic_json parse_internal(bool keep)
-        {
-            auto result = basic_json(value_t::discarded);
-
-            switch (last_token)
+            case lexer::token_type::begin_object:
             {
-                case lexer::token_type::begin_object:
+                if (keep and (not callback
+                              or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0)))
                 {
-                    if (keep and (not callback
-                                  or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0)))
-                    {
-                        // explicitly set result to object to cope with {}
-                        result.m_type = value_t::object;
-                        result.m_value = value_t::object;
-                    }
+                    // explicitly set result to object to cope with {}
+                    result.m_type = value_t::object;
+                    result.m_value = value_t::object;
+                }
 
-                    // read next token
-                    get_token();
+                // read next token
+                get_token();
 
-                    // closing } -> we are done
-                    if (last_token == lexer::token_type::end_object)
-                    {
-                        get_token();
-                        if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
-                        {
-                            result = basic_json(value_t::discarded);
-                        }
-                        return result;
-                    }
-
-                    // no comma is expected here
-                    unexpect(lexer::token_type::value_separator);
-
-                    // otherwise: parse key-value pairs
-                    do
-                    {
-                        // ugly, but could be fixed with loop reorganization
-                        if (last_token == lexer::token_type::value_separator)
-                        {
-                            get_token();
-                        }
-
-                        // store key
-                        expect(lexer::token_type::value_string);
-                        const auto key = m_lexer.get_string();
-
-                        bool keep_tag = false;
-                        if (keep)
-                        {
-                            if (callback)
-                            {
-                                basic_json k(key);
-                                keep_tag = callback(depth, parse_event_t::key, k);
-                            }
-                            else
-                            {
-                                keep_tag = true;
-                            }
-                        }
-
-                        // parse separator (:)
-                        get_token();
-                        expect(lexer::token_type::name_separator);
-
-                        // parse and add value
-                        get_token();
-                        auto value = parse_internal(keep);
-                        if (keep and keep_tag and not value.is_discarded())
-                        {
-                            result[key] = std::move(value);
-                        }
-                    }
-                    while (last_token == lexer::token_type::value_separator);
-
-                    // closing }
-                    expect(lexer::token_type::end_object);
+                // closing } -> we are done
+                if (last_token == lexer::token_type::end_object)
+                {
                     get_token();
                     if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
                     {
                         result = basic_json(value_t::discarded);
                     }
-
                     return result;
                 }
 
-                case lexer::token_type::begin_array:
+                // no comma is expected here
+                unexpect(lexer::token_type::value_separator);
+
+                // otherwise: parse key-value pairs
+                do
                 {
-                    if (keep and (not callback
-                                  or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0)))
-                    {
-                        // explicitly set result to object to cope with []
-                        result.m_type = value_t::array;
-                        result.m_value = value_t::array;
-                    }
-
-                    // read next token
-                    get_token();
-
-                    // closing ] -> we are done
-                    if (last_token == lexer::token_type::end_array)
+                    // ugly, but could be fixed with loop reorganization
+                    if (last_token == lexer::token_type::value_separator)
                     {
                         get_token();
-                        if (callback and not callback(--depth, parse_event_t::array_end, result))
-                        {
-                            result = basic_json(value_t::discarded);
-                        }
-                        return result;
                     }
 
-                    // no comma is expected here
-                    unexpect(lexer::token_type::value_separator);
+                    // store key
+                    expect(lexer::token_type::value_string);
+                    const auto key = m_lexer.get_string();
 
-                    // otherwise: parse values
-                    do
+                    bool keep_tag = false;
+                    if (keep)
                     {
-                        // ugly, but could be fixed with loop reorganization
-                        if (last_token == lexer::token_type::value_separator)
+                        if (callback)
                         {
-                            get_token();
+                            basic_json k(key);
+                            keep_tag = callback(depth, parse_event_t::key, k);
                         }
-
-                        // parse value
-                        auto value = parse_internal(keep);
-                        if (keep and not value.is_discarded())
+                        else
                         {
-                            result.push_back(std::move(value));
+                            keep_tag = true;
                         }
                     }
-                    while (last_token == lexer::token_type::value_separator);
 
-                    // closing ]
-                    expect(lexer::token_type::end_array);
+                    // parse separator (:)
                     get_token();
-                    if (keep and callback and not callback(--depth, parse_event_t::array_end, result))
+                    expect(lexer::token_type::name_separator);
+
+                    // parse and add value
+                    get_token();
+                    auto value = parse_internal(keep);
+                    if (keep and keep_tag and not value.is_discarded())
+                    {
+                        result[key] = std::move(value);
+                    }
+                }
+                while (last_token == lexer::token_type::value_separator);
+
+                // closing }
+                expect(lexer::token_type::end_object);
+                get_token();
+                if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
+                {
+                    result = basic_json(value_t::discarded);
+                }
+
+                return result;
+            }
+
+            case lexer::token_type::begin_array:
+            {
+                if (keep and (not callback
+                              or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0)))
+                {
+                    // explicitly set result to object to cope with []
+                    result.m_type = value_t::array;
+                    result.m_value = value_t::array;
+                }
+
+                // read next token
+                get_token();
+
+                // closing ] -> we are done
+                if (last_token == lexer::token_type::end_array)
+                {
+                    get_token();
+                    if (callback and not callback(--depth, parse_event_t::array_end, result))
                     {
                         result = basic_json(value_t::discarded);
                     }
-
                     return result;
                 }
 
-                case lexer::token_type::literal_null:
+                // no comma is expected here
+                unexpect(lexer::token_type::value_separator);
+
+                // otherwise: parse values
+                do
                 {
-                    get_token();
-                    result.m_type = value_t::null;
-                    break;
+                    // ugly, but could be fixed with loop reorganization
+                    if (last_token == lexer::token_type::value_separator)
+                    {
+                        get_token();
+                    }
+
+                    // parse value
+                    auto value = parse_internal(keep);
+                    if (keep and not value.is_discarded())
+                    {
+                        result.push_back(std::move(value));
+                    }
+                }
+                while (last_token == lexer::token_type::value_separator);
+
+                // closing ]
+                expect(lexer::token_type::end_array);
+                get_token();
+                if (keep and callback and not callback(--depth, parse_event_t::array_end, result))
+                {
+                    result = basic_json(value_t::discarded);
                 }
 
-                case lexer::token_type::value_string:
-                {
-                    const auto s = m_lexer.get_string();
-                    get_token();
-                    result = basic_json(s);
-                    break;
-                }
-
-                case lexer::token_type::literal_true:
-                {
-                    get_token();
-                    result.m_type = value_t::boolean;
-                    result.m_value = true;
-                    break;
-                }
-
-                case lexer::token_type::literal_false:
-                {
-                    get_token();
-                    result.m_type = value_t::boolean;
-                    result.m_value = false;
-                    break;
-                }
-
-                case lexer::token_type::value_number:
-                {
-                    m_lexer.get_number(result);
-                    get_token();
-                    break;
-                }
-
-                default:
-                {
-                    // the last token was unexpected
-                    unexpect(last_token);
-                }
+                return result;
             }
 
-            if (keep and callback and not callback(depth, parse_event_t::value, result))
+            case lexer::token_type::literal_null:
             {
-                result = basic_json(value_t::discarded);
+                get_token();
+                result.m_type = value_t::null;
+                break;
             }
-            return result;
-        }
 
-        /// get next token from lexer
-        typename lexer::token_type get_token()
-        {
-            last_token = m_lexer.scan();
-            return last_token;
-        }
-
-        void expect(typename lexer::token_type t) const
-        {
-            if (t != last_token)
+            case lexer::token_type::value_string:
             {
-                std::string error_msg = "parse error - unexpected ";
-                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
-                              "'") :
-                              lexer::token_type_name(last_token));
-                error_msg += "; expected " + lexer::token_type_name(t);
+                const auto s = m_lexer.get_string();
+                get_token();
+                result = basic_json(s);
+                break;
+            }
+
+            case lexer::token_type::literal_true:
+            {
+                get_token();
+                result.m_type = value_t::boolean;
+                result.m_value = true;
+                break;
+            }
+
+            case lexer::token_type::literal_false:
+            {
+                get_token();
+                result.m_type = value_t::boolean;
+                result.m_value = false;
+                break;
+            }
+
+            case lexer::token_type::value_number:
+            {
+                m_lexer.get_number(result);
+                get_token();
+                break;
+            }
+
+            default:
+            {
+                // the last token was unexpected
+                unexpect(last_token);
+            }
+        }
+
+        if (keep and callback and not callback(depth, parse_event_t::value, result))
+        {
+            result = basic_json(value_t::discarded);
+        }
+        return result;
+    }
+
+    /// get next token from lexer
+    typename lexer::token_type get_token()
+    {
+        last_token = m_lexer.scan();
+        return last_token;
+    }
+
+    void expect(typename lexer::token_type t) const
+    {
+        if (t != last_token)
+        {
+            std::string error_msg = "parse error - unexpected ";
+            error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
+                          "'") :
+                          lexer::token_type_name(last_token));
+            error_msg += "; expected " + lexer::token_type_name(t);
                 JSON_THROW(std::invalid_argument(error_msg));
-            }
         }
+    }
 
-        void unexpect(typename lexer::token_type t) const
+    void unexpect(typename lexer::token_type t) const
+    {
+        if (t == last_token)
         {
-            if (t == last_token)
-            {
-                std::string error_msg = "parse error - unexpected ";
-                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
-                              "'") :
-                              lexer::token_type_name(last_token));
+            std::string error_msg = "parse error - unexpected ";
+            error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
+                          "'") :
+                          lexer::token_type_name(last_token));
                 JSON_THROW(std::invalid_argument(error_msg));
-            }
         }
+    }
 
-      private:
-        /// current level of recursion
-        int depth = 0;
-        /// callback function
-        const parser_callback_t callback = nullptr;
-        /// the type of the last read token
-        typename lexer::token_type last_token = lexer::token_type::uninitialized;
-        /// the lexer
-        lexer m_lexer;
-    };
+    private:
+    /// current level of recursion
+    int depth = 0;
+    /// callback function
+    const parser_callback_t callback = nullptr;
+    /// the type of the last read token
+    typename lexer::token_type last_token = lexer::token_type::uninitialized;
+    /// the lexer
+    lexer m_lexer;
+                            };
 
   public:
     /*!
@@ -11424,7 +11435,7 @@ basic_json_parser_66:
         /// allow basic_json to access private members
         friend class basic_json;
 
-      public:
+        public:
         /*!
         @brief create JSON pointer
 
@@ -11448,562 +11459,562 @@ basic_json_parser_66:
         @since version 2.0.0
         */
         explicit json_pointer(const std::string& s = "")
-            : reference_tokens(split(s))
-        {}
+        : reference_tokens(split(s))
+    {}
 
-        /*!
-        @brief return a string representation of the JSON pointer
+    /*!
+    @brief return a string representation of the JSON pointer
 
-        @invariant For each JSON pointer `ptr`, it holds:
-        @code {.cpp}
-        ptr == json_pointer(ptr.to_string());
-        @endcode
+    @invariant For each JSON pointer `ptr`, it holds:
+    @code {.cpp}
+    ptr == json_pointer(ptr.to_string());
+    @endcode
 
-        @return a string representation of the JSON pointer
+    @return a string representation of the JSON pointer
 
-        @liveexample{The example shows the result of `to_string`.,
-        json_pointer__to_string}
+    @liveexample{The example shows the result of `to_string`.,
+    json_pointer__to_string}
 
-        @since version 2.0.0
-        */
-        std::string to_string() const noexcept
+    @since version 2.0.0
+    */
+    std::string to_string() const noexcept
+    {
+        return std::accumulate(reference_tokens.begin(),
+                               reference_tokens.end(), std::string{},
+                               [](const std::string & a, const std::string & b)
         {
-            return std::accumulate(reference_tokens.begin(),
-                                   reference_tokens.end(), std::string{},
-                                   [](const std::string & a, const std::string & b)
-            {
-                return a + "/" + escape(b);
-            });
-        }
+            return a + "/" + escape(b);
+        });
+    }
 
-        /// @copydoc to_string()
-        operator std::string() const
-        {
-            return to_string();
-        }
+    /// @copydoc to_string()
+    operator std::string() const
+    {
+        return to_string();
+    }
 
-      private:
-        /// remove and return last reference pointer
-        std::string pop_back()
+    private:
+    /// remove and return last reference pointer
+    std::string pop_back()
+    {
+        if (is_root())
         {
-            if (is_root())
-            {
                 JSON_THROW(std::domain_error("JSON pointer has no parent"));
-            }
-
-            auto last = reference_tokens.back();
-            reference_tokens.pop_back();
-            return last;
         }
 
-        /// return whether pointer points to the root document
-        bool is_root() const
-        {
-            return reference_tokens.empty();
-        }
+        auto last = reference_tokens.back();
+        reference_tokens.pop_back();
+        return last;
+    }
 
-        json_pointer top() const
+    /// return whether pointer points to the root document
+    bool is_root() const
+    {
+        return reference_tokens.empty();
+    }
+
+    json_pointer top() const
+    {
+        if (is_root())
         {
-            if (is_root())
-            {
                 JSON_THROW(std::domain_error("JSON pointer has no parent"));
-            }
-
-            json_pointer result = *this;
-            result.reference_tokens = {reference_tokens[0]};
-            return result;
         }
 
-        /*!
-        @brief create and return a reference to the pointed to value
+        json_pointer result = *this;
+        result.reference_tokens = {reference_tokens[0]};
+        return result;
+    }
 
-        @complexity Linear in the number of reference tokens.
-        */
-        reference get_and_create(reference j) const
+    /*!
+    @brief create and return a reference to the pointed to value
+
+    @complexity Linear in the number of reference tokens.
+    */
+    reference get_and_create(reference j) const
+    {
+        pointer result = &j;
+
+        // in case no reference tokens exist, return a reference to the
+        // JSON value j which will be overwritten by a primitive value
+        for (const auto& reference_token : reference_tokens)
         {
-            pointer result = &j;
-
-            // in case no reference tokens exist, return a reference to the
-            // JSON value j which will be overwritten by a primitive value
-            for (const auto& reference_token : reference_tokens)
+            switch (result->m_type)
             {
-                switch (result->m_type)
+                case value_t::null:
                 {
-                    case value_t::null:
+                    if (reference_token == "0")
                     {
-                        if (reference_token == "0")
-                        {
-                            // start a new array if reference token is 0
-                            result = &result->operator[](0);
-                        }
-                        else
-                        {
-                            // start a new object otherwise
-                            result = &result->operator[](reference_token);
-                        }
-                        break;
+                        // start a new array if reference token is 0
+                        result = &result->operator[](0);
                     }
-
-                    case value_t::object:
+                    else
                     {
-                        // create an entry in the object
+                        // start a new object otherwise
                         result = &result->operator[](reference_token);
-                        break;
-                    }
-
-                    case value_t::array:
-                    {
-                        // create an entry in the array
-                        result = &result->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                        break;
-                    }
-
-                    /*
-                    The following code is only reached if there exists a
-                    reference token _and_ the current value is primitive. In
-                    this case, we have an error situation, because primitive
-                    values may only occur as single value; that is, with an
-                    empty list of reference tokens.
-                    */
-                    default:
-                    {
-                        JSON_THROW(std::domain_error("invalid value to unflatten"));
-                    }
-                }
-            }
-
-            return *result;
-        }
-
-        /*!
-        @brief return a reference to the pointed to value
-
-        @note This version does not throw if a value is not present, but tries
-        to create nested values instead. For instance, calling this function
-        with pointer `"/this/that"` on a null value is equivalent to calling
-        `operator[]("this").operator[]("that")` on that value, effectively
-        changing the null value to an object.
-
-        @param[in] ptr  a JSON value
-
-        @return reference to the JSON value pointed to by the JSON pointer
-
-        @complexity Linear in the length of the JSON pointer.
-
-        @throw std::out_of_range      if the JSON pointer can not be resolved
-        @throw std::domain_error      if an array index begins with '0'
-        @throw std::invalid_argument  if an array index was not a number
-        */
-        reference get_unchecked(pointer ptr) const
-        {
-            for (const auto& reference_token : reference_tokens)
-            {
-                // convert null values to arrays or objects before continuing
-                if (ptr->m_type == value_t::null)
-                {
-                    // check if reference token is a number
-                    const bool nums = std::all_of(reference_token.begin(),
-                                                  reference_token.end(),
-                                                  [](const char x)
-                    {
-                        return std::isdigit(x);
-                    });
-
-                    // change value to array for numbers or "-" or to object
-                    // otherwise
-                    if (nums or reference_token == "-")
-                    {
-                        *ptr = value_t::array;
-                    }
-                    else
-                    {
-                        *ptr = value_t::object;
-                    }
-                }
-
-                switch (ptr->m_type)
-                {
-                    case value_t::object:
-                    {
-                        // use unchecked object access
-                        ptr = &ptr->operator[](reference_token);
-                        break;
-                    }
-
-                    case value_t::array:
-                    {
-                        // error condition (cf. RFC 6901, Sect. 4)
-                        if (reference_token.size() > 1 and reference_token[0] == '0')
-                        {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                        }
-
-                        if (reference_token == "-")
-                        {
-                            // explicityly treat "-" as index beyond the end
-                            ptr = &ptr->operator[](ptr->m_value.array->size());
-                        }
-                        else
-                        {
-                            // convert array index to number; unchecked access
-                            ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                        }
-                        break;
-                    }
-
-                    default:
-                    {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                    }
-                }
-            }
-
-            return *ptr;
-        }
-
-        reference get_checked(pointer ptr) const
-        {
-            for (const auto& reference_token : reference_tokens)
-            {
-                switch (ptr->m_type)
-                {
-                    case value_t::object:
-                    {
-                        // note: at performs range check
-                        ptr = &ptr->at(reference_token);
-                        break;
-                    }
-
-                    case value_t::array:
-                    {
-                        if (reference_token == "-")
-                        {
-                            // "-" always fails the range check
-                            throw std::out_of_range("array index '-' (" +
-                                                    std::to_string(ptr->m_value.array->size()) +
-                                                    ") is out of range");
-                        }
-
-                        // error condition (cf. RFC 6901, Sect. 4)
-                        if (reference_token.size() > 1 and reference_token[0] == '0')
-                        {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                        }
-
-                        // note: at performs range check
-                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
-                        break;
-                    }
-
-                    default:
-                    {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                    }
-                }
-            }
-
-            return *ptr;
-        }
-
-        /*!
-        @brief return a const reference to the pointed to value
-
-        @param[in] ptr  a JSON value
-
-        @return const reference to the JSON value pointed to by the JSON
-                pointer
-        */
-        const_reference get_unchecked(const_pointer ptr) const
-        {
-            for (const auto& reference_token : reference_tokens)
-            {
-                switch (ptr->m_type)
-                {
-                    case value_t::object:
-                    {
-                        // use unchecked object access
-                        ptr = &ptr->operator[](reference_token);
-                        break;
-                    }
-
-                    case value_t::array:
-                    {
-                        if (reference_token == "-")
-                        {
-                            // "-" cannot be used for const access
-                            throw std::out_of_range("array index '-' (" +
-                                                    std::to_string(ptr->m_value.array->size()) +
-                                                    ") is out of range");
-                        }
-
-                        // error condition (cf. RFC 6901, Sect. 4)
-                        if (reference_token.size() > 1 and reference_token[0] == '0')
-                        {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                        }
-
-                        // use unchecked array access
-                        ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                        break;
-                    }
-
-                    default:
-                    {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                    }
-                }
-            }
-
-            return *ptr;
-        }
-
-        const_reference get_checked(const_pointer ptr) const
-        {
-            for (const auto& reference_token : reference_tokens)
-            {
-                switch (ptr->m_type)
-                {
-                    case value_t::object:
-                    {
-                        // note: at performs range check
-                        ptr = &ptr->at(reference_token);
-                        break;
-                    }
-
-                    case value_t::array:
-                    {
-                        if (reference_token == "-")
-                        {
-                            // "-" always fails the range check
-                            throw std::out_of_range("array index '-' (" +
-                                                    std::to_string(ptr->m_value.array->size()) +
-                                                    ") is out of range");
-                        }
-
-                        // error condition (cf. RFC 6901, Sect. 4)
-                        if (reference_token.size() > 1 and reference_token[0] == '0')
-                        {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                        }
-
-                        // note: at performs range check
-                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
-                        break;
-                    }
-
-                    default:
-                    {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                    }
-                }
-            }
-
-            return *ptr;
-        }
-
-        /// split the string input to reference tokens
-        static std::vector<std::string> split(const std::string& reference_string)
-        {
-            std::vector<std::string> result;
-
-            // special case: empty reference string -> no reference tokens
-            if (reference_string.empty())
-            {
-                return result;
-            }
-
-            // check if nonempty reference string begins with slash
-            if (reference_string[0] != '/')
-            {
-                JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'"));
-            }
-
-            // extract the reference tokens:
-            // - slash: position of the last read slash (or end of string)
-            // - start: position after the previous slash
-            for (
-                // search for the first slash after the first character
-                size_t slash = reference_string.find_first_of('/', 1),
-                // set the beginning of the first reference token
-                start = 1;
-                // we can stop if start == string::npos+1 = 0
-                start != 0;
-                // set the beginning of the next reference token
-                // (will eventually be 0 if slash == std::string::npos)
-                start = slash + 1,
-                // find next slash
-                slash = reference_string.find_first_of('/', start))
-            {
-                // use the text between the beginning of the reference token
-                // (start) and the last slash (slash).
-                auto reference_token = reference_string.substr(start, slash - start);
-
-                // check reference tokens are properly escaped
-                for (size_t pos = reference_token.find_first_of('~');
-                        pos != std::string::npos;
-                        pos = reference_token.find_first_of('~', pos + 1))
-                {
-                    assert(reference_token[pos] == '~');
-
-                    // ~ must be followed by 0 or 1
-                    if (pos == reference_token.size() - 1 or
-                            (reference_token[pos + 1] != '0' and
-                             reference_token[pos + 1] != '1'))
-                    {
-                        JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'"));
-                    }
-                }
-
-                // finally, store the reference token
-                unescape(reference_token);
-                result.push_back(reference_token);
-            }
-
-            return result;
-        }
-
-      private:
-        /*!
-        @brief replace all occurrences of a substring by another string
-
-        @param[in,out] s  the string to manipulate; changed so that all
-                          occurrences of @a f are replaced with @a t
-        @param[in]     f  the substring to replace with @a t
-        @param[in]     t  the string to replace @a f
-
-        @pre The search string @a f must not be empty.
-
-        @since version 2.0.0
-        */
-        static void replace_substring(std::string& s,
-                                      const std::string& f,
-                                      const std::string& t)
-        {
-            assert(not f.empty());
-
-            for (
-                size_t pos = s.find(f);         // find first occurrence of f
-                pos != std::string::npos;       // make sure f was found
-                s.replace(pos, f.size(), t),    // replace with t
-                pos = s.find(f, pos + t.size()) // find next occurrence of f
-            );
-        }
-
-        /// escape tilde and slash
-        static std::string escape(std::string s)
-        {
-            // escape "~"" to "~0" and "/" to "~1"
-            replace_substring(s, "~", "~0");
-            replace_substring(s, "/", "~1");
-            return s;
-        }
-
-        /// unescape tilde and slash
-        static void unescape(std::string& s)
-        {
-            // first transform any occurrence of the sequence '~1' to '/'
-            replace_substring(s, "~1", "/");
-            // then transform any occurrence of the sequence '~0' to '~'
-            replace_substring(s, "~0", "~");
-        }
-
-        /*!
-        @param[in] reference_string  the reference string to the current value
-        @param[in] value             the value to consider
-        @param[in,out] result        the result object to insert values to
-
-        @note Empty objects or arrays are flattened to `null`.
-        */
-        static void flatten(const std::string& reference_string,
-                            const basic_json& value,
-                            basic_json& result)
-        {
-            switch (value.m_type)
-            {
-                case value_t::array:
-                {
-                    if (value.m_value.array->empty())
-                    {
-                        // flatten empty array as null
-                        result[reference_string] = nullptr;
-                    }
-                    else
-                    {
-                        // iterate array and use index as reference string
-                        for (size_t i = 0; i < value.m_value.array->size(); ++i)
-                        {
-                            flatten(reference_string + "/" + std::to_string(i),
-                                    value.m_value.array->operator[](i), result);
-                        }
                     }
                     break;
                 }
 
                 case value_t::object:
                 {
-                    if (value.m_value.object->empty())
+                    // create an entry in the object
+                    result = &result->operator[](reference_token);
+                    break;
+                }
+
+                case value_t::array:
+                {
+                    // create an entry in the array
+                    result = &result->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                    break;
+                }
+
+                /*
+                The following code is only reached if there exists a
+                reference token _and_ the current value is primitive. In
+                this case, we have an error situation, because primitive
+                values may only occur as single value; that is, with an
+                empty list of reference tokens.
+                */
+                default:
+                {
+                        JSON_THROW(std::domain_error("invalid value to unflatten"));
+                }
+            }
+        }
+
+        return *result;
+    }
+
+    /*!
+    @brief return a reference to the pointed to value
+
+    @note This version does not throw if a value is not present, but tries
+    to create nested values instead. For instance, calling this function
+    with pointer `"/this/that"` on a null value is equivalent to calling
+    `operator[]("this").operator[]("that")` on that value, effectively
+    changing the null value to an object.
+
+    @param[in] ptr  a JSON value
+
+    @return reference to the JSON value pointed to by the JSON pointer
+
+    @complexity Linear in the length of the JSON pointer.
+
+    @throw std::out_of_range      if the JSON pointer can not be resolved
+    @throw std::domain_error      if an array index begins with '0'
+    @throw std::invalid_argument  if an array index was not a number
+    */
+    reference get_unchecked(pointer ptr) const
+    {
+        for (const auto& reference_token : reference_tokens)
+        {
+            // convert null values to arrays or objects before continuing
+            if (ptr->m_type == value_t::null)
+            {
+                // check if reference token is a number
+                const bool nums = std::all_of(reference_token.begin(),
+                                              reference_token.end(),
+                                              [](const char x)
+                {
+                    return std::isdigit(x);
+                });
+
+                // change value to array for numbers or "-" or to object
+                // otherwise
+                if (nums or reference_token == "-")
+                {
+                    *ptr = value_t::array;
+                }
+                else
+                {
+                    *ptr = value_t::object;
+                }
+            }
+
+            switch (ptr->m_type)
+            {
+                case value_t::object:
+                {
+                    // use unchecked object access
+                    ptr = &ptr->operator[](reference_token);
+                    break;
+                }
+
+                case value_t::array:
+                {
+                    // error condition (cf. RFC 6901, Sect. 4)
+                    if (reference_token.size() > 1 and reference_token[0] == '0')
                     {
-                        // flatten empty object as null
-                        result[reference_string] = nullptr;
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                    }
+
+                    if (reference_token == "-")
+                    {
+                        // explicityly treat "-" as index beyond the end
+                        ptr = &ptr->operator[](ptr->m_value.array->size());
                     }
                     else
                     {
-                        // iterate object and use keys as reference string
-                        for (const auto& element : *value.m_value.object)
-                        {
-                            flatten(reference_string + "/" + escape(element.first),
-                                    element.second, result);
-                        }
+                        // convert array index to number; unchecked access
+                        ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
                     }
                     break;
                 }
 
                 default:
                 {
-                    // add primitive value with its reference string
-                    result[reference_string] = value;
-                    break;
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
                 }
             }
         }
 
-        /*!
-        @param[in] value  flattened JSON
+        return *ptr;
+    }
 
-        @return unflattened JSON
-        */
-        static basic_json unflatten(const basic_json& value)
+    reference get_checked(pointer ptr) const
+    {
+        for (const auto& reference_token : reference_tokens)
         {
-            if (not value.is_object())
+            switch (ptr->m_type)
             {
-                JSON_THROW(std::domain_error("only objects can be unflattened"));
-            }
-
-            basic_json result;
-
-            // iterate the JSON object values
-            for (const auto& element : *value.m_value.object)
-            {
-                if (not element.second.is_primitive())
+                case value_t::object:
                 {
-                    JSON_THROW(std::domain_error("values in object must be primitive"));
+                    // note: at performs range check
+                    ptr = &ptr->at(reference_token);
+                    break;
                 }
 
-                // assign value to reference pointed to by JSON pointer; Note
-                // that if the JSON pointer is "" (i.e., points to the whole
-                // value), function get_and_create returns a reference to
-                // result itself. An assignment will then create a primitive
-                // value.
-                json_pointer(element.first).get_and_create(result) = element.second;
-            }
+                case value_t::array:
+                {
+                    if (reference_token == "-")
+                    {
+                        // "-" always fails the range check
+                        throw std::out_of_range("array index '-' (" +
+                                                std::to_string(ptr->m_value.array->size()) +
+                                                ") is out of range");
+                    }
 
+                    // error condition (cf. RFC 6901, Sect. 4)
+                    if (reference_token.size() > 1 and reference_token[0] == '0')
+                    {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                    }
+
+                    // note: at performs range check
+                    ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                    break;
+                }
+
+                default:
+                {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                }
+            }
+        }
+
+        return *ptr;
+    }
+
+    /*!
+    @brief return a const reference to the pointed to value
+
+    @param[in] ptr  a JSON value
+
+    @return const reference to the JSON value pointed to by the JSON
+            pointer
+    */
+    const_reference get_unchecked(const_pointer ptr) const
+    {
+        for (const auto& reference_token : reference_tokens)
+        {
+            switch (ptr->m_type)
+            {
+                case value_t::object:
+                {
+                    // use unchecked object access
+                    ptr = &ptr->operator[](reference_token);
+                    break;
+                }
+
+                case value_t::array:
+                {
+                    if (reference_token == "-")
+                    {
+                        // "-" cannot be used for const access
+                        throw std::out_of_range("array index '-' (" +
+                                                std::to_string(ptr->m_value.array->size()) +
+                                                ") is out of range");
+                    }
+
+                    // error condition (cf. RFC 6901, Sect. 4)
+                    if (reference_token.size() > 1 and reference_token[0] == '0')
+                    {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                    }
+
+                    // use unchecked array access
+                    ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                    break;
+                }
+
+                default:
+                {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                }
+            }
+        }
+
+        return *ptr;
+    }
+
+    const_reference get_checked(const_pointer ptr) const
+    {
+        for (const auto& reference_token : reference_tokens)
+        {
+            switch (ptr->m_type)
+            {
+                case value_t::object:
+                {
+                    // note: at performs range check
+                    ptr = &ptr->at(reference_token);
+                    break;
+                }
+
+                case value_t::array:
+                {
+                    if (reference_token == "-")
+                    {
+                        // "-" always fails the range check
+                        throw std::out_of_range("array index '-' (" +
+                                                std::to_string(ptr->m_value.array->size()) +
+                                                ") is out of range");
+                    }
+
+                    // error condition (cf. RFC 6901, Sect. 4)
+                    if (reference_token.size() > 1 and reference_token[0] == '0')
+                    {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                    }
+
+                    // note: at performs range check
+                    ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                    break;
+                }
+
+                default:
+                {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                }
+            }
+        }
+
+        return *ptr;
+    }
+
+    /// split the string input to reference tokens
+    static std::vector<std::string> split(const std::string& reference_string)
+    {
+        std::vector<std::string> result;
+
+        // special case: empty reference string -> no reference tokens
+        if (reference_string.empty())
+        {
             return result;
         }
 
-      private:
-        /// the reference tokens
-        std::vector<std::string> reference_tokens {};
-    };
+        // check if nonempty reference string begins with slash
+        if (reference_string[0] != '/')
+        {
+                JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'"));
+        }
+
+        // extract the reference tokens:
+        // - slash: position of the last read slash (or end of string)
+        // - start: position after the previous slash
+        for (
+            // search for the first slash after the first character
+                size_t slash = reference_string.find_first_of('/', 1),
+            // set the beginning of the first reference token
+            start = 1;
+            // we can stop if start == string::npos+1 = 0
+            start != 0;
+            // set the beginning of the next reference token
+            // (will eventually be 0 if slash == std::string::npos)
+            start = slash + 1,
+            // find next slash
+                slash = reference_string.find_first_of('/', start))
+        {
+            // use the text between the beginning of the reference token
+            // (start) and the last slash (slash).
+            auto reference_token = reference_string.substr(start, slash - start);
+
+            // check reference tokens are properly escaped
+                for (size_t pos = reference_token.find_first_of('~');
+                    pos != std::string::npos;
+                        pos = reference_token.find_first_of('~', pos + 1))
+            {
+                assert(reference_token[pos] == '~');
+
+                // ~ must be followed by 0 or 1
+                if (pos == reference_token.size() - 1 or
+                        (reference_token[pos + 1] != '0' and
+                         reference_token[pos + 1] != '1'))
+                {
+                        JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'"));
+                }
+            }
+
+            // finally, store the reference token
+            unescape(reference_token);
+            result.push_back(reference_token);
+        }
+
+        return result;
+    }
+
+    private:
+    /*!
+    @brief replace all occurrences of a substring by another string
+
+    @param[in,out] s  the string to manipulate; changed so that all
+                      occurrences of @a f are replaced with @a t
+    @param[in]     f  the substring to replace with @a t
+    @param[in]     t  the string to replace @a f
+
+    @pre The search string @a f must not be empty.
+
+    @since version 2.0.0
+    */
+    static void replace_substring(std::string& s,
+                                  const std::string& f,
+                                  const std::string& t)
+    {
+        assert(not f.empty());
+
+        for (
+            size_t pos = s.find(f);         // find first occurrence of f
+            pos != std::string::npos;       // make sure f was found
+            s.replace(pos, f.size(), t),    // replace with t
+            pos = s.find(f, pos + t.size()) // find next occurrence of f
+        );
+    }
+
+    /// escape tilde and slash
+    static std::string escape(std::string s)
+    {
+        // escape "~"" to "~0" and "/" to "~1"
+        replace_substring(s, "~", "~0");
+        replace_substring(s, "/", "~1");
+        return s;
+    }
+
+    /// unescape tilde and slash
+    static void unescape(std::string& s)
+    {
+        // first transform any occurrence of the sequence '~1' to '/'
+        replace_substring(s, "~1", "/");
+        // then transform any occurrence of the sequence '~0' to '~'
+        replace_substring(s, "~0", "~");
+    }
+
+    /*!
+    @param[in] reference_string  the reference string to the current value
+    @param[in] value             the value to consider
+    @param[in,out] result        the result object to insert values to
+
+    @note Empty objects or arrays are flattened to `null`.
+    */
+    static void flatten(const std::string& reference_string,
+                        const basic_json& value,
+                        basic_json& result)
+    {
+        switch (value.m_type)
+        {
+            case value_t::array:
+            {
+                if (value.m_value.array->empty())
+                {
+                    // flatten empty array as null
+                    result[reference_string] = nullptr;
+                }
+                else
+                {
+                    // iterate array and use index as reference string
+                    for (size_t i = 0; i < value.m_value.array->size(); ++i)
+                    {
+                        flatten(reference_string + "/" + std::to_string(i),
+                                value.m_value.array->operator[](i), result);
+                    }
+                }
+                break;
+            }
+
+            case value_t::object:
+            {
+                if (value.m_value.object->empty())
+                {
+                    // flatten empty object as null
+                    result[reference_string] = nullptr;
+                }
+                else
+                {
+                    // iterate object and use keys as reference string
+                    for (const auto& element : *value.m_value.object)
+                    {
+                        flatten(reference_string + "/" + escape(element.first),
+                                element.second, result);
+                    }
+                }
+                break;
+            }
+
+            default:
+            {
+                // add primitive value with its reference string
+                result[reference_string] = value;
+                break;
+            }
+        }
+    }
+
+    /*!
+    @param[in] value  flattened JSON
+
+    @return unflattened JSON
+    */
+    static basic_json unflatten(const basic_json& value)
+    {
+        if (not value.is_object())
+        {
+                JSON_THROW(std::domain_error("only objects can be unflattened"));
+        }
+
+        basic_json result;
+
+        // iterate the JSON object values
+        for (const auto& element : *value.m_value.object)
+        {
+            if (not element.second.is_primitive())
+            {
+                    JSON_THROW(std::domain_error("values in object must be primitive"));
+            }
+
+            // assign value to reference pointed to by JSON pointer; Note
+            // that if the JSON pointer is "" (i.e., points to the whole
+            // value), function get_and_create returns a reference to
+            // result itself. An assignment will then create a primitive
+            // value.
+            json_pointer(element.first).get_and_create(result) = element.second;
+        }
+
+        return result;
+    }
+
+    private:
+    /// the reference tokens
+    std::vector<std::string> reference_tokens {};
+               };
 
     //////////////////////////
     // JSON Pointer support //
@@ -12684,38 +12695,38 @@ using json = basic_json<>;
 
 // specialization of std::swap, and std::hash
 namespace std
-{
-/*!
-@brief exchanges the values of two JSON objects
-
-@since version 1.0.0
-*/
-template<>
-inline void swap(nlohmann::json& j1,
-                 nlohmann::json& j2) noexcept(
-                     is_nothrow_move_constructible<nlohmann::json>::value and
-                     is_nothrow_move_assignable<nlohmann::json>::value
-                 )
-{
-    j1.swap(j2);
-}
-
-/// hash value for JSON objects
-template<>
-struct hash<nlohmann::json>
 {
     /*!
-    @brief return a hash value for a JSON object
+    @brief exchanges the values of two JSON objects
 
     @since version 1.0.0
     */
-    std::size_t operator()(const nlohmann::json& j) const
+    template<>
+    inline void swap(nlohmann::json& j1,
+                     nlohmann::json& j2) noexcept(
+                         is_nothrow_move_constructible<nlohmann::json>::value and
+                         is_nothrow_move_assignable<nlohmann::json>::value
+                                                   )
+    {
+        j1.swap(j2);
+    }
+
+    /// hash value for JSON objects
+    template<>
+    struct hash<nlohmann::json>
+    {
+        /*!
+        @brief return a hash value for a JSON object
+
+        @since version 1.0.0
+        */
+        std::size_t operator()(const nlohmann::json& j) const
     {
         // a naive hashing via the string representation
         const auto& h = hash<nlohmann::json::string_t>();
         return h(j.dump());
     }
-};
+                        };
 } // namespace std
 
 /*!
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index f552a390..12fde56e 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -106,38 +106,356 @@ SOFTWARE.
 */
 namespace nlohmann
 {
+// alias templates to reduce boilerplate
+template <bool B, typename T = void>
+using enable_if_t = typename std::enable_if<B, T>::type;
 
+template <typename T>
+using remove_cv_t = typename std::remove_cv<T>::type;
 
+template <typename T>
+using remove_reference_t = typename std::remove_reference<T>::type;
+
+template <typename T>
+using uncvref_t = remove_cv_t<remove_reference_t<T>>;
+
+template <bool If, typename Then, typename Else>
+using conditional_t = typename std::conditional<If, Then, Else>::type;
+
+// Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait
+template <typename T>
+using is_scoped_enum =
+    std::integral_constant<bool, not std::is_convertible<T, int>::value and
+    std::is_enum<T>::value>;
+
+template <typename T>
+using is_unscoped_enum =
+    std::integral_constant<bool, std::is_convertible<T, int>::value and
+    std::is_enum<T>::value>;
+
+// TODO update this doc
 /*!
 @brief unnamed namespace with internal helper functions
 @since version 1.0.0
 */
-namespace
+
+namespace detail
 {
+// Very useful construct against boilerplate (more boilerplate needed than in C++17: http://en.cppreference.com/w/cpp/types/void_t)
+template <typename...> struct make_void
+{
+    using type = void;
+};
+template <typename... Ts> using void_t = typename make_void<Ts...>::type;
+
+// Implementation of 3 C++17 constructs: conjunction, disjunction, negation.
+// This is needed to avoid evaluating all the traits in a condition
+//
+// For example: not std::is_same<void, T>::value and has_value_type<T>::value
+// will not compile when T = void (on MSVC at least)
+// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value
+// will stop evaluating if negation<...>::value == false
+//
+// Please note that those constructs must be used with caution, since symbols can
+// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors)
+// Only use it when you have too (see example ahead)
+template <class...> struct conjunction : std::true_type {};
+template <class B1> struct conjunction<B1> : B1 {};
+template <class B1, class... Bn>
+struct conjunction<B1, Bn...>
+: conditional_t<bool(B1::value), conjunction<Bn...>, B1> {};
+
+template <class B> struct negation : std::integral_constant < bool, !B::value > {};
+template <class...> struct disjunction : std::false_type {};
+template <class B1> struct disjunction<B1> : B1 {};
+template <class B1, class... Bn>
+struct disjunction<B1, Bn...>
+: conditional_t<bool(B1::value), B1, disjunction<Bn...>> {};
+
 /*!
 @brief Helper to determine whether there's a key_type for T.
-
 Thus helper is used to tell associative containers apart from other containers
 such as sequence containers. For instance, `std::map` passes the test as it
 contains a `mapped_type`, whereas `std::vector` fails the test.
-
 @sa http://stackoverflow.com/a/7728728/266378
 @since version 1.0.0, overworked in version 2.0.6
 */
-template<typename T>
-struct has_mapped_type
+#define NLOHMANN_JSON_HAS_HELPER(type)                                         \
+    template <typename T> struct has_##type {                                    \
+    private:                                                                     \
+        template <typename U, typename = typename U::type>                         \
+        static int detect(U &&);                                                   \
+        \
+        static void detect(...);                                                   \
+        \
+    public:                                                                      \
+        static constexpr bool value =                                              \
+                std::is_integral<decltype(detect(std::declval<T>()))>::value;          \
+    };
+
+NLOHMANN_JSON_HAS_HELPER(mapped_type)
+NLOHMANN_JSON_HAS_HELPER(key_type)
+NLOHMANN_JSON_HAS_HELPER(value_type)
+NLOHMANN_JSON_HAS_HELPER(iterator)
+
+#undef NLOHMANN_JSON_HAS_HELPER
+
+template <bool B, class RealType, class CompatibleObjectType>
+struct is_compatible_object_type_impl : std::false_type {};
+
+template <class RealType, class CompatibleObjectType>
+struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
+{
+    static constexpr auto value =
+        std::is_constructible<typename RealType::key_type,
+        typename CompatibleObjectType::key_type>::value and
+        std::is_constructible<typename RealType::mapped_type,
+        typename CompatibleObjectType::mapped_type>::value;
+};
+
+template<class RealType, class CompatibleObjectType>
+struct is_compatible_object_type
+{
+    // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void
+    // hence the conjunction
+    static auto constexpr value = is_compatible_object_type_impl <
+                                  conjunction<negation<std::is_same<void, CompatibleObjectType>>,
+                                  has_mapped_type<CompatibleObjectType>,
+                                  has_key_type<CompatibleObjectType>>::value,
+                                  RealType, CompatibleObjectType >::value;
+};
+
+template <bool B, class BasicJson, class CompatibleArrayType>
+struct is_compatible_array_type_impl : std::false_type {};
+
+template <class BasicJson, class CompatibleArrayType>
+struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
+{
+    static constexpr auto value =
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::iterator>::value and
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::const_iterator>::value and
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::reverse_iterator>::value and
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::const_reverse_iterator>::value and
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::array_t::iterator>::value and
+        not std::is_same<CompatibleArrayType,
+        typename BasicJson::array_t::const_iterator>::value;
+};
+
+template <class BasicJson, class CompatibleArrayType>
+struct is_compatible_array_type
+{
+    // the check for CompatibleArrayType = void is done in is_compatible_object_type
+    // but we need the conjunction here as well
+    static auto constexpr value = is_compatible_array_type_impl <
+                                  conjunction<negation<is_compatible_object_type<
+                                  typename BasicJson::object_t, CompatibleArrayType>>,
+                                  has_value_type<CompatibleArrayType>,
+                                  has_iterator<CompatibleArrayType>>::value,
+                                  BasicJson, CompatibleArrayType >::value;
+};
+
+template <bool, typename, typename>
+struct is_compatible_integer_type_impl : std::false_type {};
+
+template <typename RealIntegerType, typename CompatibleNumberIntegerType>
+struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
+{
+    using RealLimits = std::numeric_limits<RealIntegerType>;
+    using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>;
+
+    static constexpr auto value =
+        std::is_constructible<RealIntegerType,
+        CompatibleNumberIntegerType>::value and
+        CompatibleLimits::is_integer and
+        RealLimits::is_signed == CompatibleLimits::is_signed;
+};
+
+template <typename RealIntegerType, typename CompatibleNumberIntegerType>
+struct is_compatible_integer_type
+{
+    static constexpr auto value = is_compatible_integer_type_impl <
+                                  std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType,
+                                  CompatibleNumberIntegerType >::value;
+};
+
+template <typename RealFloat, typename CompatibleFloat>
+struct is_compatible_float_type
+{
+    static constexpr auto value =
+        std::is_constructible<RealFloat, CompatibleFloat>::value and
+        std::is_floating_point<CompatibleFloat>::value;
+};
+
+template <typename T, typename BasicJson>
+struct is_compatible_basic_json_type
+{
+    static auto constexpr value =
+        is_unscoped_enum<T>::value or
+        std::is_same<T, BasicJson>::value or
+        std::is_constructible<typename BasicJson::string_t, T>::value or
+        std::is_same<typename BasicJson::boolean_t, T>::value or
+        is_compatible_array_type<BasicJson, T>::value or
+        is_compatible_object_type<typename BasicJson::object_t, T>::value or
+        is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
+        is_compatible_integer_type<typename BasicJson::number_integer_t,
+        T>::value or
+        is_compatible_integer_type<typename BasicJson::number_unsigned_t,
+        T>::value;
+};
+
+template <typename T, typename BasicJson, typename PrimitiveIterator>
+struct is_basic_json_nested_class
+{
+    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
+                                  std::is_same<T, typename BasicJson::const_iterator>::value or
+                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
+                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
+                                  std::is_same<T, PrimitiveIterator>::value or
+                                  std::is_same<T, typename BasicJson::json_pointer>::value;
+};
+
+// This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
+template <template <typename, typename> class JSONSerializer, typename Json,
+          typename T>
+struct has_from_json
 {
   private:
-    template <typename U, typename = typename U::mapped_type>
+    // also check the return type of from_json
+    template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
+                  std::declval<Json>(), std::declval<T&>()))>::value>>
     static int detect(U&&);
 
     static void detect(...);
+
   public:
-    static constexpr bool value =
-        std::is_integral<decltype(detect(std::declval<T>()))>::value;
+    static constexpr bool value = std::is_integral<decltype(
+                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
-} // namespace
+// This trait checks if JSONSerializer<T>::from_json(json const&) exists
+// this overload is used for non-default-constructible user-defined-types
+template <template <typename, typename> class JSONSerializer, typename Json,
+          typename T>
+struct has_non_default_from_json
+{
+  private:
+    template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
+    static int detect(U&&);
+
+    static void detect(...);
+
+  public:
+    static constexpr bool value = std::is_integral<decltype(
+                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+};
+
+// This trait checks if JSONSerializer<T>::to_json exists
+template <template <typename, typename> class JSONSerializer, typename Json,
+          typename T>
+struct has_to_json
+{
+  private:
+    template <typename U, typename = decltype(uncvref_t<U>::to_json(
+                  std::declval<Json&>(), std::declval<T>()))>
+    static int detect(U&&);
+
+    static void detect(...);
+
+  public:
+    static constexpr bool value = std::is_integral<decltype(
+                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+};
+
+// those declarations are needed to workaround a MSVC bug related to ADL
+// (taken from MSVC-Ranges implementation)
+void to_json();
+void from_json();
+
+struct to_json_fn
+{
+    // is it really useful to mark those as constexpr?
+    template <typename Json, typename T>
+    constexpr auto operator()(Json&& j, T&& val) const
+    noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
+    -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)),
+                void())
+    {
+        return to_json(std::forward<Json>(j), std::forward<T>(val));
+    }
+};
+
+struct from_json_fn
+{
+    template <typename Json, typename T>
+    constexpr auto operator()(Json&& j, T& val) const
+    noexcept(noexcept(from_json(std::forward<Json>(j), val)))
+    -> decltype(from_json(std::forward<Json>(j), val), void())
+    {
+        return from_json(std::forward<Json>(j), val);
+    }
+};
+
+/*!
+@brief helper class to create locales with decimal point
+
+This struct is used a default locale during the JSON serialization. JSON
+requires the decimal point to be `.`, so this function overloads the
+`do_decimal_point()` function to return `.`. This function is called by
+float-to-string conversions to retrieve the decimal separator between integer
+and fractional parts.
+
+@sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315
+@since version 2.0.0
+*/
+struct DecimalSeparator : std::numpunct<char>
+{
+    char do_decimal_point() const
+    {
+        return '.';
+    }
+};
+
+}
+
+// taken from ranges-v3
+// TODO add doc
+template <typename T>
+struct static_const
+{
+    static constexpr T value{};
+};
+
+template <typename T>
+constexpr T static_const<T>::value;
+
+inline namespace
+{
+constexpr auto const& to_json = static_const<detail::to_json_fn>::value;
+constexpr auto const& from_json = static_const<detail::from_json_fn>::value;
+}
+
+// default JSONSerializer template argument, doesn't care about template argument
+// will use ADL for serialization
+template <typename = void, typename = void>
+struct adl_serializer
+{
+    template <typename Json, typename T>
+    static void from_json(Json&& j, T& val)
+    {
+        ::nlohmann::from_json(std::forward<Json>(j), val);
+    }
+
+    template <typename Json, typename T>
+    static void to_json(Json& j, T&& val)
+    {
+        ::nlohmann::to_json(j, std::forward<T>(val));
+    }
+};
 
 /*!
 @brief a class to store JSON values
@@ -226,7 +544,8 @@ template <
     class NumberIntegerType = std::int64_t,
     class NumberUnsignedType = std::uint64_t,
     class NumberFloatType = double,
-    template<typename U> class AllocatorType = std::allocator
+    template<typename U> class AllocatorType = std::allocator,
+    template<typename T, typename SFINAE = void> class JSONSerializer = adl_serializer
     >
 class basic_json
 {
@@ -234,7 +553,8 @@ class basic_json
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
-          AllocatorType>;
+          AllocatorType, JSONSerializer>;
+    class primitive_iterator_t;
 
   public:
     // forward declarations
@@ -1215,11 +1535,11 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<class CompatibleObjectType, typename std::enable_if<
-                 std::is_constructible<typename object_t::key_type, typename CompatibleObjectType::key_type>::value and
-                 std::is_constructible<basic_json, typename CompatibleObjectType::mapped_type>::value, int>::type = 0>
-    basic_json(const CompatibleObjectType& val)
-        : m_type(value_t::object)
+    template <class CompatibleObjectType,
+              enable_if_t<detail::is_compatible_object_type<
+                              object_t, CompatibleObjectType>::value,
+                          int> = 0>
+    basic_json(const CompatibleObjectType& val) : m_type(value_t::object)
     {
         using std::begin;
         using std::end;
@@ -1278,16 +1598,11 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<class CompatibleArrayType, typename std::enable_if<
-                 not std::is_same<CompatibleArrayType, typename basic_json_t::iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename basic_json_t::const_iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename basic_json_t::reverse_iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename basic_json_t::const_reverse_iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename array_t::iterator>::value and
-                 not std::is_same<CompatibleArrayType, typename array_t::const_iterator>::value and
-                 std::is_constructible<basic_json, typename CompatibleArrayType::value_type>::value, int>::type = 0>
-    basic_json(const CompatibleArrayType& val)
-        : m_type(value_t::array)
+    template <class CompatibleArrayType,
+              enable_if_t<detail::is_compatible_array_type<
+                              basic_json_t, CompatibleArrayType>::value,
+                          int> = 0>
+    basic_json(const CompatibleArrayType& val) : m_type(value_t::array)
     {
         using std::begin;
         using std::end;
@@ -1295,6 +1610,28 @@ class basic_json
         assert_invariant();
     }
 
+
+    // constructor chosen when:
+    // - JSONSerializer::to_json exists for type T
+    // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
+    // is_compatible_basic_json_type == not is_user_defined_type
+    template <
+        typename T,
+        enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
+                    not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
+                    not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
+                    not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
+
+                    detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
+                                            uncvref_t<T>, basic_json_t>>,
+                                        detail::has_to_json<JSONSerializer, basic_json,
+                                                uncvref_t<T>>>::value,
+                                                int> = 0 >
+                    basic_json(T && val)
+    {
+        JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
+    }
+
     /*!
     @brief create a string (explicit)
 
@@ -1456,7 +1793,10 @@ class basic_json
 
     @since version 1.0.0
     */
-    basic_json(const int val) noexcept
+
+    // Constructor for unscoped enums (not enum classes)
+    template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0>
+    basic_json(T val) noexcept
         : m_type(value_t::number_integer),
           m_value(static_cast<number_integer_t>(val))
     {
@@ -1488,11 +1828,11 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<typename CompatibleNumberIntegerType, typename std::enable_if<
-                 std::is_constructible<number_integer_t, CompatibleNumberIntegerType>::value and
-                 std::numeric_limits<CompatibleNumberIntegerType>::is_integer and
-                 std::numeric_limits<CompatibleNumberIntegerType>::is_signed,
-                 CompatibleNumberIntegerType>::type = 0>
+    template <
+        typename CompatibleNumberIntegerType,
+        enable_if_t<detail::is_compatible_integer_type<
+                        number_integer_t, CompatibleNumberIntegerType>::value,
+                    int> = 0 >
     basic_json(const CompatibleNumberIntegerType val) noexcept
         : m_type(value_t::number_integer),
           m_value(static_cast<number_integer_t>(val))
@@ -1546,11 +1886,11 @@ class basic_json
 
     @since version 2.0.0
     */
-    template<typename CompatibleNumberUnsignedType, typename std::enable_if <
-                 std::is_constructible<number_unsigned_t, CompatibleNumberUnsignedType>::value and
-                 std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
-                 not std::numeric_limits<CompatibleNumberUnsignedType>::is_signed,
-                 CompatibleNumberUnsignedType>::type = 0>
+    template <
+        typename CompatibleNumberUnsignedType,
+        enable_if_t<detail::is_compatible_integer_type<
+                        number_unsigned_t, CompatibleNumberUnsignedType>::value,
+                    int> = 0 >
     basic_json(const CompatibleNumberUnsignedType val) noexcept
         : m_type(value_t::number_unsigned),
           m_value(static_cast<number_unsigned_t>(val))
@@ -1626,9 +1966,10 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<typename CompatibleNumberFloatType, typename = typename std::enable_if<
-                 std::is_constructible<number_float_t, CompatibleNumberFloatType>::value and
-                 std::is_floating_point<CompatibleNumberFloatType>::value>::type>
+    template <typename CompatibleNumberFloatType,
+              enable_if_t<detail::is_compatible_float_type<
+                              number_float_t, CompatibleNumberFloatType>::value,
+                          int> = 0>
     basic_json(const CompatibleNumberFloatType val) noexcept
         : basic_json(number_float_t(val))
     {
@@ -1788,7 +2129,7 @@ class basic_json
     @since version 1.0.0
     */
     static basic_json array(std::initializer_list<basic_json> init =
-                                std::initializer_list<basic_json>())
+                            std::initializer_list<basic_json>())
     {
         return basic_json(init, false, value_t::array);
     }
@@ -1828,7 +2169,7 @@ class basic_json
     @since version 1.0.0
     */
     static basic_json object(std::initializer_list<basic_json> init =
-                                 std::initializer_list<basic_json>())
+                             std::initializer_list<basic_json>())
     {
         return basic_json(init, false, value_t::object);
     }
@@ -2169,7 +2510,7 @@ class basic_json
         std::is_nothrow_move_assignable<value_t>::value and
         std::is_nothrow_move_constructible<json_value>::value and
         std::is_nothrow_move_assignable<json_value>::value
-    )
+                                       )
     {
         // check that passed value is valid
         other.assert_invariant();
@@ -2182,6 +2523,18 @@ class basic_json
         return *this;
     }
 
+    // this overload is needed, since constructor for udt is explicit
+    template <typename T, enable_if_t<not detail::is_compatible_basic_json_type<
+                                          uncvref_t<T>, basic_json_t>::value and
+                                      detail::has_to_json<JSONSerializer, basic_json_t, uncvref_t<T>>::value>>
+    reference& operator=(T&& val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and
+                                           std::is_nothrow_move_assignable<uncvref_t<T>>::value)
+    {
+        static_assert(sizeof(T) == 0 , "");
+        // I'm not sure this a is good practice...
+        return *this = basic_json_t{std::forward<T>(val)};
+    }
+
     /*!
     @brief destructor
 
@@ -2655,7 +3008,6 @@ class basic_json
     // value access //
     //////////////////
 
-    /// get an object (explicit)
     template<class T, typename std::enable_if<
                  std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
                  std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0>
@@ -2681,13 +3033,16 @@ class basic_json
     }
 
     /// get an array (explicit)
-    template<class T, typename std::enable_if<
-                 std::is_convertible<basic_json_t, typename T::value_type>::value and
-                 not std::is_same<basic_json_t, typename T::value_type>::value and
-                 not std::is_arithmetic<T>::value and
-                 not std::is_convertible<std::string, T>::value and
-                 not has_mapped_type<T>::value, int>::type = 0>
-    T get_impl(T* /*unused*/) const
+    template <
+        class T,
+        typename std::enable_if <
+            std::is_convertible<basic_json_t, typename T::value_type>::value and
+            not std::is_same<basic_json_t,
+                             typename T::value_type>::value and
+            not std::is_arithmetic<T>::value and
+            not std::is_convertible<std::string, T>::value and
+            not detail::has_mapped_type<T>::value,
+            int >::type = 0 >
     {
         if (is_array())
         {
@@ -2727,7 +3082,7 @@ class basic_json
     /// get an array (explicit)
     template<class T, typename std::enable_if<
                  std::is_same<basic_json, typename T::value_type>::value and
-                 not has_mapped_type<T>::value, int>::type = 0>
+                 not detail::has_mapped_type<T>::value, int>::type = 0>
     T get_impl(T* /*unused*/) const
     {
         if (is_array())
@@ -2956,13 +3311,46 @@ class basic_json
 
     @since version 1.0.0
     */
-    template<typename ValueType, typename std::enable_if<
-                 not std::is_pointer<ValueType>::value, int>::type = 0>
-    ValueType get() const
+    template <typename ValueType,
+              enable_if_t<not std::is_pointer<ValueType>::value, int> = 0>
+    auto get() const
+    -> decltype(this->get_impl(static_cast<ValueType*>(nullptr)))
     {
         return get_impl(static_cast<ValueType*>(nullptr));
     }
 
+    template <
+        typename T,
+        enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
+                                            uncvref_t<T>, basic_json_t>>,
+                                        detail::has_from_json<JSONSerializer, basic_json_t,
+                                                uncvref_t<T>>>::value,
+                                                int> = 0 >
+                    auto get() const -> uncvref_t<T>
+    {
+        using type = uncvref_t<T>;
+        static_assert(std::is_default_constructible<type>::value&&
+        std::is_copy_constructible<type>::value,
+        "user-defined types must be DefaultConstructible and "
+        "CopyConstructible when used with get");
+        type ret;
+        JSONSerializer<type>::from_json(*this, ret);
+        return ret;
+    }
+
+    // This overload is chosen for non-default constructible user-defined-types
+    template <
+        typename T,
+        enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
+                                            uncvref_t<T>, basic_json_t>>,
+                                        detail::has_non_default_from_json<JSONSerializer, basic_json_t,
+                                                uncvref_t<T>>>::value,
+                                                short> = 0 >
+                    T get() const
+    {
+        return JSONSerializer<T>::from_json(*this);
+    }
+
     /*!
     @brief get a pointer value (explicit)
 
@@ -3042,8 +3430,8 @@ class basic_json
     {
         // get the type of the PointerType (remove pointer and const)
         using pointee_t = typename std::remove_const<typename
-                          std::remove_pointer<typename
-                          std::remove_const<PointerType>::type>::type>::type;
+                std::remove_pointer<typename
+                                    std::remove_const<PointerType>::type>::type>::type;
         // make sure the type matches the allowed types
         static_assert(
             std::is_same<object_t, pointee_t>::value
@@ -3070,8 +3458,8 @@ class basic_json
     {
         // get the type of the PointerType (remove pointer and const)
         using pointee_t = typename std::remove_const<typename
-                          std::remove_pointer<typename
-                          std::remove_const<PointerType>::type>::type>::type;
+                std::remove_pointer<typename
+                                    std::remove_const<PointerType>::type>::type>::type;
         // make sure the type matches the allowed types
         static_assert(
             std::is_same<object_t, pointee_t>::value
@@ -4124,14 +4512,14 @@ class basic_json
             case value_t::object:
             {
                 result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator,
-                                              last.m_it.object_iterator);
+                        last.m_it.object_iterator);
                 break;
             }
 
             case value_t::array:
             {
                 result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator,
-                                             last.m_it.array_iterator);
+                        last.m_it.array_iterator);
                 break;
             }
 
@@ -5348,9 +5736,9 @@ class basic_json
         // insert to array and return iterator
         iterator result(this);
         result.m_it.array_iterator = m_value.array->insert(
-                                         pos.m_it.array_iterator,
-                                         first.m_it.array_iterator,
-                                         last.m_it.array_iterator);
+            pos.m_it.array_iterator,
+            first.m_it.array_iterator,
+            last.m_it.array_iterator);
         return result;
     }
 
@@ -5420,7 +5808,7 @@ class basic_json
         std::is_nothrow_move_assignable<value_t>::value and
         std::is_nothrow_move_constructible<json_value>::value and
         std::is_nothrow_move_assignable<json_value>::value
-    )
+                                       )
     {
         std::swap(m_type, other.m_type);
         std::swap(m_value, other.m_value);
@@ -8020,13 +8408,13 @@ class basic_json
                         o << (pretty_print ? ",\n" : ",");
                     }
                     o << string_t(new_indent, ' ') << "\""
-                      << escape_string(i->first) << "\":"
-                      << (pretty_print ? " " : "");
-                    i->second.dump(o, pretty_print, indent_step, new_indent);
+                                                    << escape_string(i->first) << "\":"
+                                                            << (pretty_print ? " " : "");
+                                                            i->second.dump(o, pretty_print, indent_step, new_indent);
                 }
 
-                // decrease indentation
-                if (pretty_print)
+                                                        // decrease indentation
+                                                        if (pretty_print)
                 {
                     new_indent -= indent_step;
                     o << "\n";
@@ -8071,16 +8459,16 @@ class basic_json
                 }
 
                 o << string_t(new_indent, ' ') << "]";
-                return;
+                   return;
             }
 
-            case value_t::string:
+               case value_t::string:
             {
                 o << string_t("\"") << escape_string(*m_value.string) << "\"";
-                return;
+                                     return;
             }
 
-            case value_t::boolean:
+                                 case value_t::boolean:
             {
                 o << (m_value.boolean ? "true" : "false");
                 return;
@@ -8154,50 +8542,126 @@ class basic_json
     */
     class primitive_iterator_t
     {
-      public:
-        /// set iterator to a defined beginning
-        void set_begin() noexcept
-        {
-            m_it = begin_value;
-        }
+        public:
 
-        /// set iterator to a defined past the end
-        void set_end() noexcept
-        {
-            m_it = end_value;
-        }
+        difference_type get_value() const noexcept
+    {
+        return m_it;
+    }
+    /// set iterator to a defined beginning
+    void set_begin() noexcept
+    {
+        m_it = begin_value;
+    }
 
-        /// return whether the iterator can be dereferenced
-        constexpr bool is_begin() const noexcept
-        {
-            return (m_it == begin_value);
-        }
+    /// set iterator to a defined past the end
+    void set_end() noexcept
+    {
+        m_it = end_value;
+    }
 
-        /// return whether the iterator is at end
-        constexpr bool is_end() const noexcept
-        {
-            return (m_it == end_value);
-        }
+    /// return whether the iterator can be dereferenced
+    constexpr bool is_begin() const noexcept
+    {
+        return (m_it == begin_value);
+    }
 
-        /// return reference to the value to change and compare
-        operator difference_type& () noexcept
-        {
-            return m_it;
-        }
+    /// return whether the iterator is at end
+    constexpr bool is_end() const noexcept
+    {
+        return (m_it == end_value);
+    }
 
-        /// return value to compare
-        constexpr operator difference_type () const noexcept
-        {
-            return m_it;
-        }
+    friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it == rhs.m_it;
+    }
 
-      private:
-        static constexpr difference_type begin_value = 0;
-        static constexpr difference_type end_value = begin_value + 1;
+    friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return !(lhs == rhs);
+    }
 
-        /// iterator as signed integer type
-        difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
-    };
+    friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it < rhs.m_it;
+    }
+
+    friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it <= rhs.m_it;
+    }
+
+    friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it > rhs.m_it;
+    }
+
+    friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it >= rhs.m_it;
+    }
+
+    primitive_iterator_t operator+(difference_type i)
+    {
+        auto result = *this;
+        result += i;
+        return result;
+    }
+
+    friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+    {
+        return lhs.m_it - rhs.m_it;
+    }
+
+    friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it)
+    {
+        return os << it.m_it;
+    }
+
+    primitive_iterator_t& operator++()
+    {
+        ++m_it;
+        return *this;
+    }
+
+    primitive_iterator_t& operator++(int)
+    {
+        m_it++;
+        return *this;
+    }
+
+    primitive_iterator_t& operator--()
+    {
+        --m_it;
+        return *this;
+    }
+
+    primitive_iterator_t& operator--(int)
+    {
+        m_it--;
+        return *this;
+    }
+
+    primitive_iterator_t& operator+=(difference_type n)
+    {
+        m_it += n;
+        return *this;
+    }
+
+    primitive_iterator_t& operator-=(difference_type n)
+    {
+        m_it -= n;
+        return *this;
+    }
+
+    private:
+    static constexpr difference_type begin_value = 0;
+    static constexpr difference_type end_value = begin_value + 1;
+
+    /// iterator as signed integer type
+    difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
+                                              };
 
     /*!
     @brief an iterator value
@@ -8217,104 +8681,104 @@ class basic_json
 
         /// create an uninitialized internal_iterator
         internal_iterator() noexcept
-            : object_iterator(), array_iterator(), primitive_iterator()
-        {}
+        : object_iterator(), array_iterator(), primitive_iterator()
+    {}
     };
 
     /// proxy class for the iterator_wrapper functions
     template<typename IteratorType>
     class iteration_proxy
     {
-      private:
+        private:
         /// helper class for iteration
         class iteration_proxy_internal
         {
-          private:
+            private:
             /// the iterator
             IteratorType anchor;
             /// an index for arrays (used to create key names)
             size_t array_index = 0;
 
-          public:
+            public:
             explicit iteration_proxy_internal(IteratorType it) noexcept
-                : anchor(it)
-            {}
+            : anchor(it)
+    {}
 
-            /// dereference operator (needed for range-based for)
-            iteration_proxy_internal& operator*()
+    /// dereference operator (needed for range-based for)
+    iteration_proxy_internal& operator*()
+    {
+        return *this;
+    }
+
+    /// increment operator (needed for range-based for)
+    iteration_proxy_internal& operator++()
+    {
+        ++anchor;
+        ++array_index;
+
+        return *this;
+    }
+
+    /// inequality operator (needed for range-based for)
+    bool operator!= (const iteration_proxy_internal& o) const
+    {
+        return anchor != o.anchor;
+    }
+
+    /// return key of the iterator
+    typename basic_json::string_t key() const
+    {
+        assert(anchor.m_object != nullptr);
+
+        switch (anchor.m_object->type())
+        {
+            // use integer array index as key
+            case value_t::array:
             {
-                return *this;
+                return std::to_string(array_index);
             }
 
-            /// increment operator (needed for range-based for)
-            iteration_proxy_internal& operator++()
+            // use key from the object
+            case value_t::object:
             {
-                ++anchor;
-                ++array_index;
-
-                return *this;
+                return anchor.key();
             }
 
-            /// inequality operator (needed for range-based for)
-            bool operator!= (const iteration_proxy_internal& o) const
+            // use an empty key for all primitive types
+            default:
             {
-                return anchor != o.anchor;
+                return "";
             }
+        }
+    }
 
-            /// return key of the iterator
-            typename basic_json::string_t key() const
-            {
-                assert(anchor.m_object != nullptr);
-
-                switch (anchor.m_object->type())
-                {
-                    // use integer array index as key
-                    case value_t::array:
-                    {
-                        return std::to_string(array_index);
-                    }
-
-                    // use key from the object
-                    case value_t::object:
-                    {
-                        return anchor.key();
-                    }
-
-                    // use an empty key for all primitive types
-                    default:
-                    {
-                        return "";
-                    }
-                }
-            }
-
-            /// return value of the iterator
-            typename IteratorType::reference value() const
-            {
-                return anchor.value();
-            }
+    /// return value of the iterator
+    typename IteratorType::reference value() const
+    {
+        return anchor.value();
+    }
         };
 
-        /// the container to iterate
-        typename IteratorType::reference container;
+    /// the container to iterate
+    typename IteratorType::reference container;
 
-      public:
-        /// construct iteration proxy from a container
-        explicit iteration_proxy(typename IteratorType::reference cont)
-            : container(cont)
-        {}
+    public:
+    /// construct iteration proxy from a container
+    explicit iteration_proxy(typename IteratorType::reference cont)
+    : container(cont)
+    {}
 
-        /// return iterator begin (needed for range-based for)
-        iteration_proxy_internal begin() noexcept
-        {
-            return iteration_proxy_internal(container.begin());
-        }
+    /// return iterator begin (needed for range-based for)
+    iteration_proxy_internal begin() noexcept
+    {
+        return iteration_proxy_internal(container.begin());
+    }
 
-        /// return iterator end (needed for range-based for)
-        iteration_proxy_internal end() noexcept
-        {
-            return iteration_proxy_internal(container.end());
-        }
+    /// return iterator end (needed for range-based for)
+    iteration_proxy_internal end() noexcept
+    {
+        return iteration_proxy_internal(container.end());
+    }
     };
 
   public:
@@ -8338,7 +8802,7 @@ class basic_json
     @since version 1.0.0, simplified in version 2.0.9
     */
     template<typename U>
-    class iter_impl : public std::iterator<std::random_access_iterator_tag, U>
+  class iter_impl : public std::iterator<std::random_access_iterator_tag, U>
     {
         /// allow basic_json to access private members
         friend class basic_json;
@@ -8348,19 +8812,19 @@ class basic_json
                       or std::is_same<U, const basic_json>::value,
                       "iter_impl only accepts (const) basic_json");
 
-      public:
+        public:
         /// the type of the values when the iterator is dereferenced
         using value_type = typename basic_json::value_type;
         /// a type to represent differences between iterators
         using difference_type = typename basic_json::difference_type;
         /// defines a pointer to the type iterated over (value_type)
         using pointer = typename std::conditional<std::is_const<U>::value,
-              typename basic_json::const_pointer,
-              typename basic_json::pointer>::type;
+                typename basic_json::const_pointer,
+                typename basic_json::pointer>::type;
         /// defines a reference to the type iterated over (value_type)
         using reference = typename std::conditional<std::is_const<U>::value,
-              typename basic_json::const_reference,
-              typename basic_json::reference>::type;
+                typename basic_json::const_reference,
+                typename basic_json::reference>::type;
         /// the category of the iterator
         using iterator_category = std::bidirectional_iterator_tag;
 
@@ -8374,566 +8838,566 @@ class basic_json
         @post The iterator is initialized; i.e. `m_object != nullptr`.
         */
         explicit iter_impl(pointer object) noexcept
-            : m_object(object)
+        : m_object(object)
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
         {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
-                    m_it.object_iterator = typename object_t::iterator();
-                    break;
-                }
-
-                case basic_json::value_t::array:
-                {
-                    m_it.array_iterator = typename array_t::iterator();
-                    break;
-                }
-
-                default:
-                {
-                    m_it.primitive_iterator = primitive_iterator_t();
-                    break;
-                }
-            }
-        }
-
-        /*
-        Use operator `const_iterator` instead of `const_iterator(const iterator&
-        other) noexcept` to avoid two class definitions for @ref iterator and
-        @ref const_iterator.
-
-        This function is only called if this class is an @ref iterator. If this
-        class is a @ref const_iterator this function is not called.
-        */
-        operator const_iterator() const
-        {
-            const_iterator ret;
-
-            if (m_object)
-            {
-                ret.m_object = m_object;
-                ret.m_it = m_it;
+                m_it.object_iterator = typename object_t::iterator();
+                break;
             }
 
-            return ret;
-        }
-
-        /*!
-        @brief copy constructor
-        @param[in] other  iterator to copy from
-        @note It is not checked whether @a other is initialized.
-        */
-        iter_impl(const iter_impl& other) noexcept
-            : m_object(other.m_object), m_it(other.m_it)
-        {}
-
-        /*!
-        @brief copy assignment
-        @param[in,out] other  iterator to copy from
-        @note It is not checked whether @a other is initialized.
-        */
-        iter_impl& operator=(iter_impl other) noexcept(
-            std::is_nothrow_move_constructible<pointer>::value and
-            std::is_nothrow_move_assignable<pointer>::value and
-            std::is_nothrow_move_constructible<internal_iterator>::value and
-            std::is_nothrow_move_assignable<internal_iterator>::value
-        )
-        {
-            std::swap(m_object, other.m_object);
-            std::swap(m_it, other.m_it);
-            return *this;
-        }
-
-      private:
-        /*!
-        @brief set the iterator to the first value
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        void set_begin() noexcept
-        {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::array:
             {
-                case basic_json::value_t::object:
-                {
-                    m_it.object_iterator = m_object->m_value.object->begin();
-                    break;
-                }
+                m_it.array_iterator = typename array_t::iterator();
+                break;
+            }
 
-                case basic_json::value_t::array:
-                {
-                    m_it.array_iterator = m_object->m_value.array->begin();
-                    break;
-                }
-
-                case basic_json::value_t::null:
-                {
-                    // set to end so begin()==end() is true: null is empty
-                    m_it.primitive_iterator.set_end();
-                    break;
-                }
-
-                default:
-                {
-                    m_it.primitive_iterator.set_begin();
-                    break;
-                }
+            default:
+            {
+                m_it.primitive_iterator = primitive_iterator_t();
+                break;
             }
         }
+    }
 
-        /*!
-        @brief set the iterator past the last value
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        void set_end() noexcept
+    /*
+    Use operator `const_iterator` instead of `const_iterator(const iterator&
+    other) noexcept` to avoid two class definitions for @ref iterator and
+    @ref const_iterator.
+
+    This function is only called if this class is an @ref iterator. If this
+    class is a @ref const_iterator this function is not called.
+    */
+    operator const_iterator() const
+    {
+        const_iterator ret;
+
+        if (m_object)
         {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
-            {
-                case basic_json::value_t::object:
-                {
-                    m_it.object_iterator = m_object->m_value.object->end();
-                    break;
-                }
-
-                case basic_json::value_t::array:
-                {
-                    m_it.array_iterator = m_object->m_value.array->end();
-                    break;
-                }
-
-                default:
-                {
-                    m_it.primitive_iterator.set_end();
-                    break;
-                }
-            }
+            ret.m_object = m_object;
+            ret.m_it = m_it;
         }
 
-      public:
-        /*!
-        @brief return a reference to the value pointed to by the iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        reference operator*() const
+        return ret;
+    }
+
+    /*!
+    @brief copy constructor
+    @param[in] other  iterator to copy from
+    @note It is not checked whether @a other is initialized.
+    */
+    iter_impl(const iter_impl& other) noexcept
+    : m_object(other.m_object), m_it(other.m_it)
+    {}
+
+    /*!
+    @brief copy assignment
+    @param[in,out] other  iterator to copy from
+    @note It is not checked whether @a other is initialized.
+    */
+    iter_impl& operator=(iter_impl other) noexcept(
+        std::is_nothrow_move_constructible<pointer>::value and
+        std::is_nothrow_move_assignable<pointer>::value and
+        std::is_nothrow_move_constructible<internal_iterator>::value and
+        std::is_nothrow_move_assignable<internal_iterator>::value
+                                       )
+    {
+        std::swap(m_object, other.m_object);
+        std::swap(m_it, other.m_it);
+        return *this;
+    }
+
+    private:
+    /*!
+    @brief set the iterator to the first value
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    void set_begin() noexcept
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
         {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
-                    assert(m_it.object_iterator != m_object->m_value.object->end());
-                    return m_it.object_iterator->second;
-                }
+                m_it.object_iterator = m_object->m_value.object->begin();
+                break;
+            }
 
-                case basic_json::value_t::array:
-                {
-                    assert(m_it.array_iterator != m_object->m_value.array->end());
-                    return *m_it.array_iterator;
-                }
+            case basic_json::value_t::array:
+            {
+                m_it.array_iterator = m_object->m_value.array->begin();
+                break;
+            }
 
-                case basic_json::value_t::null:
-                {
+            case basic_json::value_t::null:
+            {
+                // set to end so begin()==end() is true: null is empty
+                m_it.primitive_iterator.set_end();
+                break;
+            }
+
+            default:
+            {
+                m_it.primitive_iterator.set_begin();
+                break;
+            }
+        }
+    }
+
+    /*!
+    @brief set the iterator past the last value
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    void set_end() noexcept
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
+            {
+                m_it.object_iterator = m_object->m_value.object->end();
+                break;
+            }
+
+            case basic_json::value_t::array:
+            {
+                m_it.array_iterator = m_object->m_value.array->end();
+                break;
+            }
+
+            default:
+            {
+                m_it.primitive_iterator.set_end();
+                break;
+            }
+        }
+    }
+
+    public:
+    /*!
+    @brief return a reference to the value pointed to by the iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    reference operator*() const
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
+            {
+                assert(m_it.object_iterator != m_object->m_value.object->end());
+                return m_it.object_iterator->second;
+            }
+
+            case basic_json::value_t::array:
+            {
+                assert(m_it.array_iterator != m_object->m_value.array->end());
+                return *m_it.array_iterator;
+            }
+
+            case basic_json::value_t::null:
+            {
                     JSON_THROW(std::out_of_range("cannot get value"));
-                }
+            }
 
-                default:
+            default:
+            {
+                if (m_it.primitive_iterator.is_begin())
                 {
-                    if (m_it.primitive_iterator.is_begin())
-                    {
-                        return *m_object;
-                    }
+                    return *m_object;
+                }
 
                     JSON_THROW(std::out_of_range("cannot get value"));
-                }
             }
         }
+    }
 
-        /*!
-        @brief dereference the iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        pointer operator->() const
+    /*!
+    @brief dereference the iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    pointer operator->() const
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
         {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
-                    assert(m_it.object_iterator != m_object->m_value.object->end());
-                    return &(m_it.object_iterator->second);
-                }
+                assert(m_it.object_iterator != m_object->m_value.object->end());
+                return &(m_it.object_iterator->second);
+            }
 
-                case basic_json::value_t::array:
-                {
-                    assert(m_it.array_iterator != m_object->m_value.array->end());
-                    return &*m_it.array_iterator;
-                }
+            case basic_json::value_t::array:
+            {
+                assert(m_it.array_iterator != m_object->m_value.array->end());
+                return &*m_it.array_iterator;
+            }
 
-                default:
+            default:
+            {
+                if (m_it.primitive_iterator.is_begin())
                 {
-                    if (m_it.primitive_iterator.is_begin())
-                    {
-                        return m_object;
-                    }
+                    return m_object;
+                }
 
                     JSON_THROW(std::out_of_range("cannot get value"));
-                }
+            }
+        }
+    }
+
+    /*!
+    @brief post-increment (it++)
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl operator++(int)
+    {
+        auto result = *this;
+        ++(*this);
+        return result;
+    }
+
+    /*!
+    @brief pre-increment (++it)
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl& operator++()
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
+            {
+                std::advance(m_it.object_iterator, 1);
+                break;
+            }
+
+            case basic_json::value_t::array:
+            {
+                std::advance(m_it.array_iterator, 1);
+                break;
+            }
+
+            default:
+            {
+                ++m_it.primitive_iterator;
+                break;
             }
         }
 
-        /*!
-        @brief post-increment (it++)
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl operator++(int)
-        {
-            auto result = *this;
-            ++(*this);
-            return result;
-        }
+        return *this;
+    }
 
-        /*!
-        @brief pre-increment (++it)
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl& operator++()
-        {
-            assert(m_object != nullptr);
+    /*!
+    @brief post-decrement (it--)
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl operator--(int)
+    {
+        auto result = *this;
+        --(*this);
+        return result;
+    }
 
-            switch (m_object->m_type)
+    /*!
+    @brief pre-decrement (--it)
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl& operator--()
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
-                    std::advance(m_it.object_iterator, 1);
-                    break;
-                }
-
-                case basic_json::value_t::array:
-                {
-                    std::advance(m_it.array_iterator, 1);
-                    break;
-                }
-
-                default:
-                {
-                    ++m_it.primitive_iterator;
-                    break;
-                }
+                std::advance(m_it.object_iterator, -1);
+                break;
             }
 
-            return *this;
-        }
-
-        /*!
-        @brief post-decrement (it--)
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl operator--(int)
-        {
-            auto result = *this;
-            --(*this);
-            return result;
-        }
-
-        /*!
-        @brief pre-decrement (--it)
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl& operator--()
-        {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::array:
             {
-                case basic_json::value_t::object:
-                {
-                    std::advance(m_it.object_iterator, -1);
-                    break;
-                }
-
-                case basic_json::value_t::array:
-                {
-                    std::advance(m_it.array_iterator, -1);
-                    break;
-                }
-
-                default:
-                {
-                    --m_it.primitive_iterator;
-                    break;
-                }
+                std::advance(m_it.array_iterator, -1);
+                break;
             }
 
-            return *this;
+            default:
+            {
+                --m_it.primitive_iterator;
+                break;
+            }
         }
 
-        /*!
-        @brief  comparison: equal
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator==(const iter_impl& other) const
+        return *this;
+    }
+
+    /*!
+    @brief  comparison: equal
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator==(const iter_impl& other) const
+    {
+        // if objects are not the same, the comparison is undefined
+        if (m_object != other.m_object)
         {
-            // if objects are not the same, the comparison is undefined
-            if (m_object != other.m_object)
-            {
                 JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
-            }
-
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
-            {
-                case basic_json::value_t::object:
-                {
-                    return (m_it.object_iterator == other.m_it.object_iterator);
-                }
-
-                case basic_json::value_t::array:
-                {
-                    return (m_it.array_iterator == other.m_it.array_iterator);
-                }
-
-                default:
-                {
-                    return (m_it.primitive_iterator == other.m_it.primitive_iterator);
-                }
-            }
         }
 
-        /*!
-        @brief  comparison: not equal
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator!=(const iter_impl& other) const
-        {
-            return not operator==(other);
-        }
+        assert(m_object != nullptr);
 
-        /*!
-        @brief  comparison: smaller
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator<(const iter_impl& other) const
+        switch (m_object->m_type)
         {
-            // if objects are not the same, the comparison is undefined
-            if (m_object != other.m_object)
+            case basic_json::value_t::object:
             {
+                return (m_it.object_iterator == other.m_it.object_iterator);
+            }
+
+            case basic_json::value_t::array:
+            {
+                return (m_it.array_iterator == other.m_it.array_iterator);
+            }
+
+            default:
+            {
+                return (m_it.primitive_iterator == other.m_it.primitive_iterator);
+            }
+        }
+    }
+
+    /*!
+    @brief  comparison: not equal
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator!=(const iter_impl& other) const
+    {
+        return not operator==(other);
+    }
+
+    /*!
+    @brief  comparison: smaller
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator<(const iter_impl& other) const
+    {
+        // if objects are not the same, the comparison is undefined
+        if (m_object != other.m_object)
+        {
                 JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
-            }
+        }
 
-            assert(m_object != nullptr);
+        assert(m_object != nullptr);
 
-            switch (m_object->m_type)
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
                     JSON_THROW(std::domain_error("cannot compare order of object iterators"));
-                }
+            }
 
-                case basic_json::value_t::array:
-                {
-                    return (m_it.array_iterator < other.m_it.array_iterator);
-                }
+            case basic_json::value_t::array:
+            {
+                return (m_it.array_iterator < other.m_it.array_iterator);
+            }
 
-                default:
-                {
-                    return (m_it.primitive_iterator < other.m_it.primitive_iterator);
-                }
+            default:
+            {
+                return (m_it.primitive_iterator < other.m_it.primitive_iterator);
             }
         }
+    }
 
-        /*!
-        @brief  comparison: less than or equal
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator<=(const iter_impl& other) const
+    /*!
+    @brief  comparison: less than or equal
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator<=(const iter_impl& other) const
+    {
+        return not other.operator < (*this);
+    }
+
+    /*!
+    @brief  comparison: greater than
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator>(const iter_impl& other) const
+    {
+        return not operator<=(other);
+    }
+
+    /*!
+    @brief  comparison: greater than or equal
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    bool operator>=(const iter_impl& other) const
+    {
+        return not operator<(other);
+    }
+
+    /*!
+    @brief  add to iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl& operator+=(difference_type i)
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
         {
-            return not other.operator < (*this);
-        }
-
-        /*!
-        @brief  comparison: greater than
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator>(const iter_impl& other) const
-        {
-            return not operator<=(other);
-        }
-
-        /*!
-        @brief  comparison: greater than or equal
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        bool operator>=(const iter_impl& other) const
-        {
-            return not operator<(other);
-        }
-
-        /*!
-        @brief  add to iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl& operator+=(difference_type i)
-        {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
                     JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
-                }
-
-                case basic_json::value_t::array:
-                {
-                    std::advance(m_it.array_iterator, i);
-                    break;
-                }
-
-                default:
-                {
-                    m_it.primitive_iterator += i;
-                    break;
-                }
             }
 
-            return *this;
-        }
-
-        /*!
-        @brief  subtract from iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl& operator-=(difference_type i)
-        {
-            return operator+=(-i);
-        }
-
-        /*!
-        @brief  add to iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl operator+(difference_type i)
-        {
-            auto result = *this;
-            result += i;
-            return result;
-        }
-
-        /*!
-        @brief  subtract from iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        iter_impl operator-(difference_type i)
-        {
-            auto result = *this;
-            result -= i;
-            return result;
-        }
-
-        /*!
-        @brief  return difference
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        difference_type operator-(const iter_impl& other) const
-        {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::array:
+            {
+                std::advance(m_it.array_iterator, i);
+                break;
+            }
+
+            default:
+            {
+                m_it.primitive_iterator += i;
+                break;
+            }
+        }
+
+        return *this;
+    }
+
+    /*!
+    @brief  subtract from iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl& operator-=(difference_type i)
+    {
+        return operator+=(-i);
+    }
+
+    /*!
+    @brief  add to iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl operator+(difference_type i)
+    {
+        auto result = *this;
+        result += i;
+        return result;
+    }
+
+    /*!
+    @brief  subtract from iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    iter_impl operator-(difference_type i)
+    {
+        auto result = *this;
+        result -= i;
+        return result;
+    }
+
+    /*!
+    @brief  return difference
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    difference_type operator-(const iter_impl& other) const
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
+        {
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
                     JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
-                }
+            }
 
-                case basic_json::value_t::array:
-                {
-                    return m_it.array_iterator - other.m_it.array_iterator;
-                }
+            case basic_json::value_t::array:
+            {
+                return m_it.array_iterator - other.m_it.array_iterator;
+            }
 
-                default:
-                {
-                    return m_it.primitive_iterator - other.m_it.primitive_iterator;
-                }
+            default:
+            {
+                return m_it.primitive_iterator - other.m_it.primitive_iterator;
             }
         }
+    }
 
-        /*!
-        @brief  access to successor
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        reference operator[](difference_type n) const
+    /*!
+    @brief  access to successor
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    reference operator[](difference_type n) const
+    {
+        assert(m_object != nullptr);
+
+        switch (m_object->m_type)
         {
-            assert(m_object != nullptr);
-
-            switch (m_object->m_type)
+            case basic_json::value_t::object:
             {
-                case basic_json::value_t::object:
-                {
                     JSON_THROW(std::domain_error("cannot use operator[] for object iterators"));
-                }
+            }
 
-                case basic_json::value_t::array:
-                {
-                    return *std::next(m_it.array_iterator, n);
-                }
+            case basic_json::value_t::array:
+            {
+                return *std::next(m_it.array_iterator, n);
+            }
 
-                case basic_json::value_t::null:
-                {
+            case basic_json::value_t::null:
+            {
                     JSON_THROW(std::out_of_range("cannot get value"));
-                }
+            }
 
-                default:
+            default:
+            {
+                if (m_it.primitive_iterator.get_value() == -n)
                 {
-                    if (m_it.primitive_iterator == -n)
-                    {
-                        return *m_object;
-                    }
+                    return *m_object;
+                }
 
                     JSON_THROW(std::out_of_range("cannot get value"));
-                }
             }
         }
+    }
 
-        /*!
-        @brief  return the key of an object iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        typename object_t::key_type key() const
+    /*!
+    @brief  return the key of an object iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    typename object_t::key_type key() const
+    {
+        assert(m_object != nullptr);
+
+        if (m_object->is_object())
         {
-            assert(m_object != nullptr);
-
-            if (m_object->is_object())
-            {
-                return m_it.object_iterator->first;
-            }
+            return m_it.object_iterator->first;
+        }
 
             JSON_THROW(std::domain_error("cannot use key() for non-object iterators"));
-        }
+    }
 
-        /*!
-        @brief  return the value of an iterator
-        @pre The iterator is initialized; i.e. `m_object != nullptr`.
-        */
-        reference value() const
-        {
-            return operator*();
-        }
+    /*!
+    @brief  return the value of an iterator
+    @pre The iterator is initialized; i.e. `m_object != nullptr`.
+    */
+    reference value() const
+    {
+        return operator*();
+    }
 
-      private:
-        /// associated JSON instance
-        pointer m_object = nullptr;
-        /// the actual iterator of the associated instance
-        internal_iterator m_it = internal_iterator();
-    };
+    private:
+    /// associated JSON instance
+    pointer m_object = nullptr;
+    /// the actual iterator of the associated instance
+    internal_iterator m_it = internal_iterator();
+                       };
 
     /*!
     @brief a template for a reverse iterator class
@@ -8953,9 +9417,9 @@ class basic_json
     @since version 1.0.0
     */
     template<typename Base>
-    class json_reverse_iterator : public std::reverse_iterator<Base>
+  class json_reverse_iterator : public std::reverse_iterator<Base>
     {
-      public:
+        public:
         /// shortcut to the reverse iterator adaptor
         using base_iterator = std::reverse_iterator<Base>;
         /// the reference type for the pointed-to element
@@ -8963,89 +9427,89 @@ class basic_json
 
         /// create reverse iterator from iterator
         json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept
-            : base_iterator(it)
-        {}
+        : base_iterator(it)
+    {}
 
-        /// create reverse iterator from base class
-        json_reverse_iterator(const base_iterator& it) noexcept
-            : base_iterator(it)
-        {}
+    /// create reverse iterator from base class
+    json_reverse_iterator(const base_iterator& it) noexcept
+    : base_iterator(it)
+    {}
 
-        /// post-increment (it++)
-        json_reverse_iterator operator++(int)
-        {
-            return base_iterator::operator++(1);
-        }
+    /// post-increment (it++)
+    json_reverse_iterator operator++(int)
+    {
+        return base_iterator::operator++(1);
+    }
 
-        /// pre-increment (++it)
-        json_reverse_iterator& operator++()
-        {
-            base_iterator::operator++();
-            return *this;
-        }
+    /// pre-increment (++it)
+    json_reverse_iterator& operator++()
+    {
+        base_iterator::operator++();
+        return *this;
+    }
 
-        /// post-decrement (it--)
-        json_reverse_iterator operator--(int)
-        {
-            return base_iterator::operator--(1);
-        }
+    /// post-decrement (it--)
+    json_reverse_iterator operator--(int)
+    {
+        return base_iterator::operator--(1);
+    }
 
-        /// pre-decrement (--it)
-        json_reverse_iterator& operator--()
-        {
-            base_iterator::operator--();
-            return *this;
-        }
+    /// pre-decrement (--it)
+    json_reverse_iterator& operator--()
+    {
+        base_iterator::operator--();
+        return *this;
+    }
 
-        /// add to iterator
-        json_reverse_iterator& operator+=(difference_type i)
-        {
-            base_iterator::operator+=(i);
-            return *this;
-        }
+    /// add to iterator
+    json_reverse_iterator& operator+=(difference_type i)
+    {
+        base_iterator::operator+=(i);
+        return *this;
+    }
 
-        /// add to iterator
-        json_reverse_iterator operator+(difference_type i) const
-        {
-            auto result = *this;
-            result += i;
-            return result;
-        }
+    /// add to iterator
+    json_reverse_iterator operator+(difference_type i) const
+    {
+        auto result = *this;
+        result += i;
+        return result;
+    }
 
-        /// subtract from iterator
-        json_reverse_iterator operator-(difference_type i) const
-        {
-            auto result = *this;
-            result -= i;
-            return result;
-        }
+    /// subtract from iterator
+    json_reverse_iterator operator-(difference_type i) const
+    {
+        auto result = *this;
+        result -= i;
+        return result;
+    }
 
-        /// return difference
-        difference_type operator-(const json_reverse_iterator& other) const
-        {
-            return this->base() - other.base();
-        }
+    /// return difference
+    difference_type operator-(const json_reverse_iterator& other) const
+    {
+        return this->base() - other.base();
+    }
 
-        /// access to successor
-        reference operator[](difference_type n) const
-        {
-            return *(this->operator+(n));
-        }
+    /// access to successor
+    reference operator[](difference_type n) const
+    {
+        return *(this->operator+(n));
+    }
 
-        /// return the key of an object iterator
-        typename object_t::key_type key() const
-        {
-            auto it = --this->base();
-            return it.key();
-        }
+    /// return the key of an object iterator
+    typename object_t::key_type key() const
+    {
+        auto it = --this->base();
+        return it.key();
+    }
 
-        /// return the value of an iterator
-        reference value() const
-        {
-            auto it = --this->base();
-            return it.operator * ();
-        }
-    };
+    /// return the value of an iterator
+    reference value() const
+    {
+        auto it = --this->base();
+        return it.operator * ();
+    }
+                                                   };
 
 
   private:
@@ -9062,761 +9526,761 @@ class basic_json
     */
     class lexer
     {
-      public:
+        public:
         /// token types for the parser
         enum class token_type
-        {
-            uninitialized,   ///< indicating the scanner is uninitialized
-            literal_true,    ///< the `true` literal
-            literal_false,   ///< the `false` literal
-            literal_null,    ///< the `null` literal
-            value_string,    ///< a string -- use get_string() for actual value
-            value_number,    ///< a number -- use get_number() for actual value
-            begin_array,     ///< the character for array begin `[`
-            begin_object,    ///< the character for object begin `{`
-            end_array,       ///< the character for array end `]`
-            end_object,      ///< the character for object end `}`
-            name_separator,  ///< the name separator `:`
-            value_separator, ///< the value separator `,`
-            parse_error,     ///< indicating a parse error
-            end_of_input     ///< indicating the end of the input buffer
-        };
+    {
+        uninitialized,   ///< indicating the scanner is uninitialized
+        literal_true,    ///< the `true` literal
+        literal_false,   ///< the `false` literal
+        literal_null,    ///< the `null` literal
+        value_string,    ///< a string -- use get_string() for actual value
+        value_number,    ///< a number -- use get_number() for actual value
+        begin_array,     ///< the character for array begin `[`
+        begin_object,    ///< the character for object begin `{`
+        end_array,       ///< the character for array end `]`
+        end_object,      ///< the character for object end `}`
+        name_separator,  ///< the name separator `:`
+        value_separator, ///< the value separator `,`
+        parse_error,     ///< indicating a parse error
+        end_of_input     ///< indicating the end of the input buffer
+    };
 
-        /// the char type to use in the lexer
-        using lexer_char_t = unsigned char;
+    /// the char type to use in the lexer
+    using lexer_char_t = unsigned char;
 
-        /// a lexer from a buffer with given length
-        lexer(const lexer_char_t* buff, const size_t len) noexcept
-            : m_content(buff)
-        {
-            assert(m_content != nullptr);
-            m_start = m_cursor = m_content;
-            m_limit = m_content + len;
-        }
+    /// a lexer from a buffer with given length
+    lexer(const lexer_char_t* buff, const size_t len) noexcept
+    : m_content(buff)
+    {
+        assert(m_content != nullptr);
+        m_start = m_cursor = m_content;
+        m_limit = m_content + len;
+    }
 
-        /// a lexer from an input stream
-        explicit lexer(std::istream& s)
-            : m_stream(&s), m_line_buffer()
+    /// a lexer from an input stream
+    explicit lexer(std::istream& s)
+    : m_stream(&s), m_line_buffer()
+    {
+        // immediately abort if stream is erroneous
+        if (s.fail())
         {
-            // immediately abort if stream is erroneous
-            if (s.fail())
-            {
                 JSON_THROW(std::invalid_argument("stream error"));
-            }
-
-            // fill buffer
-            fill_line_buffer();
-
-            // skip UTF-8 byte-order mark
-            if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF")
-            {
-                m_line_buffer[0] = ' ';
-                m_line_buffer[1] = ' ';
-                m_line_buffer[2] = ' ';
-            }
         }
 
-        // switch off unwanted functions (due to pointer members)
-        lexer() = delete;
-        lexer(const lexer&) = delete;
-        lexer operator=(const lexer&) = delete;
+        // fill buffer
+        fill_line_buffer();
 
-        /*!
-        @brief create a string from one or two Unicode code points
-
-        There are two cases: (1) @a codepoint1 is in the Basic Multilingual
-        Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2)
-        @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to
-        represent a code point above U+FFFF.
-
-        @param[in] codepoint1  the code point (can be high surrogate)
-        @param[in] codepoint2  the code point (can be low surrogate or 0)
-
-        @return string representation of the code point; the length of the
-        result string is between 1 and 4 characters.
-
-        @throw std::out_of_range if code point is > 0x10ffff; example: `"code
-        points above 0x10FFFF are invalid"`
-        @throw std::invalid_argument if the low surrogate is invalid; example:
-        `""missing or wrong low surrogate""`
-
-        @complexity Constant.
-
-        @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code>
-        */
-        static string_t to_unicode(const std::size_t codepoint1,
-                                   const std::size_t codepoint2 = 0)
+        // skip UTF-8 byte-order mark
+        if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF")
         {
-            // calculate the code point from the given code points
-            std::size_t codepoint = codepoint1;
+            m_line_buffer[0] = ' ';
+            m_line_buffer[1] = ' ';
+            m_line_buffer[2] = ' ';
+        }
+    }
 
-            // check if codepoint1 is a high surrogate
-            if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
+    // switch off unwanted functions (due to pointer members)
+    lexer() = delete;
+    lexer(const lexer&) = delete;
+    lexer operator=(const lexer&) = delete;
+
+    /*!
+    @brief create a string from one or two Unicode code points
+
+    There are two cases: (1) @a codepoint1 is in the Basic Multilingual
+    Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2)
+    @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to
+    represent a code point above U+FFFF.
+
+    @param[in] codepoint1  the code point (can be high surrogate)
+    @param[in] codepoint2  the code point (can be low surrogate or 0)
+
+    @return string representation of the code point; the length of the
+    result string is between 1 and 4 characters.
+
+    @throw std::out_of_range if code point is > 0x10ffff; example: `"code
+    points above 0x10FFFF are invalid"`
+    @throw std::invalid_argument if the low surrogate is invalid; example:
+    `""missing or wrong low surrogate""`
+
+    @complexity Constant.
+
+    @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code>
+    */
+    static string_t to_unicode(const std::size_t codepoint1,
+                               const std::size_t codepoint2 = 0)
+    {
+        // calculate the code point from the given code points
+        std::size_t codepoint = codepoint1;
+
+        // check if codepoint1 is a high surrogate
+        if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
+        {
+            // check if codepoint2 is a low surrogate
+            if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
+            {
+                codepoint =
+                // high surrogate occupies the most significant 22 bits
+                (codepoint1 << 10)
+                 // low surrogate occupies the least significant 15 bits
+                 + codepoint2
+                 // there is still the 0xD800, 0xDC00 and 0x10000 noise
+                 // in the result so we have to subtract with:
+                 // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00
+                 - 0x35FDC00;
+            }
+            else
             {
-                // check if codepoint2 is a low surrogate
-                if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
-                {
-                    codepoint =
-                        // high surrogate occupies the most significant 22 bits
-                        (codepoint1 << 10)
-                        // low surrogate occupies the least significant 15 bits
-                        + codepoint2
-                        // there is still the 0xD800, 0xDC00 and 0x10000 noise
-                        // in the result so we have to subtract with:
-                        // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00
-                        - 0x35FDC00;
-                }
-                else
-                {
                     JSON_THROW(std::invalid_argument("missing or wrong low surrogate"));
-                }
             }
+        }
 
-            string_t result;
+        string_t result;
 
-            if (codepoint < 0x80)
-            {
-                // 1-byte characters: 0xxxxxxx (ASCII)
-                result.append(1, static_cast<typename string_t::value_type>(codepoint));
-            }
-            else if (codepoint <= 0x7ff)
-            {
-                // 2-byte characters: 110xxxxx 10xxxxxx
-                result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-            }
-            else if (codepoint <= 0xffff)
-            {
-                // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx
-                result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-            }
-            else if (codepoint <= 0x10ffff)
-            {
-                // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
-                result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
-                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-            }
-            else
-            {
+        if (codepoint < 0x80)
+        {
+            // 1-byte characters: 0xxxxxxx (ASCII)
+            result.append(1, static_cast<typename string_t::value_type>(codepoint));
+        }
+        else if (codepoint <= 0x7ff)
+        {
+            // 2-byte characters: 110xxxxx 10xxxxxx
+            result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+        }
+        else if (codepoint <= 0xffff)
+        {
+            // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx
+            result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+        }
+        else if (codepoint <= 0x10ffff)
+        {
+            // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+            result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+        }
+        else
+        {
                 JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid"));
-            }
-
-            return result;
         }
 
-        /// return name of values of type token_type (only used for errors)
-        static std::string token_type_name(const token_type t)
+        return result;
+    }
+
+    /// return name of values of type token_type (only used for errors)
+    static std::string token_type_name(const token_type t)
+    {
+        switch (t)
         {
-            switch (t)
+            case token_type::uninitialized:
+                return "<uninitialized>";
+            case token_type::literal_true:
+                return "true literal";
+            case token_type::literal_false:
+                return "false literal";
+            case token_type::literal_null:
+                return "null literal";
+            case token_type::value_string:
+                return "string literal";
+            case token_type::value_number:
+                return "number literal";
+            case token_type::begin_array:
+                return "'['";
+            case token_type::begin_object:
+                return "'{'";
+            case token_type::end_array:
+                return "']'";
+            case token_type::end_object:
+                return "'}'";
+            case token_type::name_separator:
+                return "':'";
+            case token_type::value_separator:
+                return "','";
+            case token_type::parse_error:
+                return "<parse error>";
+            case token_type::end_of_input:
+                return "end of input";
+            default:
             {
-                case token_type::uninitialized:
-                    return "<uninitialized>";
-                case token_type::literal_true:
-                    return "true literal";
-                case token_type::literal_false:
-                    return "false literal";
-                case token_type::literal_null:
-                    return "null literal";
-                case token_type::value_string:
-                    return "string literal";
-                case token_type::value_number:
-                    return "number literal";
-                case token_type::begin_array:
-                    return "'['";
-                case token_type::begin_object:
-                    return "'{'";
-                case token_type::end_array:
-                    return "']'";
-                case token_type::end_object:
-                    return "'}'";
-                case token_type::name_separator:
-                    return "':'";
-                case token_type::value_separator:
-                    return "','";
-                case token_type::parse_error:
-                    return "<parse error>";
-                case token_type::end_of_input:
-                    return "end of input";
-                default:
-                {
-                    // catch non-enum values
-                    return "unknown token"; // LCOV_EXCL_LINE
-                }
+                // catch non-enum values
+                return "unknown token"; // LCOV_EXCL_LINE
             }
         }
+    }
 
-        /*!
-        This function implements a scanner for JSON. It is specified using
-        regular expressions that try to follow RFC 7159 as close as possible.
-        These regular expressions are then translated into a minimized
-        deterministic finite automaton (DFA) by the tool
-        [re2c](http://re2c.org). As a result, the translated code for this
-        function consists of a large block of code with `goto` jumps.
+    /*!
+    This function implements a scanner for JSON. It is specified using
+    regular expressions that try to follow RFC 7159 as close as possible.
+    These regular expressions are then translated into a minimized
+    deterministic finite automaton (DFA) by the tool
+    [re2c](http://re2c.org). As a result, the translated code for this
+    function consists of a large block of code with `goto` jumps.
 
-        @return the class of the next token read from the buffer
+    @return the class of the next token read from the buffer
 
-        @complexity Linear in the length of the input.\n
+    @complexity Linear in the length of the input.\n
 
-        Proposition: The loop below will always terminate for finite input.\n
+    Proposition: The loop below will always terminate for finite input.\n
 
-        Proof (by contradiction): Assume a finite input. To loop forever, the
-        loop must never hit code with a `break` statement. The only code
-        snippets without a `break` statement are the continue statements for
-        whitespace and byte-order-marks. To loop forever, the input must be an
-        infinite sequence of whitespace or byte-order-marks. This contradicts
-        the assumption of finite input, q.e.d.
-        */
-        token_type scan()
+    Proof (by contradiction): Assume a finite input. To loop forever, the
+    loop must never hit code with a `break` statement. The only code
+    snippets without a `break` statement are the continue statements for
+    whitespace and byte-order-marks. To loop forever, the input must be an
+    infinite sequence of whitespace or byte-order-marks. This contradicts
+    the assumption of finite input, q.e.d.
+    */
+    token_type scan()
+    {
+        while (true)
         {
-            while (true)
-            {
-                // pointer for backtracking information
-                m_marker = nullptr;
+            // pointer for backtracking information
+            m_marker = nullptr;
 
-                // remember the begin of the token
-                m_start = m_cursor;
-                assert(m_start != nullptr);
+            // remember the begin of the token
+            m_start = m_cursor;
+            assert(m_start != nullptr);
 
-                /*!re2c
-                    re2c:define:YYCTYPE      = lexer_char_t;
-                    re2c:define:YYCURSOR     = m_cursor;
-                    re2c:define:YYLIMIT      = m_limit;
-                    re2c:define:YYMARKER     = m_marker;
-                    re2c:define:YYFILL       = "fill_line_buffer(@@); // LCOV_EXCL_LINE";
-                    re2c:define:YYFILL:naked = 1;
-                    re2c:yyfill:enable       = 1;
-                    re2c:indent:string       = "    ";
-                    re2c:indent:top          = 1;
-                    re2c:labelprefix         = "basic_json_parser_";
+            /*!re2c
+                re2c:define:YYCTYPE      = lexer_char_t;
+                re2c:define:YYCURSOR     = m_cursor;
+                re2c:define:YYLIMIT      = m_limit;
+                re2c:define:YYMARKER     = m_marker;
+                re2c:define:YYFILL       = "fill_line_buffer(@@); // LCOV_EXCL_LINE";
+                re2c:define:YYFILL:naked = 1;
+                re2c:yyfill:enable       = 1;
+                re2c:indent:string       = "    ";
+                re2c:indent:top          = 1;
+                re2c:labelprefix         = "basic_json_parser_";
 
-                    // ignore whitespace
-                    ws = [ \t\n\r]+;
-                    ws   { continue; }
+                // ignore whitespace
+                ws = [ \t\n\r]+;
+                ws   { continue; }
 
-                    // structural characters
-                    "[" { last_token_type = token_type::begin_array; break; }
-                    "]" { last_token_type = token_type::end_array; break; }
-                    "{" { last_token_type = token_type::begin_object; break; }
-                    "}" { last_token_type = token_type::end_object; break; }
-                    "," { last_token_type = token_type::value_separator; break; }
-                    ":" { last_token_type = token_type::name_separator; break; }
+                // structural characters
+                "[" { last_token_type = token_type::begin_array; break; }
+                "]" { last_token_type = token_type::end_array; break; }
+                "{" { last_token_type = token_type::begin_object; break; }
+                "}" { last_token_type = token_type::end_object; break; }
+                "," { last_token_type = token_type::value_separator; break; }
+                ":" { last_token_type = token_type::name_separator; break; }
 
-                    // literal names
-                    "null"  { last_token_type = token_type::literal_null; break; }
-                    "true"  { last_token_type = token_type::literal_true; break; }
-                    "false" { last_token_type = token_type::literal_false; break; }
+                // literal names
+                "null"  { last_token_type = token_type::literal_null; break; }
+                "true"  { last_token_type = token_type::literal_true; break; }
+                "false" { last_token_type = token_type::literal_false; break; }
 
-                    // number
-                    decimal_point = ".";
-                    digit         = [0-9];
-                    digit_1_9     = [1-9];
-                    e             = "e" | "E";
-                    minus         = "-";
-                    plus          = "+";
-                    zero          = "0";
-                    exp           = e (minus | plus)? digit+;
-                    frac          = decimal_point digit+;
-                    int           = (zero | digit_1_9 digit*);
-                    number        = minus? int frac? exp?;
-                    number        { last_token_type = token_type::value_number; break; }
+                // number
+                decimal_point = ".";
+                digit         = [0-9];
+                digit_1_9     = [1-9];
+                e             = "e" | "E";
+                minus         = "-";
+                plus          = "+";
+                zero          = "0";
+                exp           = e (minus | plus)? digit+;
+                frac          = decimal_point digit+;
+                int           = (zero | digit_1_9 digit*);
+                number        = minus? int frac? exp?;
+                number        { last_token_type = token_type::value_number; break; }
 
-                    // string
-                    quotation_mark  = "\"";
-                    escape          = "\\";
-                    unescaped       = [^"\\\x00-\x1f];
-                    single_escaped  = "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t";
-                    unicode_escaped = "u" [0-9a-fA-F]{4};
-                    escaped         = escape (single_escaped | unicode_escaped);
-                    char            = unescaped | escaped;
-                    string          = quotation_mark char* quotation_mark;
-                    string          { last_token_type = token_type::value_string; break; }
+                // string
+                quotation_mark  = "\"";
+                escape          = "\\";
+                unescaped       = [^"\\\x00-\x1f];
+                single_escaped  = "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t";
+                unicode_escaped = "u" [0-9a-fA-F]{4};
+                escaped         = escape (single_escaped | unicode_escaped);
+                char            = unescaped | escaped;
+                string          = quotation_mark char* quotation_mark;
+                string          { last_token_type = token_type::value_string; break; }
 
-                    // end of file
-                    "\x00"         { last_token_type = token_type::end_of_input; break; }
+                // end of file
+                "\x00"         { last_token_type = token_type::end_of_input; break; }
 
-                    // anything else is an error
-                    *              { last_token_type = token_type::parse_error; break; }
-                */
-            }
-
-            return last_token_type;
+                // anything else is an error
+                *              { last_token_type = token_type::parse_error; break; }
+            */
         }
 
-        /*!
-        @brief append data from the stream to the line buffer
+        return last_token_type;
+    }
 
-        This function is called by the scan() function when the end of the
-        buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be
-        incremented without leaving the limits of the line buffer. Note re2c
-        decides when to call this function.
+    /*!
+    @brief append data from the stream to the line buffer
 
-        If the lexer reads from contiguous storage, there is no trailing null
-        byte. Therefore, this function must make sure to add these padding
-        null bytes.
+    This function is called by the scan() function when the end of the
+    buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be
+    incremented without leaving the limits of the line buffer. Note re2c
+    decides when to call this function.
 
-        If the lexer reads from an input stream, this function reads the next
-        line of the input.
+    If the lexer reads from contiguous storage, there is no trailing null
+    byte. Therefore, this function must make sure to add these padding
+    null bytes.
 
-        @pre
-            p p p p p p u u u u u x . . . . . .
-            ^           ^       ^   ^
-            m_content   m_start |   m_limit
-                                m_cursor
+    If the lexer reads from an input stream, this function reads the next
+    line of the input.
 
-        @post
-            u u u u u x x x x x x x . . . . . .
-            ^       ^               ^
-            |       m_cursor        m_limit
-            m_start
-            m_content
-        */
-        void fill_line_buffer(size_t n = 0)
-        {
-            // if line buffer is used, m_content points to its data
-            assert(m_line_buffer.empty()
-                   or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()));
+    @pre
+        p p p p p p u u u u u x . . . . . .
+        ^           ^       ^   ^
+        m_content   m_start |   m_limit
+                            m_cursor
 
-            // if line buffer is used, m_limit is set past the end of its data
-            assert(m_line_buffer.empty()
-                   or m_limit == m_content + m_line_buffer.size());
+    @post
+        u u u u u x x x x x x x . . . . . .
+        ^       ^               ^
+        |       m_cursor        m_limit
+        m_start
+        m_content
+    */
+    void fill_line_buffer(size_t n = 0)
+    {
+        // if line buffer is used, m_content points to its data
+        assert(m_line_buffer.empty()
+               or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()));
 
-            // pointer relationships
-            assert(m_content <= m_start);
-            assert(m_start <= m_cursor);
-            assert(m_cursor <= m_limit);
-            assert(m_marker == nullptr or m_marker  <= m_limit);
+        // if line buffer is used, m_limit is set past the end of its data
+        assert(m_line_buffer.empty()
+               or m_limit == m_content + m_line_buffer.size());
 
-            // number of processed characters (p)
+        // pointer relationships
+        assert(m_content <= m_start);
+        assert(m_start <= m_cursor);
+        assert(m_cursor <= m_limit);
+        assert(m_marker == nullptr or m_marker  <= m_limit);
+
+        // number of processed characters (p)
             const auto num_processed_chars = static_cast<size_t>(m_start - m_content);
-            // offset for m_marker wrt. to m_start
-            const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start;
-            // number of unprocessed characters (u)
-            const auto offset_cursor = m_cursor - m_start;
+        // offset for m_marker wrt. to m_start
+        const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start;
+        // number of unprocessed characters (u)
+        const auto offset_cursor = m_cursor - m_start;
 
-            // no stream is used or end of file is reached
-            if (m_stream == nullptr or m_stream->eof())
+        // no stream is used or end of file is reached
+        if (m_stream == nullptr or m_stream->eof())
+        {
+            // m_start may or may not be pointing into m_line_buffer at
+            // this point. We trust the standand library to do the right
+            // thing. See http://stackoverflow.com/q/28142011/266378
+            m_line_buffer.assign(m_start, m_limit);
+
+            // append n characters to make sure that there is sufficient
+            // space between m_cursor and m_limit
+            m_line_buffer.append(1, '\x00');
+            if (n > 0)
             {
-                // m_start may or may not be pointing into m_line_buffer at
-                // this point. We trust the standand library to do the right
-                // thing. See http://stackoverflow.com/q/28142011/266378
-                m_line_buffer.assign(m_start, m_limit);
+                m_line_buffer.append(n - 1, '\x01');
+            }
+        }
+        else
+        {
+            // delete processed characters from line buffer
+            m_line_buffer.erase(0, num_processed_chars);
+            // read next line from input stream
+            m_line_buffer_tmp.clear();
+            std::getline(*m_stream, m_line_buffer_tmp, '\n');
 
-                // append n characters to make sure that there is sufficient
-                // space between m_cursor and m_limit
-                m_line_buffer.append(1, '\x00');
-                if (n > 0)
+            // add line with newline symbol to the line buffer
+            m_line_buffer += m_line_buffer_tmp;
+            m_line_buffer.push_back('\n');
+        }
+
+        // set pointers
+        m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data());
+        assert(m_content != nullptr);
+        m_start  = m_content;
+        m_marker = m_start + offset_marker;
+        m_cursor = m_start + offset_cursor;
+        m_limit  = m_start + m_line_buffer.size();
+    }
+
+    /// return string representation of last read token
+    string_t get_token_string() const
+    {
+        assert(m_start != nullptr);
+        return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
+                        static_cast<size_t>(m_cursor - m_start));
+    }
+
+    /*!
+    @brief return string value for string tokens
+
+    The function iterates the characters between the opening and closing
+    quotes of the string value. The complete string is the range
+    [m_start,m_cursor). Consequently, we iterate from m_start+1 to
+    m_cursor-1.
+
+    We differentiate two cases:
+
+    1. Escaped characters. In this case, a new character is constructed
+       according to the nature of the escape. Some escapes create new
+       characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied
+       as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape
+       `"\\uxxxx"` need special care. In this case, to_unicode takes care
+       of the construction of the values.
+    2. Unescaped characters are copied as is.
+
+    @pre `m_cursor - m_start >= 2`, meaning the length of the last token
+    is at least 2 bytes which is trivially true for any string (which
+    consists of at least two quotes).
+
+        " c1 c2 c3 ... "
+        ^                ^
+        m_start          m_cursor
+
+    @complexity Linear in the length of the string.\n
+
+    Lemma: The loop body will always terminate.\n
+
+    Proof (by contradiction): Assume the loop body does not terminate. As
+    the loop body does not contain another loop, one of the called
+    functions must never return. The called functions are `std::strtoul`
+    and to_unicode. Neither function can loop forever, so the loop body
+    will never loop forever which contradicts the assumption that the loop
+    body does not terminate, q.e.d.\n
+
+    Lemma: The loop condition for the for loop is eventually false.\n
+
+    Proof (by contradiction): Assume the loop does not terminate. Due to
+    the above lemma, this can only be due to a tautological loop
+    condition; that is, the loop condition i < m_cursor - 1 must always be
+    true. Let x be the change of i for any loop iteration. Then
+    m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This
+    can be rephrased to m_cursor - m_start - 2 > x. With the
+    precondition, we x <= 0, meaning that the loop condition holds
+    indefinitly if i is always decreased. However, observe that the value
+    of i is strictly increasing with each iteration, as it is incremented
+    by 1 in the iteration expression and never decremented inside the loop
+    body. Hence, the loop condition will eventually be false which
+    contradicts the assumption that the loop condition is a tautology,
+    q.e.d.
+
+    @return string value of current token without opening and closing
+    quotes
+    @throw std::out_of_range if to_unicode fails
+    */
+    string_t get_string() const
+    {
+        assert(m_cursor - m_start >= 2);
+
+        string_t result;
+        result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
+
+        // iterate the result between the quotes
+        for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
+        {
+            // find next escape character
+            auto e = std::find(i, m_cursor - 1, '\\');
+            if (e != i)
+            {
+                // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705
+                for (auto k = i; k < e; k++)
                 {
-                    m_line_buffer.append(n - 1, '\x01');
+                    result.push_back(static_cast<typename string_t::value_type>(*k));
                 }
+                i = e - 1; // -1 because of ++i
             }
             else
             {
-                // delete processed characters from line buffer
-                m_line_buffer.erase(0, num_processed_chars);
-                // read next line from input stream
-                m_line_buffer_tmp.clear();
-                std::getline(*m_stream, m_line_buffer_tmp, '\n');
+                // processing escaped character
+                // read next character
+                ++i;
 
-                // add line with newline symbol to the line buffer
-                m_line_buffer += m_line_buffer_tmp;
-                m_line_buffer.push_back('\n');
-            }
-
-            // set pointers
-            m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data());
-            assert(m_content != nullptr);
-            m_start  = m_content;
-            m_marker = m_start + offset_marker;
-            m_cursor = m_start + offset_cursor;
-            m_limit  = m_start + m_line_buffer.size();
-        }
-
-        /// return string representation of last read token
-        string_t get_token_string() const
-        {
-            assert(m_start != nullptr);
-            return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
-                            static_cast<size_t>(m_cursor - m_start));
-        }
-
-        /*!
-        @brief return string value for string tokens
-
-        The function iterates the characters between the opening and closing
-        quotes of the string value. The complete string is the range
-        [m_start,m_cursor). Consequently, we iterate from m_start+1 to
-        m_cursor-1.
-
-        We differentiate two cases:
-
-        1. Escaped characters. In this case, a new character is constructed
-           according to the nature of the escape. Some escapes create new
-           characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied
-           as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape
-           `"\\uxxxx"` need special care. In this case, to_unicode takes care
-           of the construction of the values.
-        2. Unescaped characters are copied as is.
-
-        @pre `m_cursor - m_start >= 2`, meaning the length of the last token
-        is at least 2 bytes which is trivially true for any string (which
-        consists of at least two quotes).
-
-            " c1 c2 c3 ... "
-            ^                ^
-            m_start          m_cursor
-
-        @complexity Linear in the length of the string.\n
-
-        Lemma: The loop body will always terminate.\n
-
-        Proof (by contradiction): Assume the loop body does not terminate. As
-        the loop body does not contain another loop, one of the called
-        functions must never return. The called functions are `std::strtoul`
-        and to_unicode. Neither function can loop forever, so the loop body
-        will never loop forever which contradicts the assumption that the loop
-        body does not terminate, q.e.d.\n
-
-        Lemma: The loop condition for the for loop is eventually false.\n
-
-        Proof (by contradiction): Assume the loop does not terminate. Due to
-        the above lemma, this can only be due to a tautological loop
-        condition; that is, the loop condition i < m_cursor - 1 must always be
-        true. Let x be the change of i for any loop iteration. Then
-        m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This
-        can be rephrased to m_cursor - m_start - 2 > x. With the
-        precondition, we x <= 0, meaning that the loop condition holds
-        indefinitly if i is always decreased. However, observe that the value
-        of i is strictly increasing with each iteration, as it is incremented
-        by 1 in the iteration expression and never decremented inside the loop
-        body. Hence, the loop condition will eventually be false which
-        contradicts the assumption that the loop condition is a tautology,
-        q.e.d.
-
-        @return string value of current token without opening and closing
-        quotes
-        @throw std::out_of_range if to_unicode fails
-        */
-        string_t get_string() const
-        {
-            assert(m_cursor - m_start >= 2);
-
-            string_t result;
-            result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
-
-            // iterate the result between the quotes
-            for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
-            {
-                // find next escape character
-                auto e = std::find(i, m_cursor - 1, '\\');
-                if (e != i)
+                switch (*i)
                 {
-                    // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705
-                    for (auto k = i; k < e; k++)
+                    // the default escapes
+                    case 't':
                     {
-                        result.push_back(static_cast<typename string_t::value_type>(*k));
+                        result += "\t";
+                        break;
                     }
-                    i = e - 1; // -1 because of ++i
-                }
-                else
-                {
-                    // processing escaped character
-                    // read next character
-                    ++i;
-
-                    switch (*i)
+                    case 'b':
                     {
-                        // the default escapes
-                        case 't':
-                        {
-                            result += "\t";
-                            break;
-                        }
-                        case 'b':
-                        {
-                            result += "\b";
-                            break;
-                        }
-                        case 'f':
-                        {
-                            result += "\f";
-                            break;
-                        }
-                        case 'n':
-                        {
-                            result += "\n";
-                            break;
-                        }
-                        case 'r':
-                        {
-                            result += "\r";
-                            break;
-                        }
-                        case '\\':
-                        {
-                            result += "\\";
-                            break;
-                        }
-                        case '/':
-                        {
-                            result += "/";
-                            break;
-                        }
-                        case '"':
-                        {
-                            result += "\"";
-                            break;
-                        }
+                        result += "\b";
+                        break;
+                    }
+                    case 'f':
+                    {
+                        result += "\f";
+                        break;
+                    }
+                    case 'n':
+                    {
+                        result += "\n";
+                        break;
+                    }
+                    case 'r':
+                    {
+                        result += "\r";
+                        break;
+                    }
+                    case '\\':
+                    {
+                        result += "\\";
+                        break;
+                    }
+                    case '/':
+                    {
+                        result += "/";
+                        break;
+                    }
+                    case '"':
+                    {
+                        result += "\"";
+                        break;
+                    }
 
-                        // unicode
-                        case 'u':
-                        {
-                            // get code xxxx from uxxxx
-                            auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
-                                                          4).c_str(), nullptr, 16);
+                    // unicode
+                    case 'u':
+                    {
+                        // get code xxxx from uxxxx
+                        auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
+                                                      4).c_str(), nullptr, 16);
 
-                            // check if codepoint is a high surrogate
-                            if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
+                        // check if codepoint is a high surrogate
+                        if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
+                        {
+                            // make sure there is a subsequent unicode
+                            if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
                             {
-                                // make sure there is a subsequent unicode
-                                if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
-                                {
                                     JSON_THROW(std::invalid_argument("missing low surrogate"));
-                                }
+                            }
 
-                                // get code yyyy from uxxxx\uyyyy
-                                auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
-                                                               (i + 7), 4).c_str(), nullptr, 16);
-                                result += to_unicode(codepoint, codepoint2);
-                                // skip the next 10 characters (xxxx\uyyyy)
-                                i += 10;
-                            }
-                            else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF)
-                            {
-                                // we found a lone low surrogate
-                                JSON_THROW(std::invalid_argument("missing high surrogate"));
-                            }
-                            else
-                            {
-                                // add unicode character(s)
-                                result += to_unicode(codepoint);
-                                // skip the next four characters (xxxx)
-                                i += 4;
-                            }
-                            break;
+                            // get code yyyy from uxxxx\uyyyy
+                            auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
+                                                           (i + 7), 4).c_str(), nullptr, 16);
+                            result += to_unicode(codepoint, codepoint2);
+                            // skip the next 10 characters (xxxx\uyyyy)
+                            i += 10;
                         }
+                        else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF)
+                        {
+                            // we found a lone low surrogate
+                                JSON_THROW(std::invalid_argument("missing high surrogate"));
+                        }
+                        else
+                        {
+                            // add unicode character(s)
+                            result += to_unicode(codepoint);
+                            // skip the next four characters (xxxx)
+                            i += 4;
+                        }
+                        break;
                     }
                 }
             }
-
-            return result;
         }
 
-        /*!
-        @brief parse floating point number
+        return result;
+    }
 
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
+    /*!
+    @brief parse floating point number
 
-        @param[in,out] endptr recieves a pointer to the first character after
-        the number
+    This function (and its overloads) serves to select the most approprate
+    standard floating point number parsing function based on the type
+    supplied via the first parameter.  Set this to @a
+    static_cast<number_float_t*>(nullptr).
 
-        @return the floating point number
-        */
-        long double str_to_float_t(long double* /* type */, char** endptr) const
+    @param[in,out] endptr recieves a pointer to the first character after
+    the number
+
+    @return the floating point number
+    */
+    long double str_to_float_t(long double* /* type */, char** endptr) const
+    {
+        return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+    }
+
+    /*!
+    @brief parse floating point number
+
+    This function (and its overloads) serves to select the most approprate
+    standard floating point number parsing function based on the type
+    supplied via the first parameter.  Set this to @a
+    static_cast<number_float_t*>(nullptr).
+
+    @param[in,out] endptr  recieves a pointer to the first character after
+    the number
+
+    @return the floating point number
+    */
+    double str_to_float_t(double* /* type */, char** endptr) const
+    {
+        return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+    }
+
+    /*!
+    @brief parse floating point number
+
+    This function (and its overloads) serves to select the most approprate
+    standard floating point number parsing function based on the type
+    supplied via the first parameter.  Set this to @a
+    static_cast<number_float_t*>(nullptr).
+
+    @param[in,out] endptr  recieves a pointer to the first character after
+    the number
+
+    @return the floating point number
+    */
+    float str_to_float_t(float* /* type */, char** endptr) const
+    {
+        return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+    }
+
+    /*!
+    @brief return number value for number tokens
+
+    This function translates the last token into the most appropriate
+    number type (either integer, unsigned integer or floating point),
+    which is passed back to the caller via the result parameter.
+
+    This function parses the integer component up to the radix point or
+    exponent while collecting information about the 'floating point
+    representation', which it stores in the result parameter. If there is
+    no radix point or exponent, and the number can fit into a @ref
+    number_integer_t or @ref number_unsigned_t then it sets the result
+    parameter accordingly.
+
+    If the number is a floating point number the number is then parsed
+    using @a std:strtod (or @a std:strtof or @a std::strtold).
+
+    @param[out] result  @ref basic_json object to receive the number, or
+    NAN if the conversion read past the current token. The latter case
+    needs to be treated by the caller function.
+    */
+    void get_number(basic_json& result) const
+    {
+        assert(m_start != nullptr);
+
+        const lexer::lexer_char_t* curptr = m_start;
+
+        // accumulate the integer conversion result (unsigned for now)
+        number_unsigned_t value = 0;
+
+        // maximum absolute value of the relevant integer type
+        number_unsigned_t max;
+
+        // temporarily store the type to avoid unecessary bitfield access
+        value_t type;
+
+        // look for sign
+        if (*curptr == '-')
         {
-            return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+            type = value_t::number_integer;
+            max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1;
+            curptr++;
+        }
+        else
+        {
+            type = value_t::number_unsigned;
+            max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)());
         }
 
-        /*!
-        @brief parse floating point number
-
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
-
-        @param[in,out] endptr  recieves a pointer to the first character after
-        the number
-
-        @return the floating point number
-        */
-        double str_to_float_t(double* /* type */, char** endptr) const
+        // count the significant figures
+        for (; curptr < m_cursor; curptr++)
         {
-            return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
-
-        /*!
-        @brief parse floating point number
-
-        This function (and its overloads) serves to select the most approprate
-        standard floating point number parsing function based on the type
-        supplied via the first parameter.  Set this to @a
-        static_cast<number_float_t*>(nullptr).
-
-        @param[in,out] endptr  recieves a pointer to the first character after
-        the number
-
-        @return the floating point number
-        */
-        float str_to_float_t(float* /* type */, char** endptr) const
-        {
-            return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-        }
-
-        /*!
-        @brief return number value for number tokens
-
-        This function translates the last token into the most appropriate
-        number type (either integer, unsigned integer or floating point),
-        which is passed back to the caller via the result parameter.
-
-        This function parses the integer component up to the radix point or
-        exponent while collecting information about the 'floating point
-        representation', which it stores in the result parameter. If there is
-        no radix point or exponent, and the number can fit into a @ref
-        number_integer_t or @ref number_unsigned_t then it sets the result
-        parameter accordingly.
-
-        If the number is a floating point number the number is then parsed
-        using @a std:strtod (or @a std:strtof or @a std::strtold).
-
-        @param[out] result  @ref basic_json object to receive the number, or
-        NAN if the conversion read past the current token. The latter case
-        needs to be treated by the caller function.
-        */
-        void get_number(basic_json& result) const
-        {
-            assert(m_start != nullptr);
-
-            const lexer::lexer_char_t* curptr = m_start;
-
-            // accumulate the integer conversion result (unsigned for now)
-            number_unsigned_t value = 0;
-
-            // maximum absolute value of the relevant integer type
-            number_unsigned_t max;
-
-            // temporarily store the type to avoid unecessary bitfield access
-            value_t type;
-
-            // look for sign
-            if (*curptr == '-')
+            // quickly skip tests if a digit
+            if (*curptr < '0' || *curptr > '9')
             {
-                type = value_t::number_integer;
-                max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1;
-                curptr++;
-            }
-            else
-            {
-                type = value_t::number_unsigned;
-                max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)());
-            }
-
-            // count the significant figures
-            for (; curptr < m_cursor; curptr++)
-            {
-                // quickly skip tests if a digit
-                if (*curptr < '0' || *curptr > '9')
+                if (*curptr == '.')
                 {
-                    if (*curptr == '.')
-                    {
-                        // don't count '.' but change to float
-                        type = value_t::number_float;
-                        continue;
-                    }
-                    // assume exponent (if not then will fail parse): change to
-                    // float, stop counting and record exponent details
+                    // don't count '.' but change to float
                     type = value_t::number_float;
-                    break;
-                }
-
-                // skip if definitely not an integer
-                if (type != value_t::number_float)
-                {
-                    auto digit = static_cast<number_unsigned_t>(*curptr - '0');
-
-                    // overflow if value * 10 + digit > max, move terms around
-                    // to avoid overflow in intermediate values
-                    if (value > (max - digit) / 10)
-                    {
-                        // overflow
-                        type = value_t::number_float;
-                    }
-                    else
-                    {
-                        // no overflow
-                        value = value * 10 + digit;
-                    }
+                    continue;
                 }
+                // assume exponent (if not then will fail parse): change to
+                // float, stop counting and record exponent details
+                type = value_t::number_float;
+                break;
             }
 
-            // save the value (if not a float)
-            if (type == value_t::number_unsigned)
+            // skip if definitely not an integer
+            if (type != value_t::number_float)
             {
-                result.m_value.number_unsigned = value;
-            }
-            else if (type == value_t::number_integer)
-            {
-                // invariant: if we parsed a '-', the absolute value is between
-                // 0 (we allow -0) and max == -INT64_MIN
-                assert(value >= 0);
-                assert(value <= max);
+                auto digit = static_cast<number_unsigned_t>(*curptr - '0');
 
-                if (value == max)
+                // overflow if value * 10 + digit > max, move terms around
+                // to avoid overflow in intermediate values
+                if (value > (max - digit) / 10)
                 {
-                    // we cannot simply negate value (== max == -INT64_MIN),
-                    // see https://github.com/nlohmann/json/issues/389
-                    result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN);
+                    // overflow
+                    type = value_t::number_float;
                 }
                 else
                 {
-                    // all other values can be negated safely
-                    result.m_value.number_integer = -static_cast<number_integer_t>(value);
+                    // no overflow
+                    value = value * 10 + digit;
                 }
             }
+        }
+
+        // save the value (if not a float)
+        if (type == value_t::number_unsigned)
+        {
+            result.m_value.number_unsigned = value;
+        }
+        else if (type == value_t::number_integer)
+        {
+            // invariant: if we parsed a '-', the absolute value is between
+            // 0 (we allow -0) and max == -INT64_MIN
+            assert(value >= 0);
+            assert(value <= max);
+
+            if (value == max)
+            {
+                // we cannot simply negate value (== max == -INT64_MIN),
+                // see https://github.com/nlohmann/json/issues/389
+                result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN);
+            }
             else
             {
-                // parse with strtod
+                // all other values can be negated safely
+                result.m_value.number_integer = -static_cast<number_integer_t>(value);
+            }
+        }
+        else
+        {
+            // parse with strtod
                 result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr);
 
-                // replace infinity and NAN by null
-                if (not std::isfinite(result.m_value.number_float))
-                {
-                    type = value_t::null;
-                    result.m_value = basic_json::json_value();
-                }
+            // replace infinity and NAN by null
+            if (not std::isfinite(result.m_value.number_float))
+            {
+                type = value_t::null;
+                result.m_value = basic_json::json_value();
             }
-
-            // save the type
-            result.m_type = type;
         }
 
-      private:
-        /// optional input stream
-        std::istream* m_stream = nullptr;
-        /// line buffer buffer for m_stream
-        string_t m_line_buffer {};
-        /// used for filling m_line_buffer
-        string_t m_line_buffer_tmp {};
-        /// the buffer pointer
-        const lexer_char_t* m_content = nullptr;
-        /// pointer to the beginning of the current symbol
-        const lexer_char_t* m_start = nullptr;
-        /// pointer for backtracking information
-        const lexer_char_t* m_marker = nullptr;
-        /// pointer to the current symbol
-        const lexer_char_t* m_cursor = nullptr;
-        /// pointer to the end of the buffer
-        const lexer_char_t* m_limit = nullptr;
-        /// the last token type
-        token_type last_token_type = token_type::end_of_input;
-    };
+        // save the type
+        result.m_type = type;
+    }
+
+    private:
+    /// optional input stream
+    std::istream* m_stream = nullptr;
+    /// line buffer buffer for m_stream
+    string_t m_line_buffer {};
+    /// used for filling m_line_buffer
+    string_t m_line_buffer_tmp {};
+    /// the buffer pointer
+    const lexer_char_t* m_content = nullptr;
+    /// pointer to the beginning of the current symbol
+    const lexer_char_t* m_start = nullptr;
+    /// pointer for backtracking information
+    const lexer_char_t* m_marker = nullptr;
+    /// pointer to the current symbol
+    const lexer_char_t* m_cursor = nullptr;
+    /// pointer to the end of the buffer
+    const lexer_char_t* m_limit = nullptr;
+    /// the last token type
+    token_type last_token_type = token_type::end_of_input;
+                                                };
 
     /*!
     @brief syntax analysis
@@ -9825,282 +10289,282 @@ class basic_json
     */
     class parser
     {
-      public:
+        public:
         /// a parser reading from a string literal
         parser(const char* buff, const parser_callback_t cb = nullptr)
-            : callback(cb),
-              m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff))
-        {}
+        : callback(cb),
+        m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff))
+    {}
 
-        /// a parser reading from an input stream
-        parser(std::istream& is, const parser_callback_t cb = nullptr)
-            : callback(cb), m_lexer(is)
-        {}
+    /// a parser reading from an input stream
+    parser(std::istream& is, const parser_callback_t cb = nullptr)
+    : callback(cb), m_lexer(is)
+    {}
 
-        /// a parser reading from an iterator range with contiguous storage
-        template<class IteratorType, typename std::enable_if<
-                     std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value
-                     , int>::type
-                 = 0>
-        parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr)
-            : callback(cb),
-              m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)),
-                      static_cast<size_t>(std::distance(first, last)))
-        {}
+    /// a parser reading from an iterator range with contiguous storage
+    template<class IteratorType, typename std::enable_if<
+                 std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value
+                 , int>::type
+             = 0>
+    parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr)
+    : callback(cb),
+    m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)),
+            static_cast<size_t>(std::distance(first, last)))
+    {}
 
-        /// public parser interface
-        basic_json parse()
+    /// public parser interface
+    basic_json parse()
+    {
+        // read first token
+        get_token();
+
+        basic_json result = parse_internal(true);
+        result.assert_invariant();
+
+        expect(lexer::token_type::end_of_input);
+
+        // return parser result and replace it with null in case the
+        // top-level value was discarded by the callback function
+        return result.is_discarded() ? basic_json() : std::move(result);
+    }
+
+    private:
+    /// the actual parser
+    basic_json parse_internal(bool keep)
+    {
+        auto result = basic_json(value_t::discarded);
+
+        switch (last_token)
         {
-            // read first token
-            get_token();
-
-            basic_json result = parse_internal(true);
-            result.assert_invariant();
-
-            expect(lexer::token_type::end_of_input);
-
-            // return parser result and replace it with null in case the
-            // top-level value was discarded by the callback function
-            return result.is_discarded() ? basic_json() : std::move(result);
-        }
-
-      private:
-        /// the actual parser
-        basic_json parse_internal(bool keep)
-        {
-            auto result = basic_json(value_t::discarded);
-
-            switch (last_token)
+            case lexer::token_type::begin_object:
             {
-                case lexer::token_type::begin_object:
+                if (keep and (not callback
+                              or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0)))
                 {
-                    if (keep and (not callback
-                                  or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0)))
-                    {
-                        // explicitly set result to object to cope with {}
-                        result.m_type = value_t::object;
-                        result.m_value = value_t::object;
-                    }
+                    // explicitly set result to object to cope with {}
+                    result.m_type = value_t::object;
+                    result.m_value = value_t::object;
+                }
 
-                    // read next token
-                    get_token();
+                // read next token
+                get_token();
 
-                    // closing } -> we are done
-                    if (last_token == lexer::token_type::end_object)
-                    {
-                        get_token();
-                        if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
-                        {
-                            result = basic_json(value_t::discarded);
-                        }
-                        return result;
-                    }
-
-                    // no comma is expected here
-                    unexpect(lexer::token_type::value_separator);
-
-                    // otherwise: parse key-value pairs
-                    do
-                    {
-                        // ugly, but could be fixed with loop reorganization
-                        if (last_token == lexer::token_type::value_separator)
-                        {
-                            get_token();
-                        }
-
-                        // store key
-                        expect(lexer::token_type::value_string);
-                        const auto key = m_lexer.get_string();
-
-                        bool keep_tag = false;
-                        if (keep)
-                        {
-                            if (callback)
-                            {
-                                basic_json k(key);
-                                keep_tag = callback(depth, parse_event_t::key, k);
-                            }
-                            else
-                            {
-                                keep_tag = true;
-                            }
-                        }
-
-                        // parse separator (:)
-                        get_token();
-                        expect(lexer::token_type::name_separator);
-
-                        // parse and add value
-                        get_token();
-                        auto value = parse_internal(keep);
-                        if (keep and keep_tag and not value.is_discarded())
-                        {
-                            result[key] = std::move(value);
-                        }
-                    }
-                    while (last_token == lexer::token_type::value_separator);
-
-                    // closing }
-                    expect(lexer::token_type::end_object);
+                // closing } -> we are done
+                if (last_token == lexer::token_type::end_object)
+                {
                     get_token();
                     if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
                     {
                         result = basic_json(value_t::discarded);
                     }
-
                     return result;
                 }
 
-                case lexer::token_type::begin_array:
+                // no comma is expected here
+                unexpect(lexer::token_type::value_separator);
+
+                // otherwise: parse key-value pairs
+                do
                 {
-                    if (keep and (not callback
-                                  or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0)))
-                    {
-                        // explicitly set result to object to cope with []
-                        result.m_type = value_t::array;
-                        result.m_value = value_t::array;
-                    }
-
-                    // read next token
-                    get_token();
-
-                    // closing ] -> we are done
-                    if (last_token == lexer::token_type::end_array)
+                    // ugly, but could be fixed with loop reorganization
+                    if (last_token == lexer::token_type::value_separator)
                     {
                         get_token();
-                        if (callback and not callback(--depth, parse_event_t::array_end, result))
-                        {
-                            result = basic_json(value_t::discarded);
-                        }
-                        return result;
                     }
 
-                    // no comma is expected here
-                    unexpect(lexer::token_type::value_separator);
+                    // store key
+                    expect(lexer::token_type::value_string);
+                    const auto key = m_lexer.get_string();
 
-                    // otherwise: parse values
-                    do
+                    bool keep_tag = false;
+                    if (keep)
                     {
-                        // ugly, but could be fixed with loop reorganization
-                        if (last_token == lexer::token_type::value_separator)
+                        if (callback)
                         {
-                            get_token();
+                            basic_json k(key);
+                            keep_tag = callback(depth, parse_event_t::key, k);
                         }
-
-                        // parse value
-                        auto value = parse_internal(keep);
-                        if (keep and not value.is_discarded())
+                        else
                         {
-                            result.push_back(std::move(value));
+                            keep_tag = true;
                         }
                     }
-                    while (last_token == lexer::token_type::value_separator);
 
-                    // closing ]
-                    expect(lexer::token_type::end_array);
+                    // parse separator (:)
                     get_token();
-                    if (keep and callback and not callback(--depth, parse_event_t::array_end, result))
+                    expect(lexer::token_type::name_separator);
+
+                    // parse and add value
+                    get_token();
+                    auto value = parse_internal(keep);
+                    if (keep and keep_tag and not value.is_discarded())
+                    {
+                        result[key] = std::move(value);
+                    }
+                }
+                while (last_token == lexer::token_type::value_separator);
+
+                // closing }
+                expect(lexer::token_type::end_object);
+                get_token();
+                if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
+                {
+                    result = basic_json(value_t::discarded);
+                }
+
+                return result;
+            }
+
+            case lexer::token_type::begin_array:
+            {
+                if (keep and (not callback
+                              or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0)))
+                {
+                    // explicitly set result to object to cope with []
+                    result.m_type = value_t::array;
+                    result.m_value = value_t::array;
+                }
+
+                // read next token
+                get_token();
+
+                // closing ] -> we are done
+                if (last_token == lexer::token_type::end_array)
+                {
+                    get_token();
+                    if (callback and not callback(--depth, parse_event_t::array_end, result))
                     {
                         result = basic_json(value_t::discarded);
                     }
-
                     return result;
                 }
 
-                case lexer::token_type::literal_null:
+                // no comma is expected here
+                unexpect(lexer::token_type::value_separator);
+
+                // otherwise: parse values
+                do
                 {
-                    get_token();
-                    result.m_type = value_t::null;
-                    break;
+                    // ugly, but could be fixed with loop reorganization
+                    if (last_token == lexer::token_type::value_separator)
+                    {
+                        get_token();
+                    }
+
+                    // parse value
+                    auto value = parse_internal(keep);
+                    if (keep and not value.is_discarded())
+                    {
+                        result.push_back(std::move(value));
+                    }
+                }
+                while (last_token == lexer::token_type::value_separator);
+
+                // closing ]
+                expect(lexer::token_type::end_array);
+                get_token();
+                if (keep and callback and not callback(--depth, parse_event_t::array_end, result))
+                {
+                    result = basic_json(value_t::discarded);
                 }
 
-                case lexer::token_type::value_string:
-                {
-                    const auto s = m_lexer.get_string();
-                    get_token();
-                    result = basic_json(s);
-                    break;
-                }
-
-                case lexer::token_type::literal_true:
-                {
-                    get_token();
-                    result.m_type = value_t::boolean;
-                    result.m_value = true;
-                    break;
-                }
-
-                case lexer::token_type::literal_false:
-                {
-                    get_token();
-                    result.m_type = value_t::boolean;
-                    result.m_value = false;
-                    break;
-                }
-
-                case lexer::token_type::value_number:
-                {
-                    m_lexer.get_number(result);
-                    get_token();
-                    break;
-                }
-
-                default:
-                {
-                    // the last token was unexpected
-                    unexpect(last_token);
-                }
+                return result;
             }
 
-            if (keep and callback and not callback(depth, parse_event_t::value, result))
+            case lexer::token_type::literal_null:
             {
-                result = basic_json(value_t::discarded);
+                get_token();
+                result.m_type = value_t::null;
+                break;
             }
-            return result;
-        }
 
-        /// get next token from lexer
-        typename lexer::token_type get_token()
-        {
-            last_token = m_lexer.scan();
-            return last_token;
-        }
-
-        void expect(typename lexer::token_type t) const
-        {
-            if (t != last_token)
+            case lexer::token_type::value_string:
             {
-                std::string error_msg = "parse error - unexpected ";
-                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
-                              "'") :
-                              lexer::token_type_name(last_token));
-                error_msg += "; expected " + lexer::token_type_name(t);
+                const auto s = m_lexer.get_string();
+                get_token();
+                result = basic_json(s);
+                break;
+            }
+
+            case lexer::token_type::literal_true:
+            {
+                get_token();
+                result.m_type = value_t::boolean;
+                result.m_value = true;
+                break;
+            }
+
+            case lexer::token_type::literal_false:
+            {
+                get_token();
+                result.m_type = value_t::boolean;
+                result.m_value = false;
+                break;
+            }
+
+            case lexer::token_type::value_number:
+            {
+                m_lexer.get_number(result);
+                get_token();
+                break;
+            }
+
+            default:
+            {
+                // the last token was unexpected
+                unexpect(last_token);
+            }
+        }
+
+        if (keep and callback and not callback(depth, parse_event_t::value, result))
+        {
+            result = basic_json(value_t::discarded);
+        }
+        return result;
+    }
+
+    /// get next token from lexer
+    typename lexer::token_type get_token()
+    {
+        last_token = m_lexer.scan();
+        return last_token;
+    }
+
+    void expect(typename lexer::token_type t) const
+    {
+        if (t != last_token)
+        {
+            std::string error_msg = "parse error - unexpected ";
+            error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
+                          "'") :
+                          lexer::token_type_name(last_token));
+            error_msg += "; expected " + lexer::token_type_name(t);
                 JSON_THROW(std::invalid_argument(error_msg));
-            }
         }
+    }
 
-        void unexpect(typename lexer::token_type t) const
+    void unexpect(typename lexer::token_type t) const
+    {
+        if (t == last_token)
         {
-            if (t == last_token)
-            {
-                std::string error_msg = "parse error - unexpected ";
-                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
-                              "'") :
-                              lexer::token_type_name(last_token));
+            std::string error_msg = "parse error - unexpected ";
+            error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
+                          "'") :
+                          lexer::token_type_name(last_token));
                 JSON_THROW(std::invalid_argument(error_msg));
-            }
         }
+    }
 
-      private:
-        /// current level of recursion
-        int depth = 0;
-        /// callback function
-        const parser_callback_t callback = nullptr;
-        /// the type of the last read token
-        typename lexer::token_type last_token = lexer::token_type::uninitialized;
-        /// the lexer
-        lexer m_lexer;
-    };
+    private:
+    /// current level of recursion
+    int depth = 0;
+    /// callback function
+    const parser_callback_t callback = nullptr;
+    /// the type of the last read token
+    typename lexer::token_type last_token = lexer::token_type::uninitialized;
+    /// the lexer
+    lexer m_lexer;
+                            };
 
   public:
     /*!
@@ -10119,7 +10583,7 @@ class basic_json
         /// allow basic_json to access private members
         friend class basic_json;
 
-      public:
+        public:
         /*!
         @brief create JSON pointer
 
@@ -10143,562 +10607,562 @@ class basic_json
         @since version 2.0.0
         */
         explicit json_pointer(const std::string& s = "")
-            : reference_tokens(split(s))
-        {}
+        : reference_tokens(split(s))
+    {}
 
-        /*!
-        @brief return a string representation of the JSON pointer
+    /*!
+    @brief return a string representation of the JSON pointer
 
-        @invariant For each JSON pointer `ptr`, it holds:
-        @code {.cpp}
-        ptr == json_pointer(ptr.to_string());
-        @endcode
+    @invariant For each JSON pointer `ptr`, it holds:
+    @code {.cpp}
+    ptr == json_pointer(ptr.to_string());
+    @endcode
 
-        @return a string representation of the JSON pointer
+    @return a string representation of the JSON pointer
 
-        @liveexample{The example shows the result of `to_string`.,
-        json_pointer__to_string}
+    @liveexample{The example shows the result of `to_string`.,
+    json_pointer__to_string}
 
-        @since version 2.0.0
-        */
-        std::string to_string() const noexcept
+    @since version 2.0.0
+    */
+    std::string to_string() const noexcept
+    {
+        return std::accumulate(reference_tokens.begin(),
+                               reference_tokens.end(), std::string{},
+                               [](const std::string & a, const std::string & b)
         {
-            return std::accumulate(reference_tokens.begin(),
-                                   reference_tokens.end(), std::string{},
-                                   [](const std::string & a, const std::string & b)
-            {
-                return a + "/" + escape(b);
-            });
-        }
+            return a + "/" + escape(b);
+        });
+    }
 
-        /// @copydoc to_string()
-        operator std::string() const
-        {
-            return to_string();
-        }
+    /// @copydoc to_string()
+    operator std::string() const
+    {
+        return to_string();
+    }
 
-      private:
-        /// remove and return last reference pointer
-        std::string pop_back()
+    private:
+    /// remove and return last reference pointer
+    std::string pop_back()
+    {
+        if (is_root())
         {
-            if (is_root())
-            {
                 JSON_THROW(std::domain_error("JSON pointer has no parent"));
-            }
-
-            auto last = reference_tokens.back();
-            reference_tokens.pop_back();
-            return last;
         }
 
-        /// return whether pointer points to the root document
-        bool is_root() const
-        {
-            return reference_tokens.empty();
-        }
+        auto last = reference_tokens.back();
+        reference_tokens.pop_back();
+        return last;
+    }
 
-        json_pointer top() const
+    /// return whether pointer points to the root document
+    bool is_root() const
+    {
+        return reference_tokens.empty();
+    }
+
+    json_pointer top() const
+    {
+        if (is_root())
         {
-            if (is_root())
-            {
                 JSON_THROW(std::domain_error("JSON pointer has no parent"));
-            }
-
-            json_pointer result = *this;
-            result.reference_tokens = {reference_tokens[0]};
-            return result;
         }
 
-        /*!
-        @brief create and return a reference to the pointed to value
+        json_pointer result = *this;
+        result.reference_tokens = {reference_tokens[0]};
+        return result;
+    }
 
-        @complexity Linear in the number of reference tokens.
-        */
-        reference get_and_create(reference j) const
+    /*!
+    @brief create and return a reference to the pointed to value
+
+    @complexity Linear in the number of reference tokens.
+    */
+    reference get_and_create(reference j) const
+    {
+        pointer result = &j;
+
+        // in case no reference tokens exist, return a reference to the
+        // JSON value j which will be overwritten by a primitive value
+        for (const auto& reference_token : reference_tokens)
         {
-            pointer result = &j;
-
-            // in case no reference tokens exist, return a reference to the
-            // JSON value j which will be overwritten by a primitive value
-            for (const auto& reference_token : reference_tokens)
+            switch (result->m_type)
             {
-                switch (result->m_type)
+                case value_t::null:
                 {
-                    case value_t::null:
+                    if (reference_token == "0")
                     {
-                        if (reference_token == "0")
-                        {
-                            // start a new array if reference token is 0
-                            result = &result->operator[](0);
-                        }
-                        else
-                        {
-                            // start a new object otherwise
-                            result = &result->operator[](reference_token);
-                        }
-                        break;
+                        // start a new array if reference token is 0
+                        result = &result->operator[](0);
                     }
-
-                    case value_t::object:
+                    else
                     {
-                        // create an entry in the object
+                        // start a new object otherwise
                         result = &result->operator[](reference_token);
-                        break;
-                    }
-
-                    case value_t::array:
-                    {
-                        // create an entry in the array
-                        result = &result->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                        break;
-                    }
-
-                    /*
-                    The following code is only reached if there exists a
-                    reference token _and_ the current value is primitive. In
-                    this case, we have an error situation, because primitive
-                    values may only occur as single value; that is, with an
-                    empty list of reference tokens.
-                    */
-                    default:
-                    {
-                        JSON_THROW(std::domain_error("invalid value to unflatten"));
-                    }
-                }
-            }
-
-            return *result;
-        }
-
-        /*!
-        @brief return a reference to the pointed to value
-
-        @note This version does not throw if a value is not present, but tries
-        to create nested values instead. For instance, calling this function
-        with pointer `"/this/that"` on a null value is equivalent to calling
-        `operator[]("this").operator[]("that")` on that value, effectively
-        changing the null value to an object.
-
-        @param[in] ptr  a JSON value
-
-        @return reference to the JSON value pointed to by the JSON pointer
-
-        @complexity Linear in the length of the JSON pointer.
-
-        @throw std::out_of_range      if the JSON pointer can not be resolved
-        @throw std::domain_error      if an array index begins with '0'
-        @throw std::invalid_argument  if an array index was not a number
-        */
-        reference get_unchecked(pointer ptr) const
-        {
-            for (const auto& reference_token : reference_tokens)
-            {
-                // convert null values to arrays or objects before continuing
-                if (ptr->m_type == value_t::null)
-                {
-                    // check if reference token is a number
-                    const bool nums = std::all_of(reference_token.begin(),
-                                                  reference_token.end(),
-                                                  [](const char x)
-                    {
-                        return std::isdigit(x);
-                    });
-
-                    // change value to array for numbers or "-" or to object
-                    // otherwise
-                    if (nums or reference_token == "-")
-                    {
-                        *ptr = value_t::array;
-                    }
-                    else
-                    {
-                        *ptr = value_t::object;
-                    }
-                }
-
-                switch (ptr->m_type)
-                {
-                    case value_t::object:
-                    {
-                        // use unchecked object access
-                        ptr = &ptr->operator[](reference_token);
-                        break;
-                    }
-
-                    case value_t::array:
-                    {
-                        // error condition (cf. RFC 6901, Sect. 4)
-                        if (reference_token.size() > 1 and reference_token[0] == '0')
-                        {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                        }
-
-                        if (reference_token == "-")
-                        {
-                            // explicityly treat "-" as index beyond the end
-                            ptr = &ptr->operator[](ptr->m_value.array->size());
-                        }
-                        else
-                        {
-                            // convert array index to number; unchecked access
-                            ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                        }
-                        break;
-                    }
-
-                    default:
-                    {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                    }
-                }
-            }
-
-            return *ptr;
-        }
-
-        reference get_checked(pointer ptr) const
-        {
-            for (const auto& reference_token : reference_tokens)
-            {
-                switch (ptr->m_type)
-                {
-                    case value_t::object:
-                    {
-                        // note: at performs range check
-                        ptr = &ptr->at(reference_token);
-                        break;
-                    }
-
-                    case value_t::array:
-                    {
-                        if (reference_token == "-")
-                        {
-                            // "-" always fails the range check
-                            throw std::out_of_range("array index '-' (" +
-                                                    std::to_string(ptr->m_value.array->size()) +
-                                                    ") is out of range");
-                        }
-
-                        // error condition (cf. RFC 6901, Sect. 4)
-                        if (reference_token.size() > 1 and reference_token[0] == '0')
-                        {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                        }
-
-                        // note: at performs range check
-                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
-                        break;
-                    }
-
-                    default:
-                    {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                    }
-                }
-            }
-
-            return *ptr;
-        }
-
-        /*!
-        @brief return a const reference to the pointed to value
-
-        @param[in] ptr  a JSON value
-
-        @return const reference to the JSON value pointed to by the JSON
-                pointer
-        */
-        const_reference get_unchecked(const_pointer ptr) const
-        {
-            for (const auto& reference_token : reference_tokens)
-            {
-                switch (ptr->m_type)
-                {
-                    case value_t::object:
-                    {
-                        // use unchecked object access
-                        ptr = &ptr->operator[](reference_token);
-                        break;
-                    }
-
-                    case value_t::array:
-                    {
-                        if (reference_token == "-")
-                        {
-                            // "-" cannot be used for const access
-                            throw std::out_of_range("array index '-' (" +
-                                                    std::to_string(ptr->m_value.array->size()) +
-                                                    ") is out of range");
-                        }
-
-                        // error condition (cf. RFC 6901, Sect. 4)
-                        if (reference_token.size() > 1 and reference_token[0] == '0')
-                        {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                        }
-
-                        // use unchecked array access
-                        ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                        break;
-                    }
-
-                    default:
-                    {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                    }
-                }
-            }
-
-            return *ptr;
-        }
-
-        const_reference get_checked(const_pointer ptr) const
-        {
-            for (const auto& reference_token : reference_tokens)
-            {
-                switch (ptr->m_type)
-                {
-                    case value_t::object:
-                    {
-                        // note: at performs range check
-                        ptr = &ptr->at(reference_token);
-                        break;
-                    }
-
-                    case value_t::array:
-                    {
-                        if (reference_token == "-")
-                        {
-                            // "-" always fails the range check
-                            throw std::out_of_range("array index '-' (" +
-                                                    std::to_string(ptr->m_value.array->size()) +
-                                                    ") is out of range");
-                        }
-
-                        // error condition (cf. RFC 6901, Sect. 4)
-                        if (reference_token.size() > 1 and reference_token[0] == '0')
-                        {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                        }
-
-                        // note: at performs range check
-                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
-                        break;
-                    }
-
-                    default:
-                    {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                    }
-                }
-            }
-
-            return *ptr;
-        }
-
-        /// split the string input to reference tokens
-        static std::vector<std::string> split(const std::string& reference_string)
-        {
-            std::vector<std::string> result;
-
-            // special case: empty reference string -> no reference tokens
-            if (reference_string.empty())
-            {
-                return result;
-            }
-
-            // check if nonempty reference string begins with slash
-            if (reference_string[0] != '/')
-            {
-                JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'"));
-            }
-
-            // extract the reference tokens:
-            // - slash: position of the last read slash (or end of string)
-            // - start: position after the previous slash
-            for (
-                // search for the first slash after the first character
-                size_t slash = reference_string.find_first_of('/', 1),
-                // set the beginning of the first reference token
-                start = 1;
-                // we can stop if start == string::npos+1 = 0
-                start != 0;
-                // set the beginning of the next reference token
-                // (will eventually be 0 if slash == std::string::npos)
-                start = slash + 1,
-                // find next slash
-                slash = reference_string.find_first_of('/', start))
-            {
-                // use the text between the beginning of the reference token
-                // (start) and the last slash (slash).
-                auto reference_token = reference_string.substr(start, slash - start);
-
-                // check reference tokens are properly escaped
-                for (size_t pos = reference_token.find_first_of('~');
-                        pos != std::string::npos;
-                        pos = reference_token.find_first_of('~', pos + 1))
-                {
-                    assert(reference_token[pos] == '~');
-
-                    // ~ must be followed by 0 or 1
-                    if (pos == reference_token.size() - 1 or
-                            (reference_token[pos + 1] != '0' and
-                             reference_token[pos + 1] != '1'))
-                    {
-                        JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'"));
-                    }
-                }
-
-                // finally, store the reference token
-                unescape(reference_token);
-                result.push_back(reference_token);
-            }
-
-            return result;
-        }
-
-      private:
-        /*!
-        @brief replace all occurrences of a substring by another string
-
-        @param[in,out] s  the string to manipulate; changed so that all
-                          occurrences of @a f are replaced with @a t
-        @param[in]     f  the substring to replace with @a t
-        @param[in]     t  the string to replace @a f
-
-        @pre The search string @a f must not be empty.
-
-        @since version 2.0.0
-        */
-        static void replace_substring(std::string& s,
-                                      const std::string& f,
-                                      const std::string& t)
-        {
-            assert(not f.empty());
-
-            for (
-                size_t pos = s.find(f);         // find first occurrence of f
-                pos != std::string::npos;       // make sure f was found
-                s.replace(pos, f.size(), t),    // replace with t
-                pos = s.find(f, pos + t.size()) // find next occurrence of f
-            );
-        }
-
-        /// escape tilde and slash
-        static std::string escape(std::string s)
-        {
-            // escape "~"" to "~0" and "/" to "~1"
-            replace_substring(s, "~", "~0");
-            replace_substring(s, "/", "~1");
-            return s;
-        }
-
-        /// unescape tilde and slash
-        static void unescape(std::string& s)
-        {
-            // first transform any occurrence of the sequence '~1' to '/'
-            replace_substring(s, "~1", "/");
-            // then transform any occurrence of the sequence '~0' to '~'
-            replace_substring(s, "~0", "~");
-        }
-
-        /*!
-        @param[in] reference_string  the reference string to the current value
-        @param[in] value             the value to consider
-        @param[in,out] result        the result object to insert values to
-
-        @note Empty objects or arrays are flattened to `null`.
-        */
-        static void flatten(const std::string& reference_string,
-                            const basic_json& value,
-                            basic_json& result)
-        {
-            switch (value.m_type)
-            {
-                case value_t::array:
-                {
-                    if (value.m_value.array->empty())
-                    {
-                        // flatten empty array as null
-                        result[reference_string] = nullptr;
-                    }
-                    else
-                    {
-                        // iterate array and use index as reference string
-                        for (size_t i = 0; i < value.m_value.array->size(); ++i)
-                        {
-                            flatten(reference_string + "/" + std::to_string(i),
-                                    value.m_value.array->operator[](i), result);
-                        }
                     }
                     break;
                 }
 
                 case value_t::object:
                 {
-                    if (value.m_value.object->empty())
+                    // create an entry in the object
+                    result = &result->operator[](reference_token);
+                    break;
+                }
+
+                case value_t::array:
+                {
+                    // create an entry in the array
+                    result = &result->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                    break;
+                }
+
+                /*
+                The following code is only reached if there exists a
+                reference token _and_ the current value is primitive. In
+                this case, we have an error situation, because primitive
+                values may only occur as single value; that is, with an
+                empty list of reference tokens.
+                */
+                default:
+                {
+                        JSON_THROW(std::domain_error("invalid value to unflatten"));
+                }
+            }
+        }
+
+        return *result;
+    }
+
+    /*!
+    @brief return a reference to the pointed to value
+
+    @note This version does not throw if a value is not present, but tries
+    to create nested values instead. For instance, calling this function
+    with pointer `"/this/that"` on a null value is equivalent to calling
+    `operator[]("this").operator[]("that")` on that value, effectively
+    changing the null value to an object.
+
+    @param[in] ptr  a JSON value
+
+    @return reference to the JSON value pointed to by the JSON pointer
+
+    @complexity Linear in the length of the JSON pointer.
+
+    @throw std::out_of_range      if the JSON pointer can not be resolved
+    @throw std::domain_error      if an array index begins with '0'
+    @throw std::invalid_argument  if an array index was not a number
+    */
+    reference get_unchecked(pointer ptr) const
+    {
+        for (const auto& reference_token : reference_tokens)
+        {
+            // convert null values to arrays or objects before continuing
+            if (ptr->m_type == value_t::null)
+            {
+                // check if reference token is a number
+                const bool nums = std::all_of(reference_token.begin(),
+                                              reference_token.end(),
+                                              [](const char x)
+                {
+                    return std::isdigit(x);
+                });
+
+                // change value to array for numbers or "-" or to object
+                // otherwise
+                if (nums or reference_token == "-")
+                {
+                    *ptr = value_t::array;
+                }
+                else
+                {
+                    *ptr = value_t::object;
+                }
+            }
+
+            switch (ptr->m_type)
+            {
+                case value_t::object:
+                {
+                    // use unchecked object access
+                    ptr = &ptr->operator[](reference_token);
+                    break;
+                }
+
+                case value_t::array:
+                {
+                    // error condition (cf. RFC 6901, Sect. 4)
+                    if (reference_token.size() > 1 and reference_token[0] == '0')
                     {
-                        // flatten empty object as null
-                        result[reference_string] = nullptr;
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                    }
+
+                    if (reference_token == "-")
+                    {
+                        // explicityly treat "-" as index beyond the end
+                        ptr = &ptr->operator[](ptr->m_value.array->size());
                     }
                     else
                     {
-                        // iterate object and use keys as reference string
-                        for (const auto& element : *value.m_value.object)
-                        {
-                            flatten(reference_string + "/" + escape(element.first),
-                                    element.second, result);
-                        }
+                        // convert array index to number; unchecked access
+                        ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
                     }
                     break;
                 }
 
                 default:
                 {
-                    // add primitive value with its reference string
-                    result[reference_string] = value;
-                    break;
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
                 }
             }
         }
 
-        /*!
-        @param[in] value  flattened JSON
+        return *ptr;
+    }
 
-        @return unflattened JSON
-        */
-        static basic_json unflatten(const basic_json& value)
+    reference get_checked(pointer ptr) const
+    {
+        for (const auto& reference_token : reference_tokens)
         {
-            if (not value.is_object())
+            switch (ptr->m_type)
             {
-                JSON_THROW(std::domain_error("only objects can be unflattened"));
-            }
-
-            basic_json result;
-
-            // iterate the JSON object values
-            for (const auto& element : *value.m_value.object)
-            {
-                if (not element.second.is_primitive())
+                case value_t::object:
                 {
-                    JSON_THROW(std::domain_error("values in object must be primitive"));
+                    // note: at performs range check
+                    ptr = &ptr->at(reference_token);
+                    break;
                 }
 
-                // assign value to reference pointed to by JSON pointer; Note
-                // that if the JSON pointer is "" (i.e., points to the whole
-                // value), function get_and_create returns a reference to
-                // result itself. An assignment will then create a primitive
-                // value.
-                json_pointer(element.first).get_and_create(result) = element.second;
-            }
+                case value_t::array:
+                {
+                    if (reference_token == "-")
+                    {
+                        // "-" always fails the range check
+                        throw std::out_of_range("array index '-' (" +
+                                                std::to_string(ptr->m_value.array->size()) +
+                                                ") is out of range");
+                    }
 
+                    // error condition (cf. RFC 6901, Sect. 4)
+                    if (reference_token.size() > 1 and reference_token[0] == '0')
+                    {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                    }
+
+                    // note: at performs range check
+                    ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                    break;
+                }
+
+                default:
+                {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                }
+            }
+        }
+
+        return *ptr;
+    }
+
+    /*!
+    @brief return a const reference to the pointed to value
+
+    @param[in] ptr  a JSON value
+
+    @return const reference to the JSON value pointed to by the JSON
+            pointer
+    */
+    const_reference get_unchecked(const_pointer ptr) const
+    {
+        for (const auto& reference_token : reference_tokens)
+        {
+            switch (ptr->m_type)
+            {
+                case value_t::object:
+                {
+                    // use unchecked object access
+                    ptr = &ptr->operator[](reference_token);
+                    break;
+                }
+
+                case value_t::array:
+                {
+                    if (reference_token == "-")
+                    {
+                        // "-" cannot be used for const access
+                        throw std::out_of_range("array index '-' (" +
+                                                std::to_string(ptr->m_value.array->size()) +
+                                                ") is out of range");
+                    }
+
+                    // error condition (cf. RFC 6901, Sect. 4)
+                    if (reference_token.size() > 1 and reference_token[0] == '0')
+                    {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                    }
+
+                    // use unchecked array access
+                    ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                    break;
+                }
+
+                default:
+                {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                }
+            }
+        }
+
+        return *ptr;
+    }
+
+    const_reference get_checked(const_pointer ptr) const
+    {
+        for (const auto& reference_token : reference_tokens)
+        {
+            switch (ptr->m_type)
+            {
+                case value_t::object:
+                {
+                    // note: at performs range check
+                    ptr = &ptr->at(reference_token);
+                    break;
+                }
+
+                case value_t::array:
+                {
+                    if (reference_token == "-")
+                    {
+                        // "-" always fails the range check
+                        throw std::out_of_range("array index '-' (" +
+                                                std::to_string(ptr->m_value.array->size()) +
+                                                ") is out of range");
+                    }
+
+                    // error condition (cf. RFC 6901, Sect. 4)
+                    if (reference_token.size() > 1 and reference_token[0] == '0')
+                    {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                    }
+
+                    // note: at performs range check
+                    ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                    break;
+                }
+
+                default:
+                {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                }
+            }
+        }
+
+        return *ptr;
+    }
+
+    /// split the string input to reference tokens
+    static std::vector<std::string> split(const std::string& reference_string)
+    {
+        std::vector<std::string> result;
+
+        // special case: empty reference string -> no reference tokens
+        if (reference_string.empty())
+        {
             return result;
         }
 
-      private:
-        /// the reference tokens
-        std::vector<std::string> reference_tokens {};
-    };
+        // check if nonempty reference string begins with slash
+        if (reference_string[0] != '/')
+        {
+                JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'"));
+        }
+
+        // extract the reference tokens:
+        // - slash: position of the last read slash (or end of string)
+        // - start: position after the previous slash
+        for (
+            // search for the first slash after the first character
+                size_t slash = reference_string.find_first_of('/', 1),
+            // set the beginning of the first reference token
+            start = 1;
+            // we can stop if start == string::npos+1 = 0
+            start != 0;
+            // set the beginning of the next reference token
+            // (will eventually be 0 if slash == std::string::npos)
+            start = slash + 1,
+            // find next slash
+                slash = reference_string.find_first_of('/', start))
+        {
+            // use the text between the beginning of the reference token
+            // (start) and the last slash (slash).
+            auto reference_token = reference_string.substr(start, slash - start);
+
+            // check reference tokens are properly escaped
+                for (size_t pos = reference_token.find_first_of('~');
+                    pos != std::string::npos;
+                        pos = reference_token.find_first_of('~', pos + 1))
+            {
+                assert(reference_token[pos] == '~');
+
+                // ~ must be followed by 0 or 1
+                if (pos == reference_token.size() - 1 or
+                        (reference_token[pos + 1] != '0' and
+                         reference_token[pos + 1] != '1'))
+                {
+                        JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'"));
+                }
+            }
+
+            // finally, store the reference token
+            unescape(reference_token);
+            result.push_back(reference_token);
+        }
+
+        return result;
+    }
+
+    private:
+    /*!
+    @brief replace all occurrences of a substring by another string
+
+    @param[in,out] s  the string to manipulate; changed so that all
+                      occurrences of @a f are replaced with @a t
+    @param[in]     f  the substring to replace with @a t
+    @param[in]     t  the string to replace @a f
+
+    @pre The search string @a f must not be empty.
+
+    @since version 2.0.0
+    */
+    static void replace_substring(std::string& s,
+                                  const std::string& f,
+                                  const std::string& t)
+    {
+        assert(not f.empty());
+
+        for (
+            size_t pos = s.find(f);         // find first occurrence of f
+            pos != std::string::npos;       // make sure f was found
+            s.replace(pos, f.size(), t),    // replace with t
+            pos = s.find(f, pos + t.size()) // find next occurrence of f
+        );
+    }
+
+    /// escape tilde and slash
+    static std::string escape(std::string s)
+    {
+        // escape "~"" to "~0" and "/" to "~1"
+        replace_substring(s, "~", "~0");
+        replace_substring(s, "/", "~1");
+        return s;
+    }
+
+    /// unescape tilde and slash
+    static void unescape(std::string& s)
+    {
+        // first transform any occurrence of the sequence '~1' to '/'
+        replace_substring(s, "~1", "/");
+        // then transform any occurrence of the sequence '~0' to '~'
+        replace_substring(s, "~0", "~");
+    }
+
+    /*!
+    @param[in] reference_string  the reference string to the current value
+    @param[in] value             the value to consider
+    @param[in,out] result        the result object to insert values to
+
+    @note Empty objects or arrays are flattened to `null`.
+    */
+    static void flatten(const std::string& reference_string,
+                        const basic_json& value,
+                        basic_json& result)
+    {
+        switch (value.m_type)
+        {
+            case value_t::array:
+            {
+                if (value.m_value.array->empty())
+                {
+                    // flatten empty array as null
+                    result[reference_string] = nullptr;
+                }
+                else
+                {
+                    // iterate array and use index as reference string
+                    for (size_t i = 0; i < value.m_value.array->size(); ++i)
+                    {
+                        flatten(reference_string + "/" + std::to_string(i),
+                                value.m_value.array->operator[](i), result);
+                    }
+                }
+                break;
+            }
+
+            case value_t::object:
+            {
+                if (value.m_value.object->empty())
+                {
+                    // flatten empty object as null
+                    result[reference_string] = nullptr;
+                }
+                else
+                {
+                    // iterate object and use keys as reference string
+                    for (const auto& element : *value.m_value.object)
+                    {
+                        flatten(reference_string + "/" + escape(element.first),
+                                element.second, result);
+                    }
+                }
+                break;
+            }
+
+            default:
+            {
+                // add primitive value with its reference string
+                result[reference_string] = value;
+                break;
+            }
+        }
+    }
+
+    /*!
+    @param[in] value  flattened JSON
+
+    @return unflattened JSON
+    */
+    static basic_json unflatten(const basic_json& value)
+    {
+        if (not value.is_object())
+        {
+                JSON_THROW(std::domain_error("only objects can be unflattened"));
+        }
+
+        basic_json result;
+
+        // iterate the JSON object values
+        for (const auto& element : *value.m_value.object)
+        {
+            if (not element.second.is_primitive())
+            {
+                    JSON_THROW(std::domain_error("values in object must be primitive"));
+            }
+
+            // assign value to reference pointed to by JSON pointer; Note
+            // that if the JSON pointer is "" (i.e., points to the whole
+            // value), function get_and_create returns a reference to
+            // result itself. An assignment will then create a primitive
+            // value.
+            json_pointer(element.first).get_and_create(result) = element.second;
+        }
+
+        return result;
+    }
+
+    private:
+    /// the reference tokens
+    std::vector<std::string> reference_tokens {};
+               };
 
     //////////////////////////
     // JSON Pointer support //
@@ -11379,38 +11843,38 @@ using json = basic_json<>;
 
 // specialization of std::swap, and std::hash
 namespace std
-{
-/*!
-@brief exchanges the values of two JSON objects
-
-@since version 1.0.0
-*/
-template<>
-inline void swap(nlohmann::json& j1,
-                 nlohmann::json& j2) noexcept(
-                     is_nothrow_move_constructible<nlohmann::json>::value and
-                     is_nothrow_move_assignable<nlohmann::json>::value
-                 )
-{
-    j1.swap(j2);
-}
-
-/// hash value for JSON objects
-template<>
-struct hash<nlohmann::json>
 {
     /*!
-    @brief return a hash value for a JSON object
+    @brief exchanges the values of two JSON objects
 
     @since version 1.0.0
     */
-    std::size_t operator()(const nlohmann::json& j) const
+    template<>
+    inline void swap(nlohmann::json& j1,
+                     nlohmann::json& j2) noexcept(
+                         is_nothrow_move_constructible<nlohmann::json>::value and
+                         is_nothrow_move_assignable<nlohmann::json>::value
+                                                   )
+    {
+        j1.swap(j2);
+    }
+
+    /// hash value for JSON objects
+    template<>
+    struct hash<nlohmann::json>
+    {
+        /*!
+        @brief return a hash value for a JSON object
+
+        @since version 1.0.0
+        */
+        std::size_t operator()(const nlohmann::json& j) const
     {
         // a naive hashing via the string representation
         const auto& h = hash<nlohmann::json::string_t>();
         return h(j.dump());
     }
-};
+                        };
 } // namespace std
 
 /*!
diff --git a/test/src/unit-class_lexer.cpp b/test/src/unit-class_lexer.cpp
index 40867b19..71e75df4 100644
--- a/test/src/unit-class_lexer.cpp
+++ b/test/src/unit-class_lexer.cpp
@@ -39,66 +39,66 @@ TEST_CASE("lexer class")
         SECTION("structural characters")
         {
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("["),
-                              1).scan() == json::lexer::token_type::begin_array));
+                               1).scan() == json::lexer::token_type::begin_array));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("]"),
-                              1).scan() == json::lexer::token_type::end_array));
+                               1).scan() == json::lexer::token_type::end_array));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("{"),
-                              1).scan() == json::lexer::token_type::begin_object));
+                               1).scan() == json::lexer::token_type::begin_object));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("}"),
-                              1).scan() == json::lexer::token_type::end_object));
+                               1).scan() == json::lexer::token_type::end_object));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(","),
-                              1).scan() == json::lexer::token_type::value_separator));
+                               1).scan() == json::lexer::token_type::value_separator));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(":"),
-                              1).scan() == json::lexer::token_type::name_separator));
+                               1).scan() == json::lexer::token_type::name_separator));
         }
 
         SECTION("literal names")
         {
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("null"),
-                              4).scan() == json::lexer::token_type::literal_null));
+                               4).scan() == json::lexer::token_type::literal_null));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("true"),
-                              4).scan() == json::lexer::token_type::literal_true));
+                               4).scan() == json::lexer::token_type::literal_true));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("false"),
-                              5).scan() == json::lexer::token_type::literal_false));
+                               5).scan() == json::lexer::token_type::literal_false));
         }
 
         SECTION("numbers")
         {
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("0"),
-                              1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_number));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1"),
-                              1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_number));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("2"),
-                              1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_number));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("3"),
-                              1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_number));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("4"),
-                              1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_number));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("5"),
-                              1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_number));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("6"),
-                              1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_number));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("7"),
-                              1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_number));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("8"),
-                              1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_number));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("9"),
-                              1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_number));
         }
 
         SECTION("whitespace")
         {
             // result is end_of_input, because not token is following
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" "),
-                              1).scan() == json::lexer::token_type::end_of_input));
+                               1).scan() == json::lexer::token_type::end_of_input));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\t"),
-                              1).scan() == json::lexer::token_type::end_of_input));
+                               1).scan() == json::lexer::token_type::end_of_input));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\n"),
-                              1).scan() == json::lexer::token_type::end_of_input));
+                               1).scan() == json::lexer::token_type::end_of_input));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("\r"),
-                              1).scan() == json::lexer::token_type::end_of_input));
+                               1).scan() == json::lexer::token_type::end_of_input));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>(" \t\n\r\n\t "),
-                              7).scan() == json::lexer::token_type::end_of_input));
+                               7).scan() == json::lexer::token_type::end_of_input));
         }
     }
 
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 364c5ae7..0cd834d6 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -38,252 +38,257 @@ using nlohmann::json;
 
 namespace udt
 {
-  enum class country
-  {
+enum class country
+{
     china,
     france,
     russia
-  };
+};
 
-  struct age
-  {
+struct age
+{
     int m_val;
-  };
+};
 
-  struct name
-  {
+struct name
+{
     std::string m_val;
-  };
+};
 
-  struct address
-  {
+struct address
+{
     std::string m_val;
-  };
+};
 
-  struct person
-  {
+struct person
+{
     age m_age;
     name m_name;
     country m_country;
-  };
+};
 
-  struct contact
-  {
+struct contact
+{
     person m_person;
     address m_address;
-  };
+};
 
-  struct contact_book
-  {
+struct contact_book
+{
     name m_book_name;
     std::vector<contact> m_contacts;
-  };
+};
 }
 
 // to_json methods
 namespace udt
 {
-  // templates because of the custom_json tests (see below)
-  template <typename Json>
-  void to_json(Json& j, age a)
-  {
+// templates because of the custom_json tests (see below)
+template <typename Json>
+void to_json(Json& j, age a)
+{
     j = a.m_val;
-  }
+}
 
-  template <typename Json>
-  void to_json(Json& j, name const& n)
-  {
+template <typename Json>
+void to_json(Json& j, name const& n)
+{
     j = n.m_val;
-  }
+}
 
-  template <typename Json>
-  void to_json(Json& j, country c)
-  {
+template <typename Json>
+void to_json(Json& j, country c)
+{
     switch (c)
     {
-    case country::china:
-      j = u8"中华人民共和国";
-      return;
-    case country::france:
-      j = "France";
-      return;
-    case country::russia:
-      j = u8"Российская Федерация";
-      return;
+        case country::china:
+            j = u8"中华人民共和国";
+            return;
+        case country::france:
+            j = "France";
+            return;
+        case country::russia:
+            j = u8"Российская Федерация";
+            return;
     }
-  }
+}
 
-  template <typename Json>
-  void to_json(Json& j, person const& p)
-  {
+template <typename Json>
+void to_json(Json& j, person const& p)
+{
     j = Json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}};
-  }
+}
 
-  void to_json(nlohmann::json& j, address const& a)
-  {
+void to_json(nlohmann::json& j, address const& a)
+{
     j = a.m_val;
-  }
+}
 
-  void to_json(nlohmann::json& j, contact const& c)
-  {
+void to_json(nlohmann::json& j, contact const& c)
+{
     j = json{{"person", c.m_person}, {"address", c.m_address}};
-  }
+}
 
-  void to_json(nlohmann::json& j, contact_book const& cb)
-  {
+void to_json(nlohmann::json& j, contact_book const& cb)
+{
     j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}};
-  }
+}
 
-  // operators
-  bool operator==(age lhs, age rhs)
-  {
+// operators
+bool operator==(age lhs, age rhs)
+{
     return lhs.m_val == rhs.m_val;
-  }
+}
 
-  bool operator==(address const &lhs, address const &rhs)
-  {
+bool operator==(address const& lhs, address const& rhs)
+{
     return lhs.m_val == rhs.m_val;
-  }
+}
 
-  bool operator==(name const &lhs, name const &rhs)
-  {
+bool operator==(name const& lhs, name const& rhs)
+{
     return lhs.m_val == rhs.m_val;
-  }
+}
 
-  bool operator==(person const &lhs, person const &rhs)
-  {
+bool operator==(person const& lhs, person const& rhs)
+{
     return std::tie(lhs.m_name, lhs.m_age) == std::tie(rhs.m_name, rhs.m_age);
-  }
+}
 
-  bool operator==(contact const &lhs, contact const &rhs)
-  {
+bool operator==(contact const& lhs, contact const& rhs)
+{
     return std::tie(lhs.m_person, lhs.m_address) ==
            std::tie(rhs.m_person, rhs.m_address);
-  }
+}
 
-  bool operator==(contact_book const &lhs, contact_book const &rhs)
-  {
+bool operator==(contact_book const& lhs, contact_book const& rhs)
+{
     return std::tie(lhs.m_book_name, lhs.m_contacts) ==
            std::tie(rhs.m_book_name, rhs.m_contacts);
-  }
+}
 }
 
 // from_json methods
 namespace udt
 {
-  template <typename Json>
-  void from_json(Json const& j, age &a)
-  {
+template <typename Json>
+void from_json(Json const& j, age& a)
+{
     a.m_val = j.template get<int>();
-  }
+}
 
-  template <typename Json>
-  void from_json(Json const& j, name &n)
-  {
+template <typename Json>
+void from_json(Json const& j, name& n)
+{
     n.m_val = j.template get<std::string>();
-  }
+}
 
-  template <typename Json>
-  void from_json(Json const &j, country &c)
-  {
+template <typename Json>
+void from_json(Json const& j, country& c)
+{
     const auto str = j.template get<std::string>();
-    static const std::map<std::string, country> m = {
+    static const std::map<std::string, country> m =
+    {
         {u8"中华人民共和国", country::china},
         {"France", country::france},
-        {"Российская Федерация", country::russia}};
+        {"Российская Федерация", country::russia}
+    };
 
     const auto it = m.find(str);
     // TODO test exceptions
     c = it->second;
-  }
+}
 
-  template <typename Json>
-  void from_json(Json const& j, person &p)
-  {
+template <typename Json>
+void from_json(Json const& j, person& p)
+{
     p.m_age = j["age"].template get<age>();
     p.m_name = j["name"].template get<name>();
     p.m_country = j["country"].template get<country>();
-  }
+}
 
-  void from_json(nlohmann::json const &j, address &a)
-  {
+void from_json(nlohmann::json const& j, address& a)
+{
     a.m_val = j.get<std::string>();
-  }
+}
 
-  void from_json(nlohmann::json const& j, contact &c)
-  {
+void from_json(nlohmann::json const& j, contact& c)
+{
     c.m_person = j["person"].get<person>();
     c.m_address = j["address"].get<address>();
-  }
+}
 
-  void from_json(nlohmann::json const&j, contact_book &cb)
-  {
+void from_json(nlohmann::json const& j, contact_book& cb)
+{
     cb.m_book_name = j["name"].get<name>();
     cb.m_contacts = j["contacts"].get<std::vector<contact>>();
-  }
+}
 }
 
 TEST_CASE("basic usage", "[udt]")
 {
 
-  // a bit narcissic maybe :) ?
-  const udt::age a{23};
-  const udt::name n{"theo"};
-  const udt::country c{udt::country::france};
-  const udt::person sfinae_addict{a, n, c};
-  const udt::person senior_programmer{{42}, {u8"王芳"}, udt::country::china};
-  const udt::address addr{"Paris"};
-  const udt::contact cpp_programmer{sfinae_addict, addr};
-  const udt::contact_book book{{"C++"}, {cpp_programmer, {senior_programmer, addr}}};
+    // a bit narcissic maybe :) ?
+    const udt::age a
+    {
+        23
+    };
+    const udt::name n{"theo"};
+    const udt::country c{udt::country::france};
+    const udt::person sfinae_addict{a, n, c};
+    const udt::person senior_programmer{{42}, {u8"王芳"}, udt::country::china};
+    const udt::address addr{"Paris"};
+    const udt::contact cpp_programmer{sfinae_addict, addr};
+    const udt::contact_book book{{"C++"}, {cpp_programmer, {senior_programmer, addr}}};
 
-  SECTION("conversion to json via free-functions")
-  {
-    CHECK(json(a) == json(23));
-    CHECK(json(n) == json("theo"));
-    CHECK(json(c) == json("France"));
-    CHECK(json(sfinae_addict) == R"({"name":"theo", "age":23, "country":"France"})"_json);
-    CHECK(json("Paris") == json(addr));
-    CHECK(json(cpp_programmer) ==
-          R"({"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"})"_json);
+    SECTION("conversion to json via free-functions")
+    {
+        CHECK(json(a) == json(23));
+        CHECK(json(n) == json("theo"));
+        CHECK(json(c) == json("France"));
+        CHECK(json(sfinae_addict) == R"({"name":"theo", "age":23, "country":"France"})"_json);
+        CHECK(json("Paris") == json(addr));
+        CHECK(json(cpp_programmer) ==
+              R"({"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"})"_json);
 
-    CHECK(
-        json(book) ==
-        u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json);
+        CHECK(
+            json(book) ==
+            u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json);
 
-  }
+    }
 
-  SECTION("conversion from json via free-functions")
-  {
-    const auto big_json =
-        u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json;
-    const auto parsed_book = big_json.get<udt::contact_book>();
-    const auto book_name = big_json["name"].get<udt::name>();
-    const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>();
-    const auto contact_json = big_json["contacts"].at(0);
-    const auto contact = contact_json.get<udt::contact>();
-    const auto person = contact_json["person"].get<udt::person>();
-    const auto address = contact_json["address"].get<udt::address>();
-    const auto age = contact_json["person"]["age"].get<udt::age>();
-    const auto country = contact_json["person"]["country"].get<udt::country>();
-    const auto name = contact_json["person"]["name"].get<udt::name>();
+    SECTION("conversion from json via free-functions")
+    {
+        const auto big_json =
+            u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json;
+        const auto parsed_book = big_json.get<udt::contact_book>();
+        const auto book_name = big_json["name"].get<udt::name>();
+        const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>();
+        const auto contact_json = big_json["contacts"].at(0);
+        const auto contact = contact_json.get<udt::contact>();
+        const auto person = contact_json["person"].get<udt::person>();
+        const auto address = contact_json["address"].get<udt::address>();
+        const auto age = contact_json["person"]["age"].get<udt::age>();
+        const auto country = contact_json["person"]["country"].get<udt::country>();
+        const auto name = contact_json["person"]["name"].get<udt::name>();
 
-    CHECK(age == a);
-    CHECK(name == n);
-    CHECK(country == c);
-    CHECK(address == addr);
-    CHECK(person == sfinae_addict);
-    CHECK(contact == cpp_programmer);
-    CHECK(contacts == book.m_contacts);
-    CHECK(book_name == udt::name{"C++"});
-    CHECK(book == parsed_book);
-  }
+        CHECK(age == a);
+        CHECK(name == n);
+        CHECK(country == c);
+        CHECK(address == addr);
+        CHECK(person == sfinae_addict);
+        CHECK(contact == cpp_programmer);
+        CHECK(contacts == book.m_contacts);
+        CHECK(book_name == udt::name{"C++"});
+        CHECK(book == parsed_book);
+    }
 }
 
 namespace udt
 {
 struct legacy_type
 {
-  std::string number;
+    std::string number;
 };
 }
 
@@ -292,88 +297,96 @@ namespace nlohmann
 template <typename T>
 struct adl_serializer<std::shared_ptr<T>>
 {
-  static void to_json(json& j, std::shared_ptr<T> const& opt)
-  {
-    if (opt)
-      j = *opt;
-    else
-      j = nullptr;
-  }
+    static void to_json(json& j, std::shared_ptr<T> const& opt)
+    {
+        if (opt)
+        {
+            j = *opt;
+        }
+        else
+        {
+            j = nullptr;
+        }
+    }
 
-  static void from_json(json const &j, std::shared_ptr<T> &opt)
-  {
-    if (j.is_null())
-      opt = nullptr;
-    else
-      opt.reset(new T(j.get<T>()));
-  }
+    static void from_json(json const& j, std::shared_ptr<T>& opt)
+    {
+        if (j.is_null())
+        {
+            opt = nullptr;
+        }
+        else
+        {
+            opt.reset(new T(j.get<T>()));
+        }
+    }
 };
 
 template <>
 struct adl_serializer<udt::legacy_type>
 {
-  static void to_json(json& j, udt::legacy_type const& l)
-  {
-    j = std::stoi(l.number);
-  }
+    static void to_json(json& j, udt::legacy_type const& l)
+    {
+        j = std::stoi(l.number);
+    }
 
-  static void from_json(json const& j, udt::legacy_type& l)
-  {
-    l.number = std::to_string(j.get<int>());
-  }
+    static void from_json(json const& j, udt::legacy_type& l)
+    {
+        l.number = std::to_string(j.get<int>());
+    }
 };
 }
 
 TEST_CASE("adl_serializer specialization", "[udt]")
 {
-  SECTION("partial specialization")
-  {
-    SECTION("to_json")
+    SECTION("partial specialization")
     {
-      std::shared_ptr<udt::person> optPerson;
+        SECTION("to_json")
+        {
+            std::shared_ptr<udt::person> optPerson;
 
-      json j = optPerson;
-      CHECK(j.is_null());
+            json j = optPerson;
+            CHECK(j.is_null());
 
-      optPerson.reset(new udt::person{{42}, {"John Doe"}});
-      j = optPerson;
-      CHECK_FALSE(j.is_null());
+            optPerson.reset(new udt::person{{42}, {"John Doe"}});
+            j = optPerson;
+            CHECK_FALSE(j.is_null());
 
-      CHECK(j.get<udt::person>() == *optPerson);
+            CHECK(j.get<udt::person>() == *optPerson);
+        }
+
+        SECTION("from_json")
+        {
+            auto person = udt::person{{42}, {"John Doe"}};
+            json j = person;
+
+            auto optPerson = j.get<std::shared_ptr<udt::person>>();
+            REQUIRE(optPerson);
+            CHECK(*optPerson == person);
+
+            j = nullptr;
+            optPerson = j.get<std::shared_ptr<udt::person>>();
+            CHECK(!optPerson);
+        }
     }
 
-    SECTION("from_json")
+    SECTION("total specialization")
     {
-      auto person = udt::person{{42}, {"John Doe"}};
-      json j = person;
+        SECTION("to_json")
+        {
+            udt::legacy_type lt{"4242"};
 
-      auto optPerson = j.get<std::shared_ptr<udt::person>>();
-      REQUIRE(optPerson);
-      CHECK(*optPerson == person);
+            json j = lt;
+            CHECK(j.get<int>() == 4242);
+        }
 
-      j = nullptr;
-      optPerson = j.get<std::shared_ptr<udt::person>>();
-      CHECK(!optPerson);
+        SECTION("from_json")
+        {
+            json j = 4242;
+            auto lt = j.get<udt::legacy_type>();
+            CHECK(lt.number == "4242");
+        }
     }
-  }
-
-  SECTION("total specialization")
-  {
-    SECTION("to_json")
-    {
-      udt::legacy_type lt{"4242"};
-
-      json j = lt;
-      CHECK(j.get<int>() == 4242);
-    }
-
-    SECTION("from_json")
-    {
-      json j = 4242;
-      auto lt = j.get<udt::legacy_type>();
-      CHECK(lt.number == "4242");
-    }
-  }
 }
 
 namespace nlohmann
@@ -383,22 +396,22 @@ namespace nlohmann
 template <typename T>
 struct adl_serializer<std::vector<T>>
 {
-  static void to_json(json& j, std::vector<T> const& opt)
-  {
-  }
+    static void to_json(json& j, std::vector<T> const& opt)
+    {
+    }
 
-  static void from_json(json const &j, std::vector<T> &opt)
-  {
-  }
+    static void from_json(json const& j, std::vector<T>& opt)
+    {
+    }
 };
 }
 
 TEST_CASE("current supported types are preferred over specializations", "[udt]")
 {
 
-  json j = std::vector<int>{1, 2, 3};
-  auto f = j.get<std::vector<int>>();
-  CHECK((f == std::vector<int>{1, 2, 3}));
+    json j = std::vector<int> {1, 2, 3};
+    auto f = j.get<std::vector<int>>();
+    CHECK((f == std::vector<int> {1, 2, 3}));
 }
 
 namespace nlohmann
@@ -406,55 +419,63 @@ namespace nlohmann
 template <typename T>
 struct adl_serializer<std::unique_ptr<T>>
 {
-  static void to_json(json& j, std::unique_ptr<T> const& opt)
-  {
-    if (opt)
-      j = *opt;
-    else
-      j = nullptr;
-  }
+    static void to_json(json& j, std::unique_ptr<T> const& opt)
+    {
+        if (opt)
+        {
+            j = *opt;
+        }
+        else
+        {
+            j = nullptr;
+        }
+    }
 
-  // this is the overload needed for non-copyable types,
-  // should we add a priority tag in the implementation to prefer this overload if it exists?
-  static std::unique_ptr<T> from_json(json const &j)
-  {
-    if (j.is_null())
-      return nullptr;
-    else
-      return std::unique_ptr<T>(new T(j.get<T>()));
-  }
+    // this is the overload needed for non-copyable types,
+    // should we add a priority tag in the implementation to prefer this overload if it exists?
+    static std::unique_ptr<T> from_json(json const& j)
+    {
+        if (j.is_null())
+        {
+            return nullptr;
+        }
+        else
+        {
+            return std::unique_ptr<T>(new T(j.get<T>()));
+        }
+    }
 };
 }
 
 TEST_CASE("Non-copyable types", "[udt]")
 {
-  SECTION("to_json")
-  {
-    std::unique_ptr<udt::person> optPerson;
+    SECTION("to_json")
+    {
+        std::unique_ptr<udt::person> optPerson;
 
-    json j = optPerson;
-    CHECK(j.is_null());
+        json j = optPerson;
+        CHECK(j.is_null());
 
-    optPerson.reset(new udt::person{{42}, {"John Doe"}});
-    j = optPerson;
-    CHECK_FALSE(j.is_null());
+        optPerson.reset(new udt::person{{42}, {"John Doe"}});
+        j = optPerson;
+        CHECK_FALSE(j.is_null());
 
-    CHECK(j.get<udt::person>() == *optPerson);
-  }
+        CHECK(j.get<udt::person>() == *optPerson);
+    }
 
-  SECTION("from_json")
-  {
-    auto person = udt::person{{42}, {"John Doe"}};
-    json j = person;
+    SECTION("from_json")
+    {
+        auto person = udt::person{{42}, {"John Doe"}};
+        json j = person;
 
-    auto optPerson = j.get<std::unique_ptr<udt::person>>();
-    REQUIRE(optPerson);
-    CHECK(*optPerson == person);
+        auto optPerson = j.get<std::unique_ptr<udt::person>>();
+        REQUIRE(optPerson);
+        CHECK(*optPerson == person);
 
-    j = nullptr;
-    optPerson = j.get<std::unique_ptr<udt::person>>();
-    CHECK(!optPerson);
-  }
+        j = nullptr;
+        optPerson = j.get<std::unique_ptr<udt::person>>();
+        CHECK(!optPerson);
+    }
 }
 
 // custom serializer
@@ -462,87 +483,89 @@ TEST_CASE("Non-copyable types", "[udt]")
 template <typename T, typename = typename std::enable_if<std::is_pod<T>::value>::type>
 struct pod_serializer
 {
-  // I could forward-declare this struct, and add a basic_json alias
-  template <typename Json>
-  static void from_json(Json const& j , T& t)
-  {
-    auto value = j.template get<std::uint64_t>();
-    auto bytes = static_cast<char*>(static_cast<void*>(&value));
-    std::memcpy(&t, bytes, sizeof(value));
-  }
+    // I could forward-declare this struct, and add a basic_json alias
+    template <typename Json>
+    static void from_json(Json const& j , T& t)
+    {
+        auto value = j.template get<std::uint64_t>();
+        auto bytes = static_cast<char*>(static_cast<void*>(&value));
+        std::memcpy(&t, bytes, sizeof(value));
+    }
 
-  template <typename Json>
-  static void to_json(Json& j, T const& t)
-  {
-    auto bytes = static_cast<char const*>(static_cast<void const*>(&t));
-    std::uint64_t value = bytes[0];
-    for (auto i = 1; i < 8; ++i)
-      value |= bytes[i] << 8 * i;
+    template <typename Json>
+    static void to_json(Json& j, T const& t)
+    {
+        auto bytes = static_cast<char const*>(static_cast<void const*>(&t));
+        std::uint64_t value = bytes[0];
+        for (auto i = 1; i < 8; ++i)
+        {
+            value |= bytes[i] << 8 * i;
+        }
 
-    j = value;
-  }
+        j = value;
+    }
 };
 
 namespace udt
 {
 struct small_pod
 {
-  int begin;
-  char middle;
-  short end;
+    int begin;
+    char middle;
+    short end;
 };
 
 bool operator==(small_pod lhs, small_pod rhs)
 {
-  return std::tie(lhs.begin, lhs.middle, lhs.end) ==
-         std::tie(lhs.begin, lhs.middle, lhs.end);
+    return std::tie(lhs.begin, lhs.middle, lhs.end) ==
+           std::tie(lhs.begin, lhs.middle, lhs.end);
 }
 }
 
 TEST_CASE("custom serializer for pods", "[udt]")
 {
-  using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, pod_serializer>;
+    using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, pod_serializer>;
 
-  auto p = udt::small_pod{42, '/', 42};
-  custom_json j = p;
+    auto p = udt::small_pod{42, '/', 42};
+    custom_json j = p;
 
-  auto p2 = j.get<udt::small_pod>();
+    auto p2 = j.get<udt::small_pod>();
 
-  CHECK(p == p2);
+    CHECK(p == p2);
 }
 
 template <typename T, typename>
 struct another_adl_serializer;
 
-  using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, another_adl_serializer>;
+using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, another_adl_serializer>;
 
 template <typename T, typename>
 struct another_adl_serializer
 {
-  static void from_json(custom_json const& j , T& t)
-  {
-    using nlohmann::from_json;
-    from_json(j, t);
-  }
+    static void from_json(custom_json const& j , T& t)
+    {
+        using nlohmann::from_json;
+        from_json(j, t);
+    }
 
-  static void to_json(custom_json& j , T const& t)
-  {
-    using nlohmann::to_json;
-    to_json(j, t);
-  }
+    static void to_json(custom_json& j , T const& t)
+    {
+        using nlohmann::to_json;
+        to_json(j, t);
+    }
 };
 
 TEST_CASE("custom serializer that does adl by default", "[udt]")
 {
-  using json = nlohmann::json;
+    using json = nlohmann::json;
 
-  auto me = udt::person{23, "theo", udt::country::france};
+    auto me = udt::person{23, "theo", udt::country::france};
 
-  json j = me;
-  custom_json cj = me;
+    json j = me;
+    custom_json cj = me;
 
-  CHECK(j.dump() == cj.dump());
+    CHECK(j.dump() == cj.dump());
 
-  CHECK(me == j.get<udt::person>());
-  CHECK(me == cj.get<udt::person>());
+    CHECK(me == j.get<udt::person>());
+    CHECK(me == cj.get<udt::person>());
 }

From 034d5ed97e6d7c1ef051be27256aded65871ee81 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sun, 18 Dec 2016 21:02:09 +0100
Subject: [PATCH 074/174] :lipstick: some cleanup

---
 src/json.hpp      | 56 +++++++++++++++++++++--------------------------
 src/json.hpp.re2c | 56 +++++++++++++++++++++--------------------------
 2 files changed, 50 insertions(+), 62 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 7325e7c8..7a1a9392 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -141,7 +141,8 @@ using is_unscoped_enum =
 
 namespace detail
 {
-// Very useful construct against boilerplate (more boilerplate needed than in C++17: http://en.cppreference.com/w/cpp/types/void_t)
+// very useful construct against boilerplate (more boilerplate needed than in
+// C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
 {
     using type = void;
@@ -174,29 +175,29 @@ struct disjunction<B1, Bn...>
 
 /*!
 @brief Helper to determine whether there's a key_type for T.
-Thus helper is used to tell associative containers apart from other containers
+
+This helper is used to tell associative containers apart from other containers
 such as sequence containers. For instance, `std::map` passes the test as it
 contains a `mapped_type`, whereas `std::vector` fails the test.
+
 @sa http://stackoverflow.com/a/7728728/266378
 @since version 1.0.0, overworked in version 2.0.6
 */
-#define NLOHMANN_JSON_HAS_HELPER(type)                                         \
-    template <typename T> struct has_##type {                                    \
-    private:                                                                     \
-        template <typename U, typename = typename U::type>                         \
-        static int detect(U &&);                                                   \
-        \
-        static void detect(...);                                                   \
-        \
-    public:                                                                      \
-        static constexpr bool value =                                              \
-                std::is_integral<decltype(detect(std::declval<T>()))>::value;          \
+#define NLOHMANN_JSON_HAS_HELPER(type)                                        \
+    template <typename T> struct has_##type {                                 \
+    private:                                                                  \
+        template <typename U, typename = typename U::type>                    \
+        static int detect(U &&);                                              \
+        static void detect(...);                                              \
+    public:                                                                   \
+        static constexpr bool value =                                         \
+                std::is_integral<decltype(detect(std::declval<T>()))>::value; \
     };
 
-NLOHMANN_JSON_HAS_HELPER(mapped_type)
-NLOHMANN_JSON_HAS_HELPER(key_type)
-NLOHMANN_JSON_HAS_HELPER(value_type)
-NLOHMANN_JSON_HAS_HELPER(iterator)
+NLOHMANN_JSON_HAS_HELPER(mapped_type);
+NLOHMANN_JSON_HAS_HELPER(key_type);
+NLOHMANN_JSON_HAS_HELPER(value_type);
+NLOHMANN_JSON_HAS_HELPER(iterator);
 
 #undef NLOHMANN_JSON_HAS_HELPER
 
@@ -216,8 +217,8 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 template<class RealType, class CompatibleObjectType>
 struct is_compatible_object_type
 {
-    // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void
-    // hence the conjunction
+    // As noted ahead, we need to stop evaluating traits if
+    // `CompatibleObjectType = void`, hence the conjunction
     static auto constexpr value = is_compatible_object_type_impl <
                                   conjunction<negation<std::is_same<void, CompatibleObjectType>>,
                                   has_mapped_type<CompatibleObjectType>,
@@ -249,8 +250,8 @@ struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-    // the check for CompatibleArrayType = void is done in is_compatible_object_type
-    // but we need the conjunction here as well
+    // the check for CompatibleArrayType = void is done in
+    // `is_compatible_object_type`, but we need the conjunction here as well
     static auto constexpr value = is_compatible_array_type_impl <
                                   conjunction<negation<is_compatible_object_type<
                                   typename BasicJson::object_t, CompatibleArrayType>>,
@@ -302,8 +303,7 @@ struct is_compatible_basic_json_type
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value or
         is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
-        is_compatible_integer_type<typename BasicJson::number_integer_t,
-        T>::value or
+        is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or
         is_compatible_integer_type<typename BasicJson::number_unsigned_t,
         T>::value;
 };
@@ -320,8 +320,7 @@ struct is_basic_json_nested_class
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
-template <template <typename, typename> class JSONSerializer, typename Json,
-          typename T>
+template <template <typename, typename> class JSONSerializer, typename Json, typename T>
 struct has_from_json
 {
   private:
@@ -329,7 +328,6 @@ struct has_from_json
     template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
                   std::declval<Json>(), std::declval<T&>()))>::value>>
     static int detect(U&&);
-
     static void detect(...);
 
   public:
@@ -346,7 +344,6 @@ struct has_non_default_from_json
   private:
     template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
     static int detect(U&&);
-
     static void detect(...);
 
   public:
@@ -363,7 +360,6 @@ struct has_to_json
     template <typename U, typename = decltype(uncvref_t<U>::to_json(
                   std::declval<Json&>(), std::declval<T>()))>
     static int detect(U&&);
-
     static void detect(...);
 
   public:
@@ -1598,8 +1594,7 @@ class basic_json
     @since version 1.0.0
     */
     template <class CompatibleArrayType,
-              enable_if_t<detail::is_compatible_array_type<
-                              basic_json_t, CompatibleArrayType>::value,
+              enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value,
                           int> = 0>
     basic_json(const CompatibleArrayType& val) : m_type(value_t::array)
     {
@@ -1620,7 +1615,6 @@ class basic_json
                     not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
-
                     detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
                                             uncvref_t<T>, basic_json_t>>,
                                         detail::has_to_json<JSONSerializer, basic_json,
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 12fde56e..66b425b1 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -141,7 +141,8 @@ using is_unscoped_enum =
 
 namespace detail
 {
-// Very useful construct against boilerplate (more boilerplate needed than in C++17: http://en.cppreference.com/w/cpp/types/void_t)
+// very useful construct against boilerplate (more boilerplate needed than in
+// C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
 {
     using type = void;
@@ -174,29 +175,29 @@ struct disjunction<B1, Bn...>
 
 /*!
 @brief Helper to determine whether there's a key_type for T.
-Thus helper is used to tell associative containers apart from other containers
+
+This helper is used to tell associative containers apart from other containers
 such as sequence containers. For instance, `std::map` passes the test as it
 contains a `mapped_type`, whereas `std::vector` fails the test.
+
 @sa http://stackoverflow.com/a/7728728/266378
 @since version 1.0.0, overworked in version 2.0.6
 */
-#define NLOHMANN_JSON_HAS_HELPER(type)                                         \
-    template <typename T> struct has_##type {                                    \
-    private:                                                                     \
-        template <typename U, typename = typename U::type>                         \
-        static int detect(U &&);                                                   \
-        \
-        static void detect(...);                                                   \
-        \
-    public:                                                                      \
-        static constexpr bool value =                                              \
-                std::is_integral<decltype(detect(std::declval<T>()))>::value;          \
+#define NLOHMANN_JSON_HAS_HELPER(type)                                        \
+    template <typename T> struct has_##type {                                 \
+    private:                                                                  \
+        template <typename U, typename = typename U::type>                    \
+        static int detect(U &&);                                              \
+        static void detect(...);                                              \
+    public:                                                                   \
+        static constexpr bool value =                                         \
+                std::is_integral<decltype(detect(std::declval<T>()))>::value; \
     };
 
-NLOHMANN_JSON_HAS_HELPER(mapped_type)
-NLOHMANN_JSON_HAS_HELPER(key_type)
-NLOHMANN_JSON_HAS_HELPER(value_type)
-NLOHMANN_JSON_HAS_HELPER(iterator)
+NLOHMANN_JSON_HAS_HELPER(mapped_type);
+NLOHMANN_JSON_HAS_HELPER(key_type);
+NLOHMANN_JSON_HAS_HELPER(value_type);
+NLOHMANN_JSON_HAS_HELPER(iterator);
 
 #undef NLOHMANN_JSON_HAS_HELPER
 
@@ -216,8 +217,8 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 template<class RealType, class CompatibleObjectType>
 struct is_compatible_object_type
 {
-    // As noted ahead, we need to stop evaluating traits if CompatibleObjectType = void
-    // hence the conjunction
+    // As noted ahead, we need to stop evaluating traits if
+    // `CompatibleObjectType = void`, hence the conjunction
     static auto constexpr value = is_compatible_object_type_impl <
                                   conjunction<negation<std::is_same<void, CompatibleObjectType>>,
                                   has_mapped_type<CompatibleObjectType>,
@@ -249,8 +250,8 @@ struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-    // the check for CompatibleArrayType = void is done in is_compatible_object_type
-    // but we need the conjunction here as well
+    // the check for CompatibleArrayType = void is done in
+    // `is_compatible_object_type`, but we need the conjunction here as well
     static auto constexpr value = is_compatible_array_type_impl <
                                   conjunction<negation<is_compatible_object_type<
                                   typename BasicJson::object_t, CompatibleArrayType>>,
@@ -302,8 +303,7 @@ struct is_compatible_basic_json_type
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value or
         is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
-        is_compatible_integer_type<typename BasicJson::number_integer_t,
-        T>::value or
+        is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or
         is_compatible_integer_type<typename BasicJson::number_unsigned_t,
         T>::value;
 };
@@ -320,8 +320,7 @@ struct is_basic_json_nested_class
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
-template <template <typename, typename> class JSONSerializer, typename Json,
-          typename T>
+template <template <typename, typename> class JSONSerializer, typename Json, typename T>
 struct has_from_json
 {
   private:
@@ -329,7 +328,6 @@ struct has_from_json
     template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
                   std::declval<Json>(), std::declval<T&>()))>::value>>
     static int detect(U&&);
-
     static void detect(...);
 
   public:
@@ -346,7 +344,6 @@ struct has_non_default_from_json
   private:
     template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
     static int detect(U&&);
-
     static void detect(...);
 
   public:
@@ -363,7 +360,6 @@ struct has_to_json
     template <typename U, typename = decltype(uncvref_t<U>::to_json(
                   std::declval<Json&>(), std::declval<T>()))>
     static int detect(U&&);
-
     static void detect(...);
 
   public:
@@ -1599,8 +1595,7 @@ class basic_json
     @since version 1.0.0
     */
     template <class CompatibleArrayType,
-              enable_if_t<detail::is_compatible_array_type<
-                              basic_json_t, CompatibleArrayType>::value,
+              enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value,
                           int> = 0>
     basic_json(const CompatibleArrayType& val) : m_type(value_t::array)
     {
@@ -1621,7 +1616,6 @@ class basic_json
                     not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
-
                     detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
                                             uncvref_t<T>, basic_json_t>>,
                                         detail::has_to_json<JSONSerializer, basic_json,

From d359684f2b11f879000e9567135874691a692172 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 7 Jan 2017 15:26:50 +0100
Subject: [PATCH 075/174] move enum class value_t outside of basic_json

---
 src/json.hpp      | 1438 +++++++++++++++------------------------------
 src/json.hpp.re2c |  160 +++--
 2 files changed, 556 insertions(+), 1042 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 7a1a9392..cc397e39 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -106,6 +106,46 @@ SOFTWARE.
 */
 namespace nlohmann
 {
+
+///////////////////////////
+// JSON type enumeration //
+///////////////////////////
+
+/*!
+@brief the JSON type enumeration
+
+This enumeration collects the different JSON types. It is internally used
+to distinguish the stored values, and the functions @ref is_null(), @ref
+is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref
+is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and
+@ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and
+@ref is_structured() rely on it.
+
+@note There are three enumeration entries (number_integer,
+number_unsigned, and number_float), because the library distinguishes
+these three types for numbers: @ref number_unsigned_t is used for unsigned
+integers, @ref number_integer_t is used for signed integers, and @ref
+number_float_t is used for floating-point numbers or to approximate
+integers which do not fit in the limits of their respective type.
+
+@sa @ref basic_json(const value_t value_type) -- create a JSON value with
+the default value for a given type
+
+@since version 1.0.0
+*/
+enum class value_t : uint8_t
+{
+  null,            ///< null value
+  object,          ///< object (unordered set of name/value pairs)
+  array,           ///< array (ordered collection of values)
+  string,          ///< string value
+  boolean,         ///< boolean value
+  number_integer,  ///< number value (signed integer)
+  number_unsigned, ///< number value (unsigned integer)
+  number_float,    ///< number value (floating-point)
+  discarded        ///< discarded by the the parser callback function
+};
+
 // alias templates to reduce boilerplate
 template <bool B, typename T = void>
 using enable_if_t = typename std::enable_if<B, T>::type;
@@ -552,6 +592,7 @@ class basic_json
     class primitive_iterator_t;
 
   public:
+    using value_t = ::nlohmann::value_t;
     // forward declarations
     template<typename U> class iter_impl;
     template<typename Base> class json_reverse_iterator;
@@ -1102,47 +1143,6 @@ class basic_json
 
     /// @}
 
-
-    ///////////////////////////
-    // JSON type enumeration //
-    ///////////////////////////
-
-    /*!
-    @brief the JSON type enumeration
-
-    This enumeration collects the different JSON types. It is internally used
-    to distinguish the stored values, and the functions @ref is_null(), @ref
-    is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref
-    is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and
-    @ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and
-    @ref is_structured() rely on it.
-
-    @note There are three enumeration entries (number_integer,
-    number_unsigned, and number_float), because the library distinguishes
-    these three types for numbers: @ref number_unsigned_t is used for unsigned
-    integers, @ref number_integer_t is used for signed integers, and @ref
-    number_float_t is used for floating-point numbers or to approximate
-    integers which do not fit in the limits of their respective type.
-
-    @sa @ref basic_json(const value_t value_type) -- create a JSON value with
-    the default value for a given type
-
-    @since version 1.0.0
-    */
-    enum class value_t : uint8_t
-    {
-        null,            ///< null value
-        object,          ///< object (unordered set of name/value pairs)
-        array,           ///< array (ordered collection of values)
-        string,          ///< string value
-        boolean,         ///< boolean value
-        number_integer,  ///< number value (signed integer)
-        number_unsigned, ///< number value (unsigned integer)
-        number_float,    ///< number value (floating-point)
-        discarded        ///< discarded by the the parser callback function
-    };
-
-
   private:
 
     /// helper for exception-safe object creation
@@ -5912,47 +5912,6 @@ class basic_json
 
     /// @}
 
-
-    //////////////////////////////////////////
-    // lexicographical comparison operators //
-    //////////////////////////////////////////
-
-    /// @name lexicographical comparison operators
-    /// @{
-
-  private:
-    /*!
-    @brief comparison operator for JSON types
-
-    Returns an ordering that is similar to Python:
-    - order: null < boolean < number < object < array < string
-    - furthermore, each type is not smaller than itself
-
-    @since version 1.0.0
-    */
-    friend bool operator<(const value_t lhs, const value_t rhs) noexcept
-    {
-        static constexpr std::array<uint8_t, 8> order = {{
-                0, // null
-                3, // object
-                4, // array
-                5, // string
-                1, // boolean
-                2, // integer
-                2, // unsigned
-                2, // float
-            }
-        };
-
-        // discarded values are not comparable
-        if (lhs == value_t::discarded or rhs == value_t::discarded)
-        {
-            return false;
-        }
-
-        return order[static_cast<std::size_t>(lhs)] < order[static_cast<std::size_t>(rhs)];
-    }
-
   public:
     /*!
     @brief comparison: equal
@@ -9741,915 +9700,437 @@ class basic_json
             m_start = m_cursor;
             assert(m_start != nullptr);
 
-
-            {
-                lexer_char_t yych;
-                unsigned int yyaccept = 0;
-                static const unsigned char yybm[] =
-                {
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,  32,  32,   0,   0,  32,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    160, 128,   0, 128, 128, 128, 128, 128,
-                    128, 128, 128, 128, 128, 128, 128, 128,
-                    192, 192, 192, 192, 192, 192, 192, 192,
-                    192, 192, 128, 128, 128, 128, 128, 128,
-                    128, 128, 128, 128, 128, 128, 128, 128,
-                    128, 128, 128, 128, 128, 128, 128, 128,
-                    128, 128, 128, 128, 128, 128, 128, 128,
-                    128, 128, 128, 128,   0, 128, 128, 128,
-                    128, 128, 128, 128, 128, 128, 128, 128,
-                    128, 128, 128, 128, 128, 128, 128, 128,
-                    128, 128, 128, 128, 128, 128, 128, 128,
-                    128, 128, 128, 128, 128, 128, 128, 128,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                    0,   0,   0,   0,   0,   0,   0,   0,
-                };
-                if ((m_limit - m_cursor) < 5)
-                {
-                    fill_line_buffer(5);    // LCOV_EXCL_LINE
+            
+    {
+        lexer_char_t yych;
+        unsigned int yyaccept = 0;
+        static const unsigned char yybm[] = {
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,  32,  32,   0,   0,  32,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+            160, 128,   0, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            192, 192, 192, 192, 192, 192, 192, 192, 
+            192, 192, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128,   0, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+        };
+        if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yybm[0+yych] & 32) {
+            goto basic_json_parser_6;
+        }
+        if (yych <= '[') {
+            if (yych <= '-') {
+                if (yych <= '"') {
+                    if (yych <= 0x00) goto basic_json_parser_2;
+                    if (yych <= '!') goto basic_json_parser_4;
+                    goto basic_json_parser_9;
+                } else {
+                    if (yych <= '+') goto basic_json_parser_4;
+                    if (yych <= ',') goto basic_json_parser_10;
+                    goto basic_json_parser_12;
                 }
-                yych = *m_cursor;
-                if (yybm[0 + yych] & 32)
-                {
-                    goto basic_json_parser_6;
+            } else {
+                if (yych <= '9') {
+                    if (yych <= '/') goto basic_json_parser_4;
+                    if (yych <= '0') goto basic_json_parser_13;
+                    goto basic_json_parser_15;
+                } else {
+                    if (yych <= ':') goto basic_json_parser_17;
+                    if (yych <= 'Z') goto basic_json_parser_4;
+                    goto basic_json_parser_19;
                 }
-                if (yych <= '[')
-                {
-                    if (yych <= '-')
-                    {
-                        if (yych <= '"')
-                        {
-                            if (yych <= 0x00)
-                            {
-                                goto basic_json_parser_2;
-                            }
-                            if (yych <= '!')
-                            {
-                                goto basic_json_parser_4;
-                            }
-                            goto basic_json_parser_9;
-                        }
-                        else
-                        {
-                            if (yych <= '+')
-                            {
-                                goto basic_json_parser_4;
-                            }
-                            if (yych <= ',')
-                            {
-                                goto basic_json_parser_10;
-                            }
-                            goto basic_json_parser_12;
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= '9')
-                        {
-                            if (yych <= '/')
-                            {
-                                goto basic_json_parser_4;
-                            }
-                            if (yych <= '0')
-                            {
-                                goto basic_json_parser_13;
-                            }
-                            goto basic_json_parser_15;
-                        }
-                        else
-                        {
-                            if (yych <= ':')
-                            {
-                                goto basic_json_parser_17;
-                            }
-                            if (yych <= 'Z')
-                            {
-                                goto basic_json_parser_4;
-                            }
-                            goto basic_json_parser_19;
-                        }
-                    }
+            }
+        } else {
+            if (yych <= 'n') {
+                if (yych <= 'e') {
+                    if (yych == ']') goto basic_json_parser_21;
+                    goto basic_json_parser_4;
+                } else {
+                    if (yych <= 'f') goto basic_json_parser_23;
+                    if (yych <= 'm') goto basic_json_parser_4;
+                    goto basic_json_parser_24;
                 }
-                else
-                {
-                    if (yych <= 'n')
-                    {
-                        if (yych <= 'e')
-                        {
-                            if (yych == ']')
-                            {
-                                goto basic_json_parser_21;
-                            }
-                            goto basic_json_parser_4;
-                        }
-                        else
-                        {
-                            if (yych <= 'f')
-                            {
-                                goto basic_json_parser_23;
-                            }
-                            if (yych <= 'm')
-                            {
-                                goto basic_json_parser_4;
-                            }
-                            goto basic_json_parser_24;
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= 'z')
-                        {
-                            if (yych == 't')
-                            {
-                                goto basic_json_parser_25;
-                            }
-                            goto basic_json_parser_4;
-                        }
-                        else
-                        {
-                            if (yych <= '{')
-                            {
-                                goto basic_json_parser_26;
-                            }
-                            if (yych == '}')
-                            {
-                                goto basic_json_parser_28;
-                            }
-                            goto basic_json_parser_4;
-                        }
-                    }
+            } else {
+                if (yych <= 'z') {
+                    if (yych == 't') goto basic_json_parser_25;
+                    goto basic_json_parser_4;
+                } else {
+                    if (yych <= '{') goto basic_json_parser_26;
+                    if (yych == '}') goto basic_json_parser_28;
+                    goto basic_json_parser_4;
                 }
+            }
+        }
 basic_json_parser_2:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::end_of_input;
-                    break;
-                }
+        ++m_cursor;
+        { last_token_type = token_type::end_of_input; break; }
 basic_json_parser_4:
-                ++m_cursor;
+        ++m_cursor;
 basic_json_parser_5:
-                {
-                    last_token_type = token_type::parse_error;
-                    break;
-                }
+        { last_token_type = token_type::parse_error; break; }
 basic_json_parser_6:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yybm[0 + yych] & 32)
-                {
-                    goto basic_json_parser_6;
-                }
-                {
-                    continue;
-                }
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yybm[0+yych] & 32) {
+            goto basic_json_parser_6;
+        }
+        { continue; }
 basic_json_parser_9:
-                yyaccept = 0;
-                yych = *(m_marker = ++m_cursor);
-                if (yych <= 0x1F)
-                {
-                    goto basic_json_parser_5;
-                }
-                if (yych <= 0x7F)
-                {
-                    goto basic_json_parser_31;
-                }
-                if (yych <= 0xC1)
-                {
-                    goto basic_json_parser_5;
-                }
-                if (yych <= 0xF4)
-                {
-                    goto basic_json_parser_31;
-                }
-                goto basic_json_parser_5;
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych <= 0x1F) goto basic_json_parser_5;
+        if (yych <= 0x7F) goto basic_json_parser_31;
+        if (yych <= 0xC1) goto basic_json_parser_5;
+        if (yych <= 0xF4) goto basic_json_parser_31;
+        goto basic_json_parser_5;
 basic_json_parser_10:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::value_separator;
-                    break;
-                }
+        ++m_cursor;
+        { last_token_type = token_type::value_separator; break; }
 basic_json_parser_12:
-                yych = *++m_cursor;
-                if (yych <= '/')
-                {
-                    goto basic_json_parser_5;
-                }
-                if (yych <= '0')
-                {
-                    goto basic_json_parser_13;
-                }
-                if (yych <= '9')
-                {
-                    goto basic_json_parser_15;
-                }
-                goto basic_json_parser_5;
+        yych = *++m_cursor;
+        if (yych <= '/') goto basic_json_parser_5;
+        if (yych <= '0') goto basic_json_parser_13;
+        if (yych <= '9') goto basic_json_parser_15;
+        goto basic_json_parser_5;
 basic_json_parser_13:
-                yyaccept = 1;
-                yych = *(m_marker = ++m_cursor);
-                if (yych <= 'D')
-                {
-                    if (yych == '.')
-                    {
-                        goto basic_json_parser_43;
-                    }
-                }
-                else
-                {
-                    if (yych <= 'E')
-                    {
-                        goto basic_json_parser_44;
-                    }
-                    if (yych == 'e')
-                    {
-                        goto basic_json_parser_44;
-                    }
-                }
+        yyaccept = 1;
+        yych = *(m_marker = ++m_cursor);
+        if (yych <= 'D') {
+            if (yych == '.') goto basic_json_parser_43;
+        } else {
+            if (yych <= 'E') goto basic_json_parser_44;
+            if (yych == 'e') goto basic_json_parser_44;
+        }
 basic_json_parser_14:
-                {
-                    last_token_type = token_type::value_number;
-                    break;
-                }
+        { last_token_type = token_type::value_number; break; }
 basic_json_parser_15:
-                yyaccept = 1;
-                m_marker = ++m_cursor;
-                if ((m_limit - m_cursor) < 3)
-                {
-                    fill_line_buffer(3);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yybm[0 + yych] & 64)
-                {
-                    goto basic_json_parser_15;
-                }
-                if (yych <= 'D')
-                {
-                    if (yych == '.')
-                    {
-                        goto basic_json_parser_43;
-                    }
-                    goto basic_json_parser_14;
-                }
-                else
-                {
-                    if (yych <= 'E')
-                    {
-                        goto basic_json_parser_44;
-                    }
-                    if (yych == 'e')
-                    {
-                        goto basic_json_parser_44;
-                    }
-                    goto basic_json_parser_14;
-                }
+        yyaccept = 1;
+        m_marker = ++m_cursor;
+        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yybm[0+yych] & 64) {
+            goto basic_json_parser_15;
+        }
+        if (yych <= 'D') {
+            if (yych == '.') goto basic_json_parser_43;
+            goto basic_json_parser_14;
+        } else {
+            if (yych <= 'E') goto basic_json_parser_44;
+            if (yych == 'e') goto basic_json_parser_44;
+            goto basic_json_parser_14;
+        }
 basic_json_parser_17:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::name_separator;
-                    break;
-                }
+        ++m_cursor;
+        { last_token_type = token_type::name_separator; break; }
 basic_json_parser_19:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::begin_array;
-                    break;
-                }
+        ++m_cursor;
+        { last_token_type = token_type::begin_array; break; }
 basic_json_parser_21:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::end_array;
-                    break;
-                }
+        ++m_cursor;
+        { last_token_type = token_type::end_array; break; }
 basic_json_parser_23:
-                yyaccept = 0;
-                yych = *(m_marker = ++m_cursor);
-                if (yych == 'a')
-                {
-                    goto basic_json_parser_45;
-                }
-                goto basic_json_parser_5;
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych == 'a') goto basic_json_parser_45;
+        goto basic_json_parser_5;
 basic_json_parser_24:
-                yyaccept = 0;
-                yych = *(m_marker = ++m_cursor);
-                if (yych == 'u')
-                {
-                    goto basic_json_parser_46;
-                }
-                goto basic_json_parser_5;
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych == 'u') goto basic_json_parser_46;
+        goto basic_json_parser_5;
 basic_json_parser_25:
-                yyaccept = 0;
-                yych = *(m_marker = ++m_cursor);
-                if (yych == 'r')
-                {
-                    goto basic_json_parser_47;
-                }
-                goto basic_json_parser_5;
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych == 'r') goto basic_json_parser_47;
+        goto basic_json_parser_5;
 basic_json_parser_26:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::begin_object;
-                    break;
-                }
+        ++m_cursor;
+        { last_token_type = token_type::begin_object; break; }
 basic_json_parser_28:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::end_object;
-                    break;
-                }
+        ++m_cursor;
+        { last_token_type = token_type::end_object; break; }
 basic_json_parser_30:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
 basic_json_parser_31:
-                if (yybm[0 + yych] & 128)
-                {
-                    goto basic_json_parser_30;
-                }
-                if (yych <= 0xE0)
-                {
-                    if (yych <= '\\')
-                    {
-                        if (yych <= 0x1F)
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '"')
-                        {
-                            goto basic_json_parser_33;
-                        }
-                        goto basic_json_parser_35;
-                    }
-                    else
-                    {
-                        if (yych <= 0xC1)
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 0xDF)
-                        {
-                            goto basic_json_parser_36;
-                        }
-                        goto basic_json_parser_37;
-                    }
-                }
-                else
-                {
-                    if (yych <= 0xEF)
-                    {
-                        if (yych == 0xED)
-                        {
-                            goto basic_json_parser_39;
-                        }
-                        goto basic_json_parser_38;
-                    }
-                    else
-                    {
-                        if (yych <= 0xF0)
-                        {
-                            goto basic_json_parser_40;
-                        }
-                        if (yych <= 0xF3)
-                        {
-                            goto basic_json_parser_41;
-                        }
-                        if (yych <= 0xF4)
-                        {
-                            goto basic_json_parser_42;
-                        }
-                    }
-                }
+        if (yybm[0+yych] & 128) {
+            goto basic_json_parser_30;
+        }
+        if (yych <= 0xE0) {
+            if (yych <= '\\') {
+                if (yych <= 0x1F) goto basic_json_parser_32;
+                if (yych <= '"') goto basic_json_parser_33;
+                goto basic_json_parser_35;
+            } else {
+                if (yych <= 0xC1) goto basic_json_parser_32;
+                if (yych <= 0xDF) goto basic_json_parser_36;
+                goto basic_json_parser_37;
+            }
+        } else {
+            if (yych <= 0xEF) {
+                if (yych == 0xED) goto basic_json_parser_39;
+                goto basic_json_parser_38;
+            } else {
+                if (yych <= 0xF0) goto basic_json_parser_40;
+                if (yych <= 0xF3) goto basic_json_parser_41;
+                if (yych <= 0xF4) goto basic_json_parser_42;
+            }
+        }
 basic_json_parser_32:
-                m_cursor = m_marker;
-                if (yyaccept == 0)
-                {
-                    goto basic_json_parser_5;
-                }
-                else
-                {
-                    goto basic_json_parser_14;
-                }
+        m_cursor = m_marker;
+        if (yyaccept == 0) {
+            goto basic_json_parser_5;
+        } else {
+            goto basic_json_parser_14;
+        }
 basic_json_parser_33:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::value_string;
-                    break;
-                }
+        ++m_cursor;
+        { last_token_type = token_type::value_string; break; }
 basic_json_parser_35:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= 'e')
-                {
-                    if (yych <= '/')
-                    {
-                        if (yych == '"')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        if (yych <= '.')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        goto basic_json_parser_30;
-                    }
-                    else
-                    {
-                        if (yych <= '\\')
-                        {
-                            if (yych <= '[')
-                            {
-                                goto basic_json_parser_32;
-                            }
-                            goto basic_json_parser_30;
-                        }
-                        else
-                        {
-                            if (yych == 'b')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            goto basic_json_parser_32;
-                        }
-                    }
-                }
-                else
-                {
-                    if (yych <= 'q')
-                    {
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        if (yych == 'n')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 's')
-                        {
-                            if (yych <= 'r')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            goto basic_json_parser_32;
-                        }
-                        else
-                        {
-                            if (yych <= 't')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            if (yych <= 'u')
-                            {
-                                goto basic_json_parser_48;
-                            }
-                            goto basic_json_parser_32;
-                        }
-                    }
-                }
-basic_json_parser_36:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= 0x7F)
-                {
-                    goto basic_json_parser_32;
-                }
-                if (yych <= 0xBF)
-                {
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 'e') {
+            if (yych <= '/') {
+                if (yych == '"') goto basic_json_parser_30;
+                if (yych <= '.') goto basic_json_parser_32;
+                goto basic_json_parser_30;
+            } else {
+                if (yych <= '\\') {
+                    if (yych <= '[') goto basic_json_parser_32;
                     goto basic_json_parser_30;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_37:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= 0x9F)
-                {
-                    goto basic_json_parser_32;
-                }
-                if (yych <= 0xBF)
-                {
-                    goto basic_json_parser_36;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_38:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= 0x7F)
-                {
-                    goto basic_json_parser_32;
-                }
-                if (yych <= 0xBF)
-                {
-                    goto basic_json_parser_36;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_39:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= 0x7F)
-                {
-                    goto basic_json_parser_32;
-                }
-                if (yych <= 0x9F)
-                {
-                    goto basic_json_parser_36;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_40:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= 0x8F)
-                {
-                    goto basic_json_parser_32;
-                }
-                if (yych <= 0xBF)
-                {
-                    goto basic_json_parser_38;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_41:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= 0x7F)
-                {
-                    goto basic_json_parser_32;
-                }
-                if (yych <= 0xBF)
-                {
-                    goto basic_json_parser_38;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_42:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= 0x7F)
-                {
-                    goto basic_json_parser_32;
-                }
-                if (yych <= 0x8F)
-                {
-                    goto basic_json_parser_38;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_43:
-                yych = *++m_cursor;
-                if (yych <= '/')
-                {
-                    goto basic_json_parser_32;
-                }
-                if (yych <= '9')
-                {
-                    goto basic_json_parser_49;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_44:
-                yych = *++m_cursor;
-                if (yych <= ',')
-                {
-                    if (yych == '+')
-                    {
-                        goto basic_json_parser_51;
-                    }
-                    goto basic_json_parser_32;
-                }
-                else
-                {
-                    if (yych <= '-')
-                    {
-                        goto basic_json_parser_51;
-                    }
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_52;
-                    }
-                    goto basic_json_parser_32;
-                }
-basic_json_parser_45:
-                yych = *++m_cursor;
-                if (yych == 'l')
-                {
-                    goto basic_json_parser_54;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_46:
-                yych = *++m_cursor;
-                if (yych == 'l')
-                {
-                    goto basic_json_parser_55;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_47:
-                yych = *++m_cursor;
-                if (yych == 'u')
-                {
-                    goto basic_json_parser_56;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_48:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= '@')
-                {
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_57;
-                    }
-                    goto basic_json_parser_32;
-                }
-                else
-                {
-                    if (yych <= 'F')
-                    {
-                        goto basic_json_parser_57;
-                    }
-                    if (yych <= '`')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 'f')
-                    {
-                        goto basic_json_parser_57;
-                    }
-                    goto basic_json_parser_32;
-                }
-basic_json_parser_49:
-                yyaccept = 1;
-                m_marker = ++m_cursor;
-                if ((m_limit - m_cursor) < 3)
-                {
-                    fill_line_buffer(3);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= 'D')
-                {
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_14;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_49;
-                    }
-                    goto basic_json_parser_14;
-                }
-                else
-                {
-                    if (yych <= 'E')
-                    {
-                        goto basic_json_parser_44;
-                    }
-                    if (yych == 'e')
-                    {
-                        goto basic_json_parser_44;
-                    }
-                    goto basic_json_parser_14;
-                }
-basic_json_parser_51:
-                yych = *++m_cursor;
-                if (yych <= '/')
-                {
-                    goto basic_json_parser_32;
-                }
-                if (yych >= ':')
-                {
-                    goto basic_json_parser_32;
-                }
-basic_json_parser_52:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= '/')
-                {
-                    goto basic_json_parser_14;
-                }
-                if (yych <= '9')
-                {
-                    goto basic_json_parser_52;
-                }
-                goto basic_json_parser_14;
-basic_json_parser_54:
-                yych = *++m_cursor;
-                if (yych == 's')
-                {
-                    goto basic_json_parser_58;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_55:
-                yych = *++m_cursor;
-                if (yych == 'l')
-                {
-                    goto basic_json_parser_59;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_56:
-                yych = *++m_cursor;
-                if (yych == 'e')
-                {
-                    goto basic_json_parser_61;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_57:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= '@')
-                {
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_63;
-                    }
-                    goto basic_json_parser_32;
-                }
-                else
-                {
-                    if (yych <= 'F')
-                    {
-                        goto basic_json_parser_63;
-                    }
-                    if (yych <= '`')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 'f')
-                    {
-                        goto basic_json_parser_63;
-                    }
-                    goto basic_json_parser_32;
-                }
-basic_json_parser_58:
-                yych = *++m_cursor;
-                if (yych == 'e')
-                {
-                    goto basic_json_parser_64;
-                }
-                goto basic_json_parser_32;
-basic_json_parser_59:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::literal_null;
-                    break;
-                }
-basic_json_parser_61:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::literal_true;
-                    break;
-                }
-basic_json_parser_63:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= '@')
-                {
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_66;
-                    }
-                    goto basic_json_parser_32;
-                }
-                else
-                {
-                    if (yych <= 'F')
-                    {
-                        goto basic_json_parser_66;
-                    }
-                    if (yych <= '`')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 'f')
-                    {
-                        goto basic_json_parser_66;
-                    }
-                    goto basic_json_parser_32;
-                }
-basic_json_parser_64:
-                ++m_cursor;
-                {
-                    last_token_type = token_type::literal_false;
-                    break;
-                }
-basic_json_parser_66:
-                ++m_cursor;
-                if (m_limit <= m_cursor)
-                {
-                    fill_line_buffer(1);    // LCOV_EXCL_LINE
-                }
-                yych = *m_cursor;
-                if (yych <= '@')
-                {
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_30;
-                    }
-                    goto basic_json_parser_32;
-                }
-                else
-                {
-                    if (yych <= 'F')
-                    {
-                        goto basic_json_parser_30;
-                    }
-                    if (yych <= '`')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 'f')
-                    {
-                        goto basic_json_parser_30;
-                    }
+                } else {
+                    if (yych == 'b') goto basic_json_parser_30;
                     goto basic_json_parser_32;
                 }
             }
+        } else {
+            if (yych <= 'q') {
+                if (yych <= 'f') goto basic_json_parser_30;
+                if (yych == 'n') goto basic_json_parser_30;
+                goto basic_json_parser_32;
+            } else {
+                if (yych <= 's') {
+                    if (yych <= 'r') goto basic_json_parser_30;
+                    goto basic_json_parser_32;
+                } else {
+                    if (yych <= 't') goto basic_json_parser_30;
+                    if (yych <= 'u') goto basic_json_parser_48;
+                    goto basic_json_parser_32;
+                }
+            }
+        }
+basic_json_parser_36:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_30;
+        goto basic_json_parser_32;
+basic_json_parser_37:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x9F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_36;
+        goto basic_json_parser_32;
+basic_json_parser_38:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_36;
+        goto basic_json_parser_32;
+basic_json_parser_39:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0x9F) goto basic_json_parser_36;
+        goto basic_json_parser_32;
+basic_json_parser_40:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x8F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_38;
+        goto basic_json_parser_32;
+basic_json_parser_41:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_38;
+        goto basic_json_parser_32;
+basic_json_parser_42:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0x8F) goto basic_json_parser_38;
+        goto basic_json_parser_32;
+basic_json_parser_43:
+        yych = *++m_cursor;
+        if (yych <= '/') goto basic_json_parser_32;
+        if (yych <= '9') goto basic_json_parser_49;
+        goto basic_json_parser_32;
+basic_json_parser_44:
+        yych = *++m_cursor;
+        if (yych <= ',') {
+            if (yych == '+') goto basic_json_parser_51;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= '-') goto basic_json_parser_51;
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_52;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_45:
+        yych = *++m_cursor;
+        if (yych == 'l') goto basic_json_parser_54;
+        goto basic_json_parser_32;
+basic_json_parser_46:
+        yych = *++m_cursor;
+        if (yych == 'l') goto basic_json_parser_55;
+        goto basic_json_parser_32;
+basic_json_parser_47:
+        yych = *++m_cursor;
+        if (yych == 'u') goto basic_json_parser_56;
+        goto basic_json_parser_32;
+basic_json_parser_48:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_57;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_57;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_57;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_49:
+        yyaccept = 1;
+        m_marker = ++m_cursor;
+        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 'D') {
+            if (yych <= '/') goto basic_json_parser_14;
+            if (yych <= '9') goto basic_json_parser_49;
+            goto basic_json_parser_14;
+        } else {
+            if (yych <= 'E') goto basic_json_parser_44;
+            if (yych == 'e') goto basic_json_parser_44;
+            goto basic_json_parser_14;
+        }
+basic_json_parser_51:
+        yych = *++m_cursor;
+        if (yych <= '/') goto basic_json_parser_32;
+        if (yych >= ':') goto basic_json_parser_32;
+basic_json_parser_52:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '/') goto basic_json_parser_14;
+        if (yych <= '9') goto basic_json_parser_52;
+        goto basic_json_parser_14;
+basic_json_parser_54:
+        yych = *++m_cursor;
+        if (yych == 's') goto basic_json_parser_58;
+        goto basic_json_parser_32;
+basic_json_parser_55:
+        yych = *++m_cursor;
+        if (yych == 'l') goto basic_json_parser_59;
+        goto basic_json_parser_32;
+basic_json_parser_56:
+        yych = *++m_cursor;
+        if (yych == 'e') goto basic_json_parser_61;
+        goto basic_json_parser_32;
+basic_json_parser_57:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_63;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_63;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_63;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_58:
+        yych = *++m_cursor;
+        if (yych == 'e') goto basic_json_parser_64;
+        goto basic_json_parser_32;
+basic_json_parser_59:
+        ++m_cursor;
+        { last_token_type = token_type::literal_null; break; }
+basic_json_parser_61:
+        ++m_cursor;
+        { last_token_type = token_type::literal_true; break; }
+basic_json_parser_63:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_66;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_66;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_66;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_64:
+        ++m_cursor;
+        { last_token_type = token_type::literal_false; break; }
+basic_json_parser_66:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_30;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_30;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_30;
+            goto basic_json_parser_32;
+        }
+    }
 
         }
 
@@ -12666,6 +12147,43 @@ basic_json_parser_66:
     /// @}
 };
 
+//////////////////////////////////////////
+// lexicographical comparison operators //
+//////////////////////////////////////////
+
+/// @name lexicographical comparison operators
+/// @{
+/*!
+@brief comparison operator for JSON types
+
+Returns an ordering that is similar to Python:
+- order: null < boolean < number < object < array < string
+- furthermore, each type is not smaller than itself
+
+@since version 1.0.0
+*/
+inline bool operator<(const value_t lhs, const value_t rhs) noexcept
+{
+  static constexpr std::array<uint8_t, 8> order = {{
+      0, // null
+      3, // object
+      4, // array
+      5, // string
+      1, // boolean
+      2, // integer
+      2, // unsigned
+      2, // float
+  }};
+
+  // discarded values are not comparable
+  if (lhs == value_t::discarded or rhs == value_t::discarded)
+  {
+    return false;
+  }
+
+  return order[static_cast<std::size_t>(lhs)] <
+         order[static_cast<std::size_t>(rhs)];
+}
 
 /////////////
 // presets //
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 66b425b1..15714669 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -106,6 +106,46 @@ SOFTWARE.
 */
 namespace nlohmann
 {
+
+///////////////////////////
+// JSON type enumeration //
+///////////////////////////
+
+/*!
+@brief the JSON type enumeration
+
+This enumeration collects the different JSON types. It is internally used
+to distinguish the stored values, and the functions @ref is_null(), @ref
+is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref
+is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and
+@ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and
+@ref is_structured() rely on it.
+
+@note There are three enumeration entries (number_integer,
+number_unsigned, and number_float), because the library distinguishes
+these three types for numbers: @ref number_unsigned_t is used for unsigned
+integers, @ref number_integer_t is used for signed integers, and @ref
+number_float_t is used for floating-point numbers or to approximate
+integers which do not fit in the limits of their respective type.
+
+@sa @ref basic_json(const value_t value_type) -- create a JSON value with
+the default value for a given type
+
+@since version 1.0.0
+*/
+enum class value_t : uint8_t
+{
+  null,            ///< null value
+  object,          ///< object (unordered set of name/value pairs)
+  array,           ///< array (ordered collection of values)
+  string,          ///< string value
+  boolean,         ///< boolean value
+  number_integer,  ///< number value (signed integer)
+  number_unsigned, ///< number value (unsigned integer)
+  number_float,    ///< number value (floating-point)
+  discarded        ///< discarded by the the parser callback function
+};
+
 // alias templates to reduce boilerplate
 template <bool B, typename T = void>
 using enable_if_t = typename std::enable_if<B, T>::type;
@@ -553,6 +593,7 @@ class basic_json
     class primitive_iterator_t;
 
   public:
+    using value_t = ::nlohmann::value_t;
     // forward declarations
     template<typename U> class iter_impl;
     template<typename Base> class json_reverse_iterator;
@@ -1103,47 +1144,6 @@ class basic_json
 
     /// @}
 
-
-    ///////////////////////////
-    // JSON type enumeration //
-    ///////////////////////////
-
-    /*!
-    @brief the JSON type enumeration
-
-    This enumeration collects the different JSON types. It is internally used
-    to distinguish the stored values, and the functions @ref is_null(), @ref
-    is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref
-    is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and
-    @ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and
-    @ref is_structured() rely on it.
-
-    @note There are three enumeration entries (number_integer,
-    number_unsigned, and number_float), because the library distinguishes
-    these three types for numbers: @ref number_unsigned_t is used for unsigned
-    integers, @ref number_integer_t is used for signed integers, and @ref
-    number_float_t is used for floating-point numbers or to approximate
-    integers which do not fit in the limits of their respective type.
-
-    @sa @ref basic_json(const value_t value_type) -- create a JSON value with
-    the default value for a given type
-
-    @since version 1.0.0
-    */
-    enum class value_t : uint8_t
-    {
-        null,            ///< null value
-        object,          ///< object (unordered set of name/value pairs)
-        array,           ///< array (ordered collection of values)
-        string,          ///< string value
-        boolean,         ///< boolean value
-        number_integer,  ///< number value (signed integer)
-        number_unsigned, ///< number value (unsigned integer)
-        number_float,    ///< number value (floating-point)
-        discarded        ///< discarded by the the parser callback function
-    };
-
-
   private:
 
     /// helper for exception-safe object creation
@@ -5910,47 +5910,6 @@ class basic_json
 
     /// @}
 
-
-    //////////////////////////////////////////
-    // lexicographical comparison operators //
-    //////////////////////////////////////////
-
-    /// @name lexicographical comparison operators
-    /// @{
-
-  private:
-    /*!
-    @brief comparison operator for JSON types
-
-    Returns an ordering that is similar to Python:
-    - order: null < boolean < number < object < array < string
-    - furthermore, each type is not smaller than itself
-
-    @since version 1.0.0
-    */
-    friend bool operator<(const value_t lhs, const value_t rhs) noexcept
-    {
-        static constexpr std::array<uint8_t, 8> order = {{
-                0, // null
-                3, // object
-                4, // array
-                5, // string
-                1, // boolean
-                2, // integer
-                2, // unsigned
-                2, // float
-            }
-        };
-
-        // discarded values are not comparable
-        if (lhs == value_t::discarded or rhs == value_t::discarded)
-        {
-            return false;
-        }
-
-        return order[static_cast<std::size_t>(lhs)] < order[static_cast<std::size_t>(rhs)];
-    }
-
   public:
     /*!
     @brief comparison: equal
@@ -11814,6 +11773,43 @@ class basic_json
     /// @}
 };
 
+//////////////////////////////////////////
+// lexicographical comparison operators //
+//////////////////////////////////////////
+
+/// @name lexicographical comparison operators
+/// @{
+/*!
+@brief comparison operator for JSON types
+
+Returns an ordering that is similar to Python:
+- order: null < boolean < number < object < array < string
+- furthermore, each type is not smaller than itself
+
+@since version 1.0.0
+*/
+inline bool operator<(const value_t lhs, const value_t rhs) noexcept
+{
+  static constexpr std::array<uint8_t, 8> order = {{
+      0, // null
+      3, // object
+      4, // array
+      5, // string
+      1, // boolean
+      2, // integer
+      2, // unsigned
+      2, // float
+  }};
+
+  // discarded values are not comparable
+  if (lhs == value_t::discarded or rhs == value_t::discarded)
+  {
+    return false;
+  }
+
+  return order[static_cast<std::size_t>(lhs)] <
+         order[static_cast<std::size_t>(rhs)];
+}
 
 /////////////
 // presets //

From c833b22b7b94e7cd4d5a24e8280ec9d8c0890097 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 7 Jan 2017 16:57:52 +0100
Subject: [PATCH 076/174] move type_name outside of basic_json, make it a
 friend

---
 src/json.hpp      | 43 +++++++++++++++++++++++--------------------
 src/json.hpp.re2c | 43 +++++++++++++++++++++++--------------------
 2 files changed, 46 insertions(+), 40 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index cc397e39..3b00d80e 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -181,6 +181,27 @@ using is_unscoped_enum =
 
 namespace detail
 {
+template <typename Json> std::string type_name(Json const &j)
+{
+  switch (j.m_type)
+  {
+  case value_t::null:
+    return "null";
+  case value_t::object:
+    return "object";
+  case value_t::array:
+    return "array";
+  case value_t::string:
+    return "string";
+  case value_t::boolean:
+    return "boolean";
+  case value_t::discarded:
+    return "discarded";
+  default:
+    return "number";
+  }
+}
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -585,6 +606,7 @@ template <
 class basic_json
 {
   private:
+    template <typename Json> friend std::string detail::type_name(Json const &);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -8129,26 +8151,7 @@ class basic_json
 
     @since version 1.0.0
     */
-    std::string type_name() const
-    {
-        switch (m_type)
-        {
-            case value_t::null:
-                return "null";
-            case value_t::object:
-                return "object";
-            case value_t::array:
-                return "array";
-            case value_t::string:
-                return "string";
-            case value_t::boolean:
-                return "boolean";
-            case value_t::discarded:
-                return "discarded";
-            default:
-                return "number";
-        }
-    }
+    std::string type_name() const { return detail::type_name(*this); }
 
   private:
     /*!
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 15714669..ed9075ac 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -181,6 +181,27 @@ using is_unscoped_enum =
 
 namespace detail
 {
+template <typename Json> std::string type_name(Json const &j)
+{
+  switch (j.m_type)
+  {
+  case value_t::null:
+    return "null";
+  case value_t::object:
+    return "object";
+  case value_t::array:
+    return "array";
+  case value_t::string:
+    return "string";
+  case value_t::boolean:
+    return "boolean";
+  case value_t::discarded:
+    return "discarded";
+  default:
+    return "number";
+  }
+}
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -586,6 +607,7 @@ template <
 class basic_json
 {
   private:
+    template <typename Json> friend std::string detail::type_name(Json const &);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -8127,26 +8149,7 @@ class basic_json
 
     @since version 1.0.0
     */
-    std::string type_name() const
-    {
-        switch (m_type)
-        {
-            case value_t::null:
-                return "null";
-            case value_t::object:
-                return "object";
-            case value_t::array:
-                return "array";
-            case value_t::string:
-                return "string";
-            case value_t::boolean:
-                return "boolean";
-            case value_t::discarded:
-                return "discarded";
-            default:
-                return "number";
-        }
-    }
+    std::string type_name() const { return detail::type_name(*this); }
 
   private:
     /*!

From 6b89785fba1fb2387ce640121ed17866ceae79ae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 7 Jan 2017 17:01:17 +0100
Subject: [PATCH 077/174] replace constructor by from/to_json: boolean_t

---
 src/json.hpp      | 71 ++++++++++++++++++++++++++++-------------------
 src/json.hpp.re2c | 71 ++++++++++++++++++++++++++++-------------------
 2 files changed, 86 insertions(+), 56 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 3b00d80e..00556604 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -202,6 +202,21 @@ template <typename Json> std::string type_name(Json const &j)
   }
 }
 
+// This is an experiment. I need this to move constructors out of basic_json.
+// I'm sure there is a better way, but this might need a big basic_json refactoring
+template <value_t> struct external_constructor;
+
+template <>
+struct external_constructor<value_t::boolean>
+{
+  template <typename Json>
+  static void construct(Json &j, typename Json::boolean_t b) noexcept
+  {
+    j.m_type = value_t::boolean;
+    j.m_value = b;
+    j.assert_invariant();
+  }
+};
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -340,9 +355,11 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
-    static constexpr auto value = is_compatible_integer_type_impl <
-                                  std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType,
-                                  CompatibleNumberIntegerType >::value;
+  static constexpr auto
+      value = is_compatible_integer_type_impl <
+                  std::is_arithmetic<CompatibleNumberIntegerType>::value and
+              not std::is_same<bool, CompatibleNumberIntegerType>::value,
+      RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
 
 template <typename RealFloat, typename CompatibleFloat>
@@ -360,7 +377,6 @@ struct is_compatible_basic_json_type
         is_unscoped_enum<T>::value or
         std::is_same<T, BasicJson>::value or
         std::is_constructible<typename BasicJson::string_t, T>::value or
-        std::is_same<typename BasicJson::boolean_t, T>::value or
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value or
         is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
@@ -433,6 +449,22 @@ struct has_to_json
 void to_json();
 void from_json();
 
+// overloads for basic_json template parameters
+
+template <typename Json>
+void to_json(Json &j, typename Json::boolean_t b) noexcept
+{
+  external_constructor<value_t::boolean>::construct(j, b);
+}
+
+template <typename Json>
+void from_json(Json const& j, typename Json::boolean_t& b)
+{
+  if (!j.is_boolean())
+    throw std::domain_error("type must be boolean, but is " + type_name(j));
+  b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>();
+}
+
 struct to_json_fn
 {
     // is it really useful to mark those as constexpr?
@@ -606,6 +638,7 @@ template <
 class basic_json
 {
   private:
+    template <::nlohmann::value_t> friend struct detail::external_constructor;
     template <typename Json> friend std::string detail::type_name(Json const &);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
@@ -1731,26 +1764,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create a boolean (explicit)
-
-    Creates a JSON boolean type from a given value.
-
-    @param[in] val  a boolean value to store
-
-    @complexity Constant.
-
-    @liveexample{The example below demonstrates boolean
-    values.,basic_json__boolean_t}
-
-    @since version 1.0.0
-    */
-    basic_json(boolean_t val) noexcept
-        : m_type(value_t::boolean), m_value(val)
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create an integer number (explicit)
 
@@ -3330,11 +3343,13 @@ class basic_json
     @since version 1.0.0
     */
     template <typename ValueType,
-              enable_if_t<not std::is_pointer<ValueType>::value, int> = 0>
+              enable_if_t<not std::is_pointer<ValueType>::value and
+                              detail::is_compatible_basic_json_type<
+                                  uncvref_t<ValueType>, basic_json_t>::value,
+                          int> = 0>
     auto get() const
-    -> decltype(this->get_impl(static_cast<ValueType*>(nullptr)))
-    {
-        return get_impl(static_cast<ValueType*>(nullptr));
+        -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) {
+      return get_impl(static_cast<ValueType *>(nullptr));
     }
 
     template <
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index ed9075ac..067ad1a6 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -202,6 +202,21 @@ template <typename Json> std::string type_name(Json const &j)
   }
 }
 
+// This is an experiment. I need this to move constructors out of basic_json.
+// I'm sure there is a better way, but this might need a big basic_json refactoring
+template <value_t> struct external_constructor;
+
+template <>
+struct external_constructor<value_t::boolean>
+{
+  template <typename Json>
+  static void construct(Json &j, typename Json::boolean_t b) noexcept
+  {
+    j.m_type = value_t::boolean;
+    j.m_value = b;
+    j.assert_invariant();
+  }
+};
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -340,9 +355,11 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
-    static constexpr auto value = is_compatible_integer_type_impl <
-                                  std::is_arithmetic<CompatibleNumberIntegerType>::value, RealIntegerType,
-                                  CompatibleNumberIntegerType >::value;
+  static constexpr auto
+      value = is_compatible_integer_type_impl <
+                  std::is_arithmetic<CompatibleNumberIntegerType>::value and
+              not std::is_same<bool, CompatibleNumberIntegerType>::value,
+      RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
 
 template <typename RealFloat, typename CompatibleFloat>
@@ -360,7 +377,6 @@ struct is_compatible_basic_json_type
         is_unscoped_enum<T>::value or
         std::is_same<T, BasicJson>::value or
         std::is_constructible<typename BasicJson::string_t, T>::value or
-        std::is_same<typename BasicJson::boolean_t, T>::value or
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value or
         is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
@@ -433,6 +449,22 @@ struct has_to_json
 void to_json();
 void from_json();
 
+// overloads for basic_json template parameters
+
+template <typename Json>
+void to_json(Json &j, typename Json::boolean_t b) noexcept
+{
+  external_constructor<value_t::boolean>::construct(j, b);
+}
+
+template <typename Json>
+void from_json(Json const& j, typename Json::boolean_t& b)
+{
+  if (!j.is_boolean())
+    throw std::domain_error("type must be boolean, but is " + type_name(j));
+  b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>();
+}
+
 struct to_json_fn
 {
     // is it really useful to mark those as constexpr?
@@ -607,6 +639,7 @@ template <
 class basic_json
 {
   private:
+    template <::nlohmann::value_t> friend struct detail::external_constructor;
     template <typename Json> friend std::string detail::type_name(Json const &);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
@@ -1732,26 +1765,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create a boolean (explicit)
-
-    Creates a JSON boolean type from a given value.
-
-    @param[in] val  a boolean value to store
-
-    @complexity Constant.
-
-    @liveexample{The example below demonstrates boolean
-    values.,basic_json__boolean_t}
-
-    @since version 1.0.0
-    */
-    basic_json(boolean_t val) noexcept
-        : m_type(value_t::boolean), m_value(val)
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create an integer number (explicit)
 
@@ -3328,11 +3341,13 @@ class basic_json
     @since version 1.0.0
     */
     template <typename ValueType,
-              enable_if_t<not std::is_pointer<ValueType>::value, int> = 0>
+              enable_if_t<not std::is_pointer<ValueType>::value and
+                              detail::is_compatible_basic_json_type<
+                                  uncvref_t<ValueType>, basic_json_t>::value,
+                          int> = 0>
     auto get() const
-    -> decltype(this->get_impl(static_cast<ValueType*>(nullptr)))
-    {
-        return get_impl(static_cast<ValueType*>(nullptr));
+        -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) {
+      return get_impl(static_cast<ValueType *>(nullptr));
     }
 
     template <

From bbe40641a3339a6590781e41ff7a327abecf67a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 7 Jan 2017 18:09:42 +0100
Subject: [PATCH 078/174] replace constructor by from/to_json: string_t

---
 src/json.hpp      | 142 ++++++++++++++++------------------------------
 src/json.hpp.re2c | 142 ++++++++++++++++------------------------------
 2 files changed, 100 insertions(+), 184 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 00556604..becbcbd2 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -217,6 +217,18 @@ struct external_constructor<value_t::boolean>
     j.assert_invariant();
   }
 };
+
+template <>
+struct external_constructor<value_t::string>
+{
+  template <typename Json>
+  static void construct(Json &j, const typename Json::string_t& s)
+  {
+    j.m_type = value_t::string;
+    j.m_value = s;
+    j.assert_invariant();
+  }
+};
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -328,12 +340,14 @@ struct is_compatible_array_type
 {
     // the check for CompatibleArrayType = void is done in
     // `is_compatible_object_type`, but we need the conjunction here as well
-    static auto constexpr value = is_compatible_array_type_impl <
-                                  conjunction<negation<is_compatible_object_type<
-                                  typename BasicJson::object_t, CompatibleArrayType>>,
-                                  has_value_type<CompatibleArrayType>,
-                                  has_iterator<CompatibleArrayType>>::value,
-                                  BasicJson, CompatibleArrayType >::value;
+    static auto constexpr value = is_compatible_array_type_impl<
+        conjunction<negation<is_compatible_object_type<
+                        typename BasicJson::object_t, CompatibleArrayType>>,
+                    negation<std::is_constructible<typename BasicJson::string_t,
+                                                   CompatibleArrayType>>,
+                    has_value_type<CompatibleArrayType>,
+                    has_iterator<CompatibleArrayType>>::value,
+        BasicJson, CompatibleArrayType>::value;
 };
 
 template <bool, typename, typename>
@@ -376,7 +390,6 @@ struct is_compatible_basic_json_type
     static auto constexpr value =
         is_unscoped_enum<T>::value or
         std::is_same<T, BasicJson>::value or
-        std::is_constructible<typename BasicJson::string_t, T>::value or
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value or
         is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
@@ -457,6 +470,15 @@ void to_json(Json &j, typename Json::boolean_t b) noexcept
   external_constructor<value_t::boolean>::construct(j, b);
 }
 
+template <typename Json, typename CompatibleString,
+          enable_if_t<std::is_constructible<typename Json::string_t,
+                                            CompatibleString>::value,
+                      int> = 0>
+void to_json(Json &j, const CompatibleString &s)
+{
+  external_constructor<value_t::string>::construct(j, s);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -465,6 +487,14 @@ void from_json(Json const& j, typename Json::boolean_t& b)
   b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>();
 }
 
+template <typename Json>
+void from_json(Json const& j, typename Json::string_t& s)
+{
+  if (!j.is_string())
+    throw std::domain_error("type must be string, but is " + type_name(j));
+  s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>();
+}
+
 struct to_json_fn
 {
     // is it really useful to mark those as constexpr?
@@ -1680,90 +1710,6 @@ class basic_json
         JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
     }
 
-    /*!
-    @brief create a string (explicit)
-
-    Create an string JSON value with a given content.
-
-    @param[in] val  a value for the string
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for string value fails
-
-    @liveexample{The following code shows the constructor with an @ref
-    string_t parameter.,basic_json__string_t}
-
-    @sa @ref basic_json(const typename string_t::value_type*) -- create a
-    string value from a character pointer
-    @sa @ref basic_json(const CompatibleStringType&) -- create a string value
-    from a compatible string container
-
-    @since version 1.0.0
-    */
-    basic_json(const string_t& val)
-        : m_type(value_t::string), m_value(val)
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create a string (explicit)
-
-    Create a string JSON value with a given content.
-
-    @param[in] val  a literal value for the string
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for string value fails
-
-    @liveexample{The following code shows the constructor with string literal
-    parameter.,basic_json__string_t_value_type}
-
-    @sa @ref basic_json(const string_t&) -- create a string value
-    @sa @ref basic_json(const CompatibleStringType&) -- create a string value
-    from a compatible string container
-
-    @since version 1.0.0
-    */
-    basic_json(const typename string_t::value_type* val)
-        : basic_json(string_t(val))
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create a string (implicit)
-
-    Create a string JSON value with a given content.
-
-    @param[in] val  a value for the string
-
-    @tparam CompatibleStringType an string type which is compatible to @ref
-    string_t, for instance `std::string`.
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for string value fails
-
-    @liveexample{The following code shows the construction of a string value
-    from a compatible type.,basic_json__CompatibleStringType}
-
-    @sa @ref basic_json(const string_t&) -- create a string value
-    @sa @ref basic_json(const typename string_t::value_type*) -- create a
-    string value from a character pointer
-
-    @since version 1.0.0
-    */
-    template<class CompatibleStringType, typename std::enable_if<
-                 std::is_constructible<string_t, CompatibleStringType>::value, int>::type = 0>
-    basic_json(const CompatibleStringType& val)
-        : basic_json(string_t(val))
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create an integer number (explicit)
 
@@ -11505,9 +11451,21 @@ basic_json_parser_66:
     }
 
     private:
+    friend bool operator==(json_pointer const &lhs,
+                           json_pointer const &rhs) noexcept
+    {
+      return lhs.reference_tokens == rhs.reference_tokens;
+    }
+
+    friend bool operator!=(json_pointer const &lhs,
+                           json_pointer const &rhs) noexcept
+    {
+      return !(lhs == rhs);
+    }
+
     /// the reference tokens
     std::vector<std::string> reference_tokens {};
-               };
+    };
 
     //////////////////////////
     // JSON Pointer support //
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 067ad1a6..0122e8b5 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -217,6 +217,18 @@ struct external_constructor<value_t::boolean>
     j.assert_invariant();
   }
 };
+
+template <>
+struct external_constructor<value_t::string>
+{
+  template <typename Json>
+  static void construct(Json &j, const typename Json::string_t& s)
+  {
+    j.m_type = value_t::string;
+    j.m_value = s;
+    j.assert_invariant();
+  }
+};
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -328,12 +340,14 @@ struct is_compatible_array_type
 {
     // the check for CompatibleArrayType = void is done in
     // `is_compatible_object_type`, but we need the conjunction here as well
-    static auto constexpr value = is_compatible_array_type_impl <
-                                  conjunction<negation<is_compatible_object_type<
-                                  typename BasicJson::object_t, CompatibleArrayType>>,
-                                  has_value_type<CompatibleArrayType>,
-                                  has_iterator<CompatibleArrayType>>::value,
-                                  BasicJson, CompatibleArrayType >::value;
+    static auto constexpr value = is_compatible_array_type_impl<
+        conjunction<negation<is_compatible_object_type<
+                        typename BasicJson::object_t, CompatibleArrayType>>,
+                    negation<std::is_constructible<typename BasicJson::string_t,
+                                                   CompatibleArrayType>>,
+                    has_value_type<CompatibleArrayType>,
+                    has_iterator<CompatibleArrayType>>::value,
+        BasicJson, CompatibleArrayType>::value;
 };
 
 template <bool, typename, typename>
@@ -376,7 +390,6 @@ struct is_compatible_basic_json_type
     static auto constexpr value =
         is_unscoped_enum<T>::value or
         std::is_same<T, BasicJson>::value or
-        std::is_constructible<typename BasicJson::string_t, T>::value or
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value or
         is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
@@ -457,6 +470,15 @@ void to_json(Json &j, typename Json::boolean_t b) noexcept
   external_constructor<value_t::boolean>::construct(j, b);
 }
 
+template <typename Json, typename CompatibleString,
+          enable_if_t<std::is_constructible<typename Json::string_t,
+                                            CompatibleString>::value,
+                      int> = 0>
+void to_json(Json &j, const CompatibleString &s)
+{
+  external_constructor<value_t::string>::construct(j, s);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -465,6 +487,14 @@ void from_json(Json const& j, typename Json::boolean_t& b)
   b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>();
 }
 
+template <typename Json>
+void from_json(Json const& j, typename Json::string_t& s)
+{
+  if (!j.is_string())
+    throw std::domain_error("type must be string, but is " + type_name(j));
+  s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>();
+}
+
 struct to_json_fn
 {
     // is it really useful to mark those as constexpr?
@@ -1681,90 +1711,6 @@ class basic_json
         JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
     }
 
-    /*!
-    @brief create a string (explicit)
-
-    Create an string JSON value with a given content.
-
-    @param[in] val  a value for the string
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for string value fails
-
-    @liveexample{The following code shows the constructor with an @ref
-    string_t parameter.,basic_json__string_t}
-
-    @sa @ref basic_json(const typename string_t::value_type*) -- create a
-    string value from a character pointer
-    @sa @ref basic_json(const CompatibleStringType&) -- create a string value
-    from a compatible string container
-
-    @since version 1.0.0
-    */
-    basic_json(const string_t& val)
-        : m_type(value_t::string), m_value(val)
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create a string (explicit)
-
-    Create a string JSON value with a given content.
-
-    @param[in] val  a literal value for the string
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for string value fails
-
-    @liveexample{The following code shows the constructor with string literal
-    parameter.,basic_json__string_t_value_type}
-
-    @sa @ref basic_json(const string_t&) -- create a string value
-    @sa @ref basic_json(const CompatibleStringType&) -- create a string value
-    from a compatible string container
-
-    @since version 1.0.0
-    */
-    basic_json(const typename string_t::value_type* val)
-        : basic_json(string_t(val))
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create a string (implicit)
-
-    Create a string JSON value with a given content.
-
-    @param[in] val  a value for the string
-
-    @tparam CompatibleStringType an string type which is compatible to @ref
-    string_t, for instance `std::string`.
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for string value fails
-
-    @liveexample{The following code shows the construction of a string value
-    from a compatible type.,basic_json__CompatibleStringType}
-
-    @sa @ref basic_json(const string_t&) -- create a string value
-    @sa @ref basic_json(const typename string_t::value_type*) -- create a
-    string value from a character pointer
-
-    @since version 1.0.0
-    */
-    template<class CompatibleStringType, typename std::enable_if<
-                 std::is_constructible<string_t, CompatibleStringType>::value, int>::type = 0>
-    basic_json(const CompatibleStringType& val)
-        : basic_json(string_t(val))
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create an integer number (explicit)
 
@@ -11131,9 +11077,21 @@ class basic_json
     }
 
     private:
+    friend bool operator==(json_pointer const &lhs,
+                           json_pointer const &rhs) noexcept
+    {
+      return lhs.reference_tokens == rhs.reference_tokens;
+    }
+
+    friend bool operator!=(json_pointer const &lhs,
+                           json_pointer const &rhs) noexcept
+    {
+      return !(lhs == rhs);
+    }
+
     /// the reference tokens
     std::vector<std::string> reference_tokens {};
-               };
+    };
 
     //////////////////////////
     // JSON Pointer support //

From d257149f36ecdaa07e3708bafc9a7cc6d3c77b4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 7 Jan 2017 19:21:47 +0100
Subject: [PATCH 079/174] replace constructor by from/to_json: number_float_t

---
 src/json.hpp      | 163 ++++++++++++++++++++++++----------------------
 src/json.hpp.re2c | 163 ++++++++++++++++++++++++----------------------
 2 files changed, 168 insertions(+), 158 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index becbcbd2..1e7f1c5a 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -229,6 +229,25 @@ struct external_constructor<value_t::string>
     j.assert_invariant();
   }
 };
+
+template <>
+struct external_constructor<value_t::number_float>
+{
+  template <typename Json>
+  static void construct(Json &j, typename Json::number_float_t val) noexcept
+  {
+    // replace infinity and NAN by null
+    if (not std::isfinite(val))
+      j = Json{};
+    else
+    {
+      j.m_type = value_t::number_float;
+      j.m_value = val;
+    }
+    j.assert_invariant();
+  }
+};
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -392,7 +411,6 @@ struct is_compatible_basic_json_type
         std::is_same<T, BasicJson>::value or
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value or
-        is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
         is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or
         is_compatible_integer_type<typename BasicJson::number_unsigned_t,
         T>::value;
@@ -457,6 +475,8 @@ struct has_to_json
                                       detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
+template <typename Json, typename >
+
 // those declarations are needed to workaround a MSVC bug related to ADL
 // (taken from MSVC-Ranges implementation)
 void to_json();
@@ -464,6 +484,23 @@ void from_json();
 
 // overloads for basic_json template parameters
 
+template <typename Json, typename ArithmeticType,
+          enable_if_t<std::is_arithmetic<ArithmeticType>::value and
+                          not std::is_same<ArithmeticType,
+                                           typename Json::boolean_t>::value,
+                      int> = 0>
+void get_arithmetic_value(Json const &j, ArithmeticType &val)
+{
+  if (j.is_number_integer())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>();
+  else if (j.is_number_unsigned())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>();
+  else if (j.is_number_float())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>();
+  else
+    throw std::domain_error("type must be number, but is " + type_name(j));
+}
+
 template <typename Json>
 void to_json(Json &j, typename Json::boolean_t b) noexcept
 {
@@ -479,6 +516,16 @@ void to_json(Json &j, const CompatibleString &s)
   external_constructor<value_t::string>::construct(j, s);
 }
 
+template <
+    typename Json, typename CompatibleNumberFloatType,
+    enable_if_t<is_compatible_float_type<typename Json::number_float_t,
+                                         CompatibleNumberFloatType>::value,
+                int> = 0>
+void to_json(Json &j, CompatibleNumberFloatType val) noexcept
+{
+  external_constructor<value_t::number_float>::construct(j, val);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -495,6 +542,42 @@ void from_json(Json const& j, typename Json::string_t& s)
   s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>();
 }
 
+template <typename Json>
+void from_json(Json const& j, typename Json::number_float_t& val)
+{
+  get_arithmetic_value(j, val);
+}
+
+// overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
+//
+// note: Is it really necessary to provide explicit overloads for boolean_t etc..
+// in case of a custom BooleanType which is not an arithmetic type?
+template <
+    typename Json, typename ArithmeticType,
+    enable_if_t<
+        std::is_arithmetic<ArithmeticType>::value and
+            not std::is_same<ArithmeticType,
+                             typename Json::number_unsigned_t>::value and
+            not std::is_same<ArithmeticType,
+                             typename Json::number_integer_t>::value and
+            not std::is_same<ArithmeticType,
+                             typename Json::number_float_t>::value and
+            not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
+        int> = 0>
+void from_json(Json const &j, ArithmeticType &val)
+{
+  if (j.is_number_integer())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>();
+  else if (j.is_number_unsigned())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>();
+  else if (j.is_number_float())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>();
+  else if (j.is_boolean())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>();
+  else
+    throw std::domain_error("type must be number, but is " + type_name(j));
+}
+
 struct to_json_fn
 {
     // is it really useful to mark those as constexpr?
@@ -1872,84 +1955,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create a floating-point number (explicit)
-
-    Create a floating-point number JSON value with a given content.
-
-    @param[in] val  a floating-point value to create a JSON number from
-
-    @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6
-    disallows NaN values:
-    > Numeric values that cannot be represented in the grammar below (such as
-    > Infinity and NaN) are not permitted.
-    In case the parameter @a val is not a number, a JSON null value is created
-    instead.
-
-    @complexity Constant.
-
-    @liveexample{The following example creates several floating-point
-    values.,basic_json__number_float_t}
-
-    @sa @ref basic_json(const CompatibleNumberFloatType) -- create a number
-    value (floating-point) from a compatible number type
-
-    @since version 1.0.0
-    */
-    basic_json(const number_float_t val) noexcept
-        : m_type(value_t::number_float), m_value(val)
-    {
-        // replace infinity and NAN by null
-        if (not std::isfinite(val))
-        {
-            m_type = value_t::null;
-            m_value = json_value();
-        }
-
-        assert_invariant();
-    }
-
-    /*!
-    @brief create an floating-point number (implicit)
-
-    Create an floating-point number JSON value with a given content. This
-    constructor allows any type @a CompatibleNumberFloatType that can be used
-    to construct values of type @ref number_float_t.
-
-    @tparam CompatibleNumberFloatType A floating-point type which is
-    compatible to @ref number_float_t. Examples may include the types `float`
-    or `double`.
-
-    @param[in] val  a floating-point to create a JSON number from
-
-    @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6
-    disallows NaN values:
-    > Numeric values that cannot be represented in the grammar below (such as
-    > Infinity and NaN) are not permitted.
-    In case the parameter @a val is not a number, a JSON null value is
-    created instead.
-
-    @complexity Constant.
-
-    @liveexample{The example below shows the construction of several
-    floating-point number values from compatible
-    types.,basic_json__CompatibleNumberFloatType}
-
-    @sa @ref basic_json(const number_float_t) -- create a number value
-    (floating-point)
-
-    @since version 1.0.0
-    */
-    template <typename CompatibleNumberFloatType,
-              enable_if_t<detail::is_compatible_float_type<
-                              number_float_t, CompatibleNumberFloatType>::value,
-                          int> = 0>
-    basic_json(const CompatibleNumberFloatType val) noexcept
-        : basic_json(number_float_t(val))
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create a container (array or object) from an initializer list
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 0122e8b5..74697ab2 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -229,6 +229,25 @@ struct external_constructor<value_t::string>
     j.assert_invariant();
   }
 };
+
+template <>
+struct external_constructor<value_t::number_float>
+{
+  template <typename Json>
+  static void construct(Json &j, typename Json::number_float_t val) noexcept
+  {
+    // replace infinity and NAN by null
+    if (not std::isfinite(val))
+      j = Json{};
+    else
+    {
+      j.m_type = value_t::number_float;
+      j.m_value = val;
+    }
+    j.assert_invariant();
+  }
+};
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -392,7 +411,6 @@ struct is_compatible_basic_json_type
         std::is_same<T, BasicJson>::value or
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value or
-        is_compatible_float_type<typename BasicJson::number_float_t, T>::value or
         is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or
         is_compatible_integer_type<typename BasicJson::number_unsigned_t,
         T>::value;
@@ -457,6 +475,8 @@ struct has_to_json
                                       detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
+template <typename Json, typename >
+
 // those declarations are needed to workaround a MSVC bug related to ADL
 // (taken from MSVC-Ranges implementation)
 void to_json();
@@ -464,6 +484,23 @@ void from_json();
 
 // overloads for basic_json template parameters
 
+template <typename Json, typename ArithmeticType,
+          enable_if_t<std::is_arithmetic<ArithmeticType>::value and
+                          not std::is_same<ArithmeticType,
+                                           typename Json::boolean_t>::value,
+                      int> = 0>
+void get_arithmetic_value(Json const &j, ArithmeticType &val)
+{
+  if (j.is_number_integer())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>();
+  else if (j.is_number_unsigned())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>();
+  else if (j.is_number_float())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>();
+  else
+    throw std::domain_error("type must be number, but is " + type_name(j));
+}
+
 template <typename Json>
 void to_json(Json &j, typename Json::boolean_t b) noexcept
 {
@@ -479,6 +516,16 @@ void to_json(Json &j, const CompatibleString &s)
   external_constructor<value_t::string>::construct(j, s);
 }
 
+template <
+    typename Json, typename CompatibleNumberFloatType,
+    enable_if_t<is_compatible_float_type<typename Json::number_float_t,
+                                         CompatibleNumberFloatType>::value,
+                int> = 0>
+void to_json(Json &j, CompatibleNumberFloatType val) noexcept
+{
+  external_constructor<value_t::number_float>::construct(j, val);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -495,6 +542,42 @@ void from_json(Json const& j, typename Json::string_t& s)
   s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>();
 }
 
+template <typename Json>
+void from_json(Json const& j, typename Json::number_float_t& val)
+{
+  get_arithmetic_value(j, val);
+}
+
+// overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
+//
+// note: Is it really necessary to provide explicit overloads for boolean_t etc..
+// in case of a custom BooleanType which is not an arithmetic type?
+template <
+    typename Json, typename ArithmeticType,
+    enable_if_t<
+        std::is_arithmetic<ArithmeticType>::value and
+            not std::is_same<ArithmeticType,
+                             typename Json::number_unsigned_t>::value and
+            not std::is_same<ArithmeticType,
+                             typename Json::number_integer_t>::value and
+            not std::is_same<ArithmeticType,
+                             typename Json::number_float_t>::value and
+            not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
+        int> = 0>
+void from_json(Json const &j, ArithmeticType &val)
+{
+  if (j.is_number_integer())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>();
+  else if (j.is_number_unsigned())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>();
+  else if (j.is_number_float())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>();
+  else if (j.is_boolean())
+    val = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>();
+  else
+    throw std::domain_error("type must be number, but is " + type_name(j));
+}
+
 struct to_json_fn
 {
     // is it really useful to mark those as constexpr?
@@ -1873,84 +1956,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create a floating-point number (explicit)
-
-    Create a floating-point number JSON value with a given content.
-
-    @param[in] val  a floating-point value to create a JSON number from
-
-    @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6
-    disallows NaN values:
-    > Numeric values that cannot be represented in the grammar below (such as
-    > Infinity and NaN) are not permitted.
-    In case the parameter @a val is not a number, a JSON null value is created
-    instead.
-
-    @complexity Constant.
-
-    @liveexample{The following example creates several floating-point
-    values.,basic_json__number_float_t}
-
-    @sa @ref basic_json(const CompatibleNumberFloatType) -- create a number
-    value (floating-point) from a compatible number type
-
-    @since version 1.0.0
-    */
-    basic_json(const number_float_t val) noexcept
-        : m_type(value_t::number_float), m_value(val)
-    {
-        // replace infinity and NAN by null
-        if (not std::isfinite(val))
-        {
-            m_type = value_t::null;
-            m_value = json_value();
-        }
-
-        assert_invariant();
-    }
-
-    /*!
-    @brief create an floating-point number (implicit)
-
-    Create an floating-point number JSON value with a given content. This
-    constructor allows any type @a CompatibleNumberFloatType that can be used
-    to construct values of type @ref number_float_t.
-
-    @tparam CompatibleNumberFloatType A floating-point type which is
-    compatible to @ref number_float_t. Examples may include the types `float`
-    or `double`.
-
-    @param[in] val  a floating-point to create a JSON number from
-
-    @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6
-    disallows NaN values:
-    > Numeric values that cannot be represented in the grammar below (such as
-    > Infinity and NaN) are not permitted.
-    In case the parameter @a val is not a number, a JSON null value is
-    created instead.
-
-    @complexity Constant.
-
-    @liveexample{The example below shows the construction of several
-    floating-point number values from compatible
-    types.,basic_json__CompatibleNumberFloatType}
-
-    @sa @ref basic_json(const number_float_t) -- create a number value
-    (floating-point)
-
-    @since version 1.0.0
-    */
-    template <typename CompatibleNumberFloatType,
-              enable_if_t<detail::is_compatible_float_type<
-                              number_float_t, CompatibleNumberFloatType>::value,
-                          int> = 0>
-    basic_json(const CompatibleNumberFloatType val) noexcept
-        : basic_json(number_float_t(val))
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create a container (array or object) from an initializer list
 

From a32de3b528e9b196ec503a3afecfcc0159f5f413 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 12:44:23 +0100
Subject: [PATCH 080/174] replace constructor by from/to_json:
 number_unsigned_t

This commit forces a design change in custom JSONSerializer, which might
be temporary
---
 src/json.hpp          | 91 ++++++++++++++-----------------------------
 src/json.hpp.re2c     | 91 ++++++++++++++-----------------------------
 test/src/unit-udt.cpp | 19 ++++++---
 3 files changed, 73 insertions(+), 128 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 1e7f1c5a..f3464894 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -248,6 +248,18 @@ struct external_constructor<value_t::number_float>
   }
 };
 
+template <>
+struct external_constructor<value_t::number_unsigned>
+{
+  template <typename Json>
+  static void construct(Json &j, typename Json::number_unsigned_t val) noexcept
+  {
+    j.m_type = value_t::number_unsigned;
+    j.m_value = val;
+    j.assert_invariant();
+  }
+};
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -411,9 +423,7 @@ struct is_compatible_basic_json_type
         std::is_same<T, BasicJson>::value or
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value or
-        is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or
-        is_compatible_integer_type<typename BasicJson::number_unsigned_t,
-        T>::value;
+        is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value;
 };
 
 template <typename T, typename BasicJson, typename PrimitiveIterator>
@@ -526,6 +536,17 @@ void to_json(Json &j, CompatibleNumberFloatType val) noexcept
   external_constructor<value_t::number_float>::construct(j, val);
 }
 
+
+template <
+    typename Json, typename CompatibleNumberUnsignedType,
+   enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t,
+                                         CompatibleNumberUnsignedType>::value,
+                int> = 0>
+void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept
+{
+  external_constructor<value_t::number_unsigned>::construct(j, val);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -548,6 +569,12 @@ void from_json(Json const& j, typename Json::number_float_t& val)
   get_arithmetic_value(j, val);
 }
 
+template <typename Json>
+void from_json(Json const& j, typename Json::number_unsigned_t& val)
+{
+  get_arithmetic_value(j, val);
+}
+
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
@@ -1897,64 +1924,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create an unsigned integer number (explicit)
-
-    Create an unsigned integer number JSON value with a given content.
-
-    @tparam T  helper type to compare number_unsigned_t and unsigned int (not
-    visible in) the interface.
-
-    @param[in] val  an integer to create a JSON number from
-
-    @complexity Constant.
-
-    @sa @ref basic_json(const CompatibleNumberUnsignedType) -- create a number
-    value (unsigned integer) from a compatible number type
-
-    @since version 2.0.0
-    */
-    template<typename T, typename std::enable_if<
-                 not (std::is_same<T, int>::value) and
-                 std::is_same<T, number_unsigned_t>::value, int>::type = 0>
-    basic_json(const number_unsigned_t val) noexcept
-        : m_type(value_t::number_unsigned), m_value(val)
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create an unsigned number (implicit)
-
-    Create an unsigned number JSON value with a given content. This
-    constructor allows any type @a CompatibleNumberUnsignedType that can be
-    used to construct values of type @ref number_unsigned_t.
-
-    @tparam CompatibleNumberUnsignedType An integer type which is compatible
-    to @ref number_unsigned_t. Examples may include the types `unsigned int`,
-    `uint32_t`, or `unsigned short`.
-
-    @param[in] val  an unsigned integer to create a JSON number from
-
-    @complexity Constant.
-
-    @sa @ref basic_json(const number_unsigned_t) -- create a number value
-    (unsigned)
-
-    @since version 2.0.0
-    */
-    template <
-        typename CompatibleNumberUnsignedType,
-        enable_if_t<detail::is_compatible_integer_type<
-                        number_unsigned_t, CompatibleNumberUnsignedType>::value,
-                    int> = 0 >
-    basic_json(const CompatibleNumberUnsignedType val) noexcept
-        : m_type(value_t::number_unsigned),
-          m_value(static_cast<number_unsigned_t>(val))
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create a container (array or object) from an initializer list
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 74697ab2..a7841f6f 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -248,6 +248,18 @@ struct external_constructor<value_t::number_float>
   }
 };
 
+template <>
+struct external_constructor<value_t::number_unsigned>
+{
+  template <typename Json>
+  static void construct(Json &j, typename Json::number_unsigned_t val) noexcept
+  {
+    j.m_type = value_t::number_unsigned;
+    j.m_value = val;
+    j.assert_invariant();
+  }
+};
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -411,9 +423,7 @@ struct is_compatible_basic_json_type
         std::is_same<T, BasicJson>::value or
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value or
-        is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value or
-        is_compatible_integer_type<typename BasicJson::number_unsigned_t,
-        T>::value;
+        is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value;
 };
 
 template <typename T, typename BasicJson, typename PrimitiveIterator>
@@ -526,6 +536,17 @@ void to_json(Json &j, CompatibleNumberFloatType val) noexcept
   external_constructor<value_t::number_float>::construct(j, val);
 }
 
+
+template <
+    typename Json, typename CompatibleNumberUnsignedType,
+   enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t,
+                                         CompatibleNumberUnsignedType>::value,
+                int> = 0>
+void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept
+{
+  external_constructor<value_t::number_unsigned>::construct(j, val);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -548,6 +569,12 @@ void from_json(Json const& j, typename Json::number_float_t& val)
   get_arithmetic_value(j, val);
 }
 
+template <typename Json>
+void from_json(Json const& j, typename Json::number_unsigned_t& val)
+{
+  get_arithmetic_value(j, val);
+}
+
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
@@ -1898,64 +1925,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create an unsigned integer number (explicit)
-
-    Create an unsigned integer number JSON value with a given content.
-
-    @tparam T  helper type to compare number_unsigned_t and unsigned int (not
-    visible in) the interface.
-
-    @param[in] val  an integer to create a JSON number from
-
-    @complexity Constant.
-
-    @sa @ref basic_json(const CompatibleNumberUnsignedType) -- create a number
-    value (unsigned integer) from a compatible number type
-
-    @since version 2.0.0
-    */
-    template<typename T, typename std::enable_if<
-                 not (std::is_same<T, int>::value) and
-                 std::is_same<T, number_unsigned_t>::value, int>::type = 0>
-    basic_json(const number_unsigned_t val) noexcept
-        : m_type(value_t::number_unsigned), m_value(val)
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create an unsigned number (implicit)
-
-    Create an unsigned number JSON value with a given content. This
-    constructor allows any type @a CompatibleNumberUnsignedType that can be
-    used to construct values of type @ref number_unsigned_t.
-
-    @tparam CompatibleNumberUnsignedType An integer type which is compatible
-    to @ref number_unsigned_t. Examples may include the types `unsigned int`,
-    `uint32_t`, or `unsigned short`.
-
-    @param[in] val  an unsigned integer to create a JSON number from
-
-    @complexity Constant.
-
-    @sa @ref basic_json(const number_unsigned_t) -- create a number value
-    (unsigned)
-
-    @since version 2.0.0
-    */
-    template <
-        typename CompatibleNumberUnsignedType,
-        enable_if_t<detail::is_compatible_integer_type<
-                        number_unsigned_t, CompatibleNumberUnsignedType>::value,
-                    int> = 0 >
-    basic_json(const CompatibleNumberUnsignedType val) noexcept
-        : m_type(value_t::number_unsigned),
-          m_value(static_cast<number_unsigned_t>(val))
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create a container (array or object) from an initializer list
 
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 0cd834d6..382b0ed5 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -483,13 +483,20 @@ TEST_CASE("Non-copyable types", "[udt]")
 template <typename T, typename = typename std::enable_if<std::is_pod<T>::value>::type>
 struct pod_serializer
 {
-    // I could forward-declare this struct, and add a basic_json alias
     template <typename Json>
     static void from_json(Json const& j , T& t)
     {
-        auto value = j.template get<std::uint64_t>();
-        auto bytes = static_cast<char*>(static_cast<void*>(&value));
-        std::memcpy(&t, bytes, sizeof(value));
+      std::uint64_t value;
+      // Why cannot we simply use: j.get<std::uint64_t>() ?
+      // Well, with the current experiment, the get method looks for a from_json function, which we are currently defining!
+      // This would end up in a stack overflow. Calling nlohmann::from_json is a workaround.
+      // I shall find a good way to avoid this once all constructors are converted to free methods
+      //
+      // In short, constructing a json by constructor calls to_json
+      // calling get calls from_json, for now, we cannot do this in custom serializers
+      nlohmann::from_json(j, value);
+      auto bytes = static_cast<char *>(static_cast<void *>(&value));
+      std::memcpy(&t, bytes, sizeof(value));
     }
 
     template <typename Json>
@@ -501,8 +508,8 @@ struct pod_serializer
         {
             value |= bytes[i] << 8 * i;
         }
-
-        j = value;
+        // same thing here
+        nlohmann::to_json(j, value);
     }
 };
 

From f00898331e548e864b6d37f70c5470a841fe6cca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 14:06:25 +0100
Subject: [PATCH 081/174] replace constructor by from/to_json: number_integer_t

---
 src/json.hpp      | 129 +++++++++++-----------------------------------
 src/json.hpp.re2c | 129 +++++++++++-----------------------------------
 2 files changed, 62 insertions(+), 196 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index f3464894..9f8f3145 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -260,6 +260,18 @@ struct external_constructor<value_t::number_unsigned>
   }
 };
 
+template <>
+struct external_constructor<value_t::number_integer>
+{
+  template <typename Json>
+  static void construct(Json &j, typename Json::number_integer_t val) noexcept
+  {
+    j.m_type = value_t::number_integer;
+    j.m_value = val;
+    j.assert_invariant();
+  }
+};
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -387,6 +399,7 @@ struct is_compatible_integer_type_impl : std::false_type {};
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
 {
+  // is there an assert somewhere on overflows?
     using RealLimits = std::numeric_limits<RealIntegerType>;
     using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>;
 
@@ -402,7 +415,7 @@ struct is_compatible_integer_type
 {
   static constexpr auto
       value = is_compatible_integer_type_impl <
-                  std::is_arithmetic<CompatibleNumberIntegerType>::value and
+                  std::is_integral<CompatibleNumberIntegerType>::value and
               not std::is_same<bool, CompatibleNumberIntegerType>::value,
       RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
@@ -422,8 +435,7 @@ struct is_compatible_basic_json_type
         is_unscoped_enum<T>::value or
         std::is_same<T, BasicJson>::value or
         is_compatible_array_type<BasicJson, T>::value or
-        is_compatible_object_type<typename BasicJson::object_t, T>::value or
-        is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value;
+        is_compatible_object_type<typename BasicJson::object_t, T>::value;
 };
 
 template <typename T, typename BasicJson, typename PrimitiveIterator>
@@ -547,6 +559,16 @@ void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept
   external_constructor<value_t::number_unsigned>::construct(j, val);
 }
 
+template <
+    typename Json, typename CompatibleNumberIntegerType,
+   enable_if_t<is_compatible_integer_type<typename Json::number_integer_t,
+                                         CompatibleNumberIntegerType>::value,
+                int> = 0>
+void to_json(Json &j, CompatibleNumberIntegerType val) noexcept
+{
+  external_constructor<value_t::number_integer>::construct(j, val);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -575,6 +597,12 @@ void from_json(Json const& j, typename Json::number_unsigned_t& val)
   get_arithmetic_value(j, val);
 }
 
+template <typename Json>
+void from_json(Json const& j, typename Json::number_integer_t& val)
+{
+  get_arithmetic_value(j, val);
+}
+
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
@@ -1820,64 +1848,6 @@ class basic_json
         JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
     }
 
-    /*!
-    @brief create an integer number (explicit)
-
-    Create an integer number JSON value with a given content.
-
-    @tparam T A helper type to remove this function via SFINAE in case @ref
-    number_integer_t is the same as `int`. In this case, this constructor
-    would have the same signature as @ref basic_json(const int value). Note
-    the helper type @a T is not visible in this constructor's interface.
-
-    @param[in] val  an integer to create a JSON number from
-
-    @complexity Constant.
-
-    @liveexample{The example below shows the construction of an integer
-    number value.,basic_json__number_integer_t}
-
-    @sa @ref basic_json(const int) -- create a number value (integer)
-    @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number
-    value (integer) from a compatible number type
-
-    @since version 1.0.0
-    */
-    template<typename T, typename std::enable_if<
-                 not (std::is_same<T, int>::value) and
-                 std::is_same<T, number_integer_t>::value, int>::type = 0>
-    basic_json(const number_integer_t val) noexcept
-        : m_type(value_t::number_integer), m_value(val)
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create an integer number from an enum type (explicit)
-
-    Create an integer number JSON value with a given content.
-
-    @param[in] val  an integer to create a JSON number from
-
-    @note This constructor allows to pass enums directly to a constructor. As
-    C++ has no way of specifying the type of an anonymous enum explicitly, we
-    can only rely on the fact that such values implicitly convert to int. As
-    int may already be the same type of number_integer_t, we may need to
-    switch off the constructor @ref basic_json(const number_integer_t).
-
-    @complexity Constant.
-
-    @liveexample{The example below shows the construction of an integer
-    number value from an anonymous enum.,basic_json__const_int}
-
-    @sa @ref basic_json(const number_integer_t) -- create a number value
-    (integer)
-    @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number
-    value (integer) from a compatible number type
-
-    @since version 1.0.0
-    */
-
     // Constructor for unscoped enums (not enum classes)
     template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0>
     basic_json(T val) noexcept
@@ -1887,43 +1857,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create an integer number (implicit)
-
-    Create an integer number JSON value with a given content. This constructor
-    allows any type @a CompatibleNumberIntegerType that can be used to
-    construct values of type @ref number_integer_t.
-
-    @tparam CompatibleNumberIntegerType An integer type which is compatible to
-    @ref number_integer_t. Examples include the types `int`, `int32_t`,
-    `long`, and `short`.
-
-    @param[in] val  an integer to create a JSON number from
-
-    @complexity Constant.
-
-    @liveexample{The example below shows the construction of several integer
-    number values from compatible
-    types.,basic_json__CompatibleIntegerNumberType}
-
-    @sa @ref basic_json(const number_integer_t) -- create a number value
-    (integer)
-    @sa @ref basic_json(const int) -- create a number value (integer)
-
-    @since version 1.0.0
-    */
-    template <
-        typename CompatibleNumberIntegerType,
-        enable_if_t<detail::is_compatible_integer_type<
-                        number_integer_t, CompatibleNumberIntegerType>::value,
-                    int> = 0 >
-    basic_json(const CompatibleNumberIntegerType val) noexcept
-        : m_type(value_t::number_integer),
-          m_value(static_cast<number_integer_t>(val))
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create a container (array or object) from an initializer list
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index a7841f6f..909ce90d 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -260,6 +260,18 @@ struct external_constructor<value_t::number_unsigned>
   }
 };
 
+template <>
+struct external_constructor<value_t::number_integer>
+{
+  template <typename Json>
+  static void construct(Json &j, typename Json::number_integer_t val) noexcept
+  {
+    j.m_type = value_t::number_integer;
+    j.m_value = val;
+    j.assert_invariant();
+  }
+};
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -387,6 +399,7 @@ struct is_compatible_integer_type_impl : std::false_type {};
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
 {
+  // is there an assert somewhere on overflows?
     using RealLimits = std::numeric_limits<RealIntegerType>;
     using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>;
 
@@ -402,7 +415,7 @@ struct is_compatible_integer_type
 {
   static constexpr auto
       value = is_compatible_integer_type_impl <
-                  std::is_arithmetic<CompatibleNumberIntegerType>::value and
+                  std::is_integral<CompatibleNumberIntegerType>::value and
               not std::is_same<bool, CompatibleNumberIntegerType>::value,
       RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
@@ -422,8 +435,7 @@ struct is_compatible_basic_json_type
         is_unscoped_enum<T>::value or
         std::is_same<T, BasicJson>::value or
         is_compatible_array_type<BasicJson, T>::value or
-        is_compatible_object_type<typename BasicJson::object_t, T>::value or
-        is_compatible_integer_type<typename BasicJson::number_integer_t, T>::value;
+        is_compatible_object_type<typename BasicJson::object_t, T>::value;
 };
 
 template <typename T, typename BasicJson, typename PrimitiveIterator>
@@ -547,6 +559,16 @@ void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept
   external_constructor<value_t::number_unsigned>::construct(j, val);
 }
 
+template <
+    typename Json, typename CompatibleNumberIntegerType,
+   enable_if_t<is_compatible_integer_type<typename Json::number_integer_t,
+                                         CompatibleNumberIntegerType>::value,
+                int> = 0>
+void to_json(Json &j, CompatibleNumberIntegerType val) noexcept
+{
+  external_constructor<value_t::number_integer>::construct(j, val);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -575,6 +597,12 @@ void from_json(Json const& j, typename Json::number_unsigned_t& val)
   get_arithmetic_value(j, val);
 }
 
+template <typename Json>
+void from_json(Json const& j, typename Json::number_integer_t& val)
+{
+  get_arithmetic_value(j, val);
+}
+
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
@@ -1821,64 +1849,6 @@ class basic_json
         JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
     }
 
-    /*!
-    @brief create an integer number (explicit)
-
-    Create an integer number JSON value with a given content.
-
-    @tparam T A helper type to remove this function via SFINAE in case @ref
-    number_integer_t is the same as `int`. In this case, this constructor
-    would have the same signature as @ref basic_json(const int value). Note
-    the helper type @a T is not visible in this constructor's interface.
-
-    @param[in] val  an integer to create a JSON number from
-
-    @complexity Constant.
-
-    @liveexample{The example below shows the construction of an integer
-    number value.,basic_json__number_integer_t}
-
-    @sa @ref basic_json(const int) -- create a number value (integer)
-    @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number
-    value (integer) from a compatible number type
-
-    @since version 1.0.0
-    */
-    template<typename T, typename std::enable_if<
-                 not (std::is_same<T, int>::value) and
-                 std::is_same<T, number_integer_t>::value, int>::type = 0>
-    basic_json(const number_integer_t val) noexcept
-        : m_type(value_t::number_integer), m_value(val)
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create an integer number from an enum type (explicit)
-
-    Create an integer number JSON value with a given content.
-
-    @param[in] val  an integer to create a JSON number from
-
-    @note This constructor allows to pass enums directly to a constructor. As
-    C++ has no way of specifying the type of an anonymous enum explicitly, we
-    can only rely on the fact that such values implicitly convert to int. As
-    int may already be the same type of number_integer_t, we may need to
-    switch off the constructor @ref basic_json(const number_integer_t).
-
-    @complexity Constant.
-
-    @liveexample{The example below shows the construction of an integer
-    number value from an anonymous enum.,basic_json__const_int}
-
-    @sa @ref basic_json(const number_integer_t) -- create a number value
-    (integer)
-    @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number
-    value (integer) from a compatible number type
-
-    @since version 1.0.0
-    */
-
     // Constructor for unscoped enums (not enum classes)
     template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0>
     basic_json(T val) noexcept
@@ -1888,43 +1858,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create an integer number (implicit)
-
-    Create an integer number JSON value with a given content. This constructor
-    allows any type @a CompatibleNumberIntegerType that can be used to
-    construct values of type @ref number_integer_t.
-
-    @tparam CompatibleNumberIntegerType An integer type which is compatible to
-    @ref number_integer_t. Examples include the types `int`, `int32_t`,
-    `long`, and `short`.
-
-    @param[in] val  an integer to create a JSON number from
-
-    @complexity Constant.
-
-    @liveexample{The example below shows the construction of several integer
-    number values from compatible
-    types.,basic_json__CompatibleIntegerNumberType}
-
-    @sa @ref basic_json(const number_integer_t) -- create a number value
-    (integer)
-    @sa @ref basic_json(const int) -- create a number value (integer)
-
-    @since version 1.0.0
-    */
-    template <
-        typename CompatibleNumberIntegerType,
-        enable_if_t<detail::is_compatible_integer_type<
-                        number_integer_t, CompatibleNumberIntegerType>::value,
-                    int> = 0 >
-    basic_json(const CompatibleNumberIntegerType val) noexcept
-        : m_type(value_t::number_integer),
-          m_value(static_cast<number_integer_t>(val))
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create a container (array or object) from an initializer list
 

From 6d427acdde352db6b48630fddd6d5e3d4bd542dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 14:07:10 +0100
Subject: [PATCH 082/174] replace constructor by from/to_json: unscoped enum
 types

this also means that one can do: j.get<unscoped_enum>();
---
 src/json.hpp                 | 26 ++++++++++++++++----------
 src/json.hpp.re2c            | 26 ++++++++++++++++----------
 test/src/unit-regression.cpp | 10 +++++++++-
 3 files changed, 41 insertions(+), 21 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 9f8f3145..74e6338f 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -432,7 +432,6 @@ template <typename T, typename BasicJson>
 struct is_compatible_basic_json_type
 {
     static auto constexpr value =
-        is_unscoped_enum<T>::value or
         std::is_same<T, BasicJson>::value or
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value;
@@ -569,6 +568,13 @@ void to_json(Json &j, CompatibleNumberIntegerType val) noexcept
   external_constructor<value_t::number_integer>::construct(j, val);
 }
 
+template <typename Json, typename UnscopedEnumType,
+          enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
+void to_json(Json &j, UnscopedEnumType e)
+{
+  external_constructor<value_t::number_integer>::construct(j, e);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -603,6 +609,15 @@ void from_json(Json const& j, typename Json::number_integer_t& val)
   get_arithmetic_value(j, val);
 }
 
+template <typename Json, typename UnscopedEnumType,
+          enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
+void from_json(Json const &j, UnscopedEnumType& e)
+{
+  typename std::underlying_type<UnscopedEnumType>::type val = e;
+  get_arithmetic_value(j, val);
+  e = static_cast<UnscopedEnumType>(val);
+}
+
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
@@ -1848,15 +1863,6 @@ class basic_json
         JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
     }
 
-    // Constructor for unscoped enums (not enum classes)
-    template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0>
-    basic_json(T val) noexcept
-        : m_type(value_t::number_integer),
-          m_value(static_cast<number_integer_t>(val))
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create a container (array or object) from an initializer list
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 909ce90d..c4182652 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -432,7 +432,6 @@ template <typename T, typename BasicJson>
 struct is_compatible_basic_json_type
 {
     static auto constexpr value =
-        is_unscoped_enum<T>::value or
         std::is_same<T, BasicJson>::value or
         is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value;
@@ -569,6 +568,13 @@ void to_json(Json &j, CompatibleNumberIntegerType val) noexcept
   external_constructor<value_t::number_integer>::construct(j, val);
 }
 
+template <typename Json, typename UnscopedEnumType,
+          enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
+void to_json(Json &j, UnscopedEnumType e)
+{
+  external_constructor<value_t::number_integer>::construct(j, e);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -603,6 +609,15 @@ void from_json(Json const& j, typename Json::number_integer_t& val)
   get_arithmetic_value(j, val);
 }
 
+template <typename Json, typename UnscopedEnumType,
+          enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
+void from_json(Json const &j, UnscopedEnumType& e)
+{
+  typename std::underlying_type<UnscopedEnumType>::type val = e;
+  get_arithmetic_value(j, val);
+  e = static_cast<UnscopedEnumType>(val);
+}
+
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
@@ -1849,15 +1864,6 @@ class basic_json
         JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
     }
 
-    // Constructor for unscoped enums (not enum classes)
-    template <typename T, enable_if_t<is_unscoped_enum<T>::value, int> = 0>
-    basic_json(T val) noexcept
-        : m_type(value_t::number_integer),
-          m_value(static_cast<number_integer_t>(val))
-    {
-        assert_invariant();
-    }
-
     /*!
     @brief create a container (array or object) from an initializer list
 
diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 7cb9169f..07055bc1 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -63,10 +63,18 @@ TEST_CASE("regression tests")
 
     SECTION("pull request #71 - handle enum type")
     {
-        enum { t = 0 };
+        enum { t = 0 , u = 1};
         json j = json::array();
         j.push_back(t);
 
+        // maybe this is not the place to test this?
+        json j2 = u;
+
+        auto anon_enum_value = j2.get<decltype(u)>();
+        CHECK(u == anon_enum_value);
+
+        static_assert(std::is_same<decltype(anon_enum_value), decltype(u)>::value, "");
+
         j.push_back(json::object(
         {
             {"game_type", t}

From c847e0eea2667d78936bc032884657911b028003 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 16:17:47 +0100
Subject: [PATCH 083/174] replace constructor by from/to_json: array_t

- tweaked a bit how `get<container<json>>` is handled
- added a from_json overload for forward list
---
 src/json.hpp                  | 196 ++++++++++++++++++++--------------
 src/json.hpp.re2c             | 196 ++++++++++++++++++++--------------
 test/src/unit-conversions.cpp |   2 +
 test/src/unit-udt.cpp         |  26 ++---
 4 files changed, 249 insertions(+), 171 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 74e6338f..a7be5c81 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -39,6 +39,7 @@ SOFTWARE.
 #include <cstdint> // int64_t, uint64_t
 #include <cstdlib> // strtod, strtof, strtold, strtoul
 #include <cstring> // strlen
+#include <forward_list> // forward_list
 #include <functional> // function, hash, less
 #include <initializer_list> // initializer_list
 #include <iomanip> // setw
@@ -272,6 +273,32 @@ struct external_constructor<value_t::number_integer>
   }
 };
 
+template <>
+struct external_constructor<value_t::array>
+{
+  template <typename Json>
+  static void construct(Json &j, const typename Json::array_t& arr)
+  {
+    j.m_type = value_t::array;
+    j.m_value = arr;
+    j.assert_invariant();
+  }
+
+  template <typename Json, typename CompatibleArrayType,
+            enable_if_t<not std::is_same<CompatibleArrayType,
+                                         typename Json::array_t>::value,
+                        int> = 0>
+  static void construct(Json &j, const CompatibleArrayType &arr)
+  {
+    using std::begin;
+    using std::end;
+    j.m_type = value_t::array;
+    j.m_value.array =
+        j.template create<typename Json::array_t>(begin(arr), end(arr));
+    j.assert_invariant();
+  }
+};
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -432,8 +459,6 @@ template <typename T, typename BasicJson>
 struct is_compatible_basic_json_type
 {
     static auto constexpr value =
-        std::is_same<T, BasicJson>::value or
-        is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value;
 };
 
@@ -575,6 +600,17 @@ void to_json(Json &j, UnscopedEnumType e)
   external_constructor<value_t::number_integer>::construct(j, e);
 }
 
+template <
+    typename Json, typename CompatibleArrayType,
+    enable_if_t<
+        is_compatible_array_type<Json, CompatibleArrayType>::value or
+            std::is_same<typename Json::array_t, CompatibleArrayType>::value,
+        int> = 0>
+void to_json(Json &j, CompatibleArrayType const &arr)
+{
+  external_constructor<value_t::array>::construct(j, arr);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -618,6 +654,59 @@ void from_json(Json const &j, UnscopedEnumType& e)
   e = static_cast<UnscopedEnumType>(val);
 }
 
+template <typename Json>
+void from_json(Json const &j, typename Json::array_t &arr)
+{
+  if (!j.is_array())
+    throw std::domain_error("type must be array, but is " + type_name(j));
+  arr = *const_cast<Json&>(j).template get_ptr<typename Json::array_t*>();
+}
+
+// forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
+template <typename Json, typename T, typename Allocator>
+void from_json(Json const&j, std::forward_list<T, Allocator>& l)
+{
+  // do not perform the check when user wants to retrieve jsons
+  // (except when it's null.. ?)
+  if (j.is_null())
+      throw std::domain_error("type must be array, but is " + type_name(j));
+  if (not std::is_same<T, Json>::value)
+  {
+    if (!j.is_array())
+      throw std::domain_error("type must be array, but is " + type_name(j));
+  }
+  for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
+    l.push_front(it->template get<T>());
+}
+
+template <
+    typename Json, typename CompatibleArrayType,
+    enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and
+                    not std::is_same<typename Json::array_t,
+                                     CompatibleArrayType>::value,
+                int> = 0>
+void from_json(Json const &j, CompatibleArrayType &arr)
+{
+  if (j.is_null())
+      throw std::domain_error("type must be array, but is " + type_name(j));
+  // when T == Json, do not check if value_t is correct
+  if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
+  {
+    if (!j.is_array())
+      throw std::domain_error("type must be array, but is " + type_name(j));
+  }
+
+  using std::begin;
+  using std::end;
+  std::transform(
+      j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i)
+      {
+        // get<Json>() returns *this, this won't call a from_json method when
+        // value_type is Json
+        return i.template get<typename CompatibleArrayType::value_type>();
+      });
+}
+
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
@@ -1780,69 +1869,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create an array (explicit)
-
-    Create an array JSON value with a given content.
-
-    @param[in] val  a value for the array
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for array value fails
-
-    @liveexample{The following code shows the constructor with an @ref array_t
-    parameter.,basic_json__array_t}
-
-    @sa @ref basic_json(const CompatibleArrayType&) -- create an array value
-    from a compatible STL containers
-
-    @since version 1.0.0
-    */
-    basic_json(const array_t& val)
-        : m_type(value_t::array), m_value(val)
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create an array (implicit)
-
-    Create an array JSON value with a given content. This constructor allows
-    any type @a CompatibleArrayType that can be used to construct values of
-    type @ref array_t.
-
-    @tparam CompatibleArrayType An object type whose `value_type` is
-    compatible to @ref array_t. Examples include `std::vector`, `std::deque`,
-    `std::list`, `std::forward_list`, `std::array`, `std::set`,
-    `std::unordered_set`, `std::multiset`, and `unordered_multiset` with a
-    `value_type` from which a @ref basic_json value can be constructed.
-
-    @param[in] val  a value for the array
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for array value fails
-
-    @liveexample{The following code shows the constructor with several
-    compatible array type parameters.,basic_json__CompatibleArrayType}
-
-    @sa @ref basic_json(const array_t&) -- create an array value
-
-    @since version 1.0.0
-    */
-    template <class CompatibleArrayType,
-              enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value,
-                          int> = 0>
-    basic_json(const CompatibleArrayType& val) : m_type(value_t::array)
-    {
-        using std::begin;
-        using std::end;
-        m_value.array = create<array_t>(begin(val), end(val));
-        assert_invariant();
-    }
-
-
     // constructor chosen when:
     // - JSONSerializer::to_json exists for type T
     // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
@@ -1851,6 +1877,7 @@ class basic_json
         typename T,
         enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
                     not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
+                    not std::is_same<uncvref_t<T>, basic_json_t>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
                     detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
@@ -3211,23 +3238,34 @@ class basic_json
       return get_impl(static_cast<ValueType *>(nullptr));
     }
 
+    // if T is basic_json, simply returns *this
+    template <typename T,
+              enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
+    basic_json get() const
+    {
+      return *this;
+    }
+
     template <
         typename T,
-        enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
-                                            uncvref_t<T>, basic_json_t>>,
-                                        detail::has_from_json<JSONSerializer, basic_json_t,
-                                                uncvref_t<T>>>::value,
-                                                int> = 0 >
-                    auto get() const -> uncvref_t<T>
+        enable_if_t<detail::conjunction<
+                        detail::negation<detail::is_compatible_basic_json_type<
+                            uncvref_t<T>, basic_json_t>>,
+                        detail::has_from_json<JSONSerializer, basic_json_t,
+                                              uncvref_t<T>>>::value and
+                        not std::is_same<basic_json_t, uncvref_t<T>>::value,
+                    int> = 0>
+    // do we really want the uncvref ? if a user call get<int &>, shouldn't we static assert ?
+    auto get() const -> uncvref_t<T>
     {
-        using type = uncvref_t<T>;
-        static_assert(std::is_default_constructible<type>::value&&
-        std::is_copy_constructible<type>::value,
-        "user-defined types must be DefaultConstructible and "
-        "CopyConstructible when used with get");
-        type ret;
-        JSONSerializer<type>::from_json(*this, ret);
-        return ret;
+      using type = uncvref_t<T>;
+      static_assert(std::is_default_constructible<type>::value &&
+                        std::is_copy_constructible<type>::value,
+                    "user-defined types must be DefaultConstructible and "
+                    "CopyConstructible when used with get");
+      type ret;
+      JSONSerializer<type>::from_json(*this, ret);
+      return ret;
     }
 
     // This overload is chosen for non-default constructible user-defined-types
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index c4182652..a5674238 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -39,6 +39,7 @@ SOFTWARE.
 #include <cstdint> // int64_t, uint64_t
 #include <cstdlib> // strtod, strtof, strtold, strtoul
 #include <cstring> // strlen
+#include <forward_list> // forward_list
 #include <functional> // function, hash, less
 #include <initializer_list> // initializer_list
 #include <iomanip> // setw
@@ -272,6 +273,32 @@ struct external_constructor<value_t::number_integer>
   }
 };
 
+template <>
+struct external_constructor<value_t::array>
+{
+  template <typename Json>
+  static void construct(Json &j, const typename Json::array_t& arr)
+  {
+    j.m_type = value_t::array;
+    j.m_value = arr;
+    j.assert_invariant();
+  }
+
+  template <typename Json, typename CompatibleArrayType,
+            enable_if_t<not std::is_same<CompatibleArrayType,
+                                         typename Json::array_t>::value,
+                        int> = 0>
+  static void construct(Json &j, const CompatibleArrayType &arr)
+  {
+    using std::begin;
+    using std::end;
+    j.m_type = value_t::array;
+    j.m_value.array =
+        j.template create<typename Json::array_t>(begin(arr), end(arr));
+    j.assert_invariant();
+  }
+};
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -432,8 +459,6 @@ template <typename T, typename BasicJson>
 struct is_compatible_basic_json_type
 {
     static auto constexpr value =
-        std::is_same<T, BasicJson>::value or
-        is_compatible_array_type<BasicJson, T>::value or
         is_compatible_object_type<typename BasicJson::object_t, T>::value;
 };
 
@@ -575,6 +600,17 @@ void to_json(Json &j, UnscopedEnumType e)
   external_constructor<value_t::number_integer>::construct(j, e);
 }
 
+template <
+    typename Json, typename CompatibleArrayType,
+    enable_if_t<
+        is_compatible_array_type<Json, CompatibleArrayType>::value or
+            std::is_same<typename Json::array_t, CompatibleArrayType>::value,
+        int> = 0>
+void to_json(Json &j, CompatibleArrayType const &arr)
+{
+  external_constructor<value_t::array>::construct(j, arr);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -618,6 +654,59 @@ void from_json(Json const &j, UnscopedEnumType& e)
   e = static_cast<UnscopedEnumType>(val);
 }
 
+template <typename Json>
+void from_json(Json const &j, typename Json::array_t &arr)
+{
+  if (!j.is_array())
+    throw std::domain_error("type must be array, but is " + type_name(j));
+  arr = *const_cast<Json&>(j).template get_ptr<typename Json::array_t*>();
+}
+
+// forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
+template <typename Json, typename T, typename Allocator>
+void from_json(Json const&j, std::forward_list<T, Allocator>& l)
+{
+  // do not perform the check when user wants to retrieve jsons
+  // (except when it's null.. ?)
+  if (j.is_null())
+      throw std::domain_error("type must be array, but is " + type_name(j));
+  if (not std::is_same<T, Json>::value)
+  {
+    if (!j.is_array())
+      throw std::domain_error("type must be array, but is " + type_name(j));
+  }
+  for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
+    l.push_front(it->template get<T>());
+}
+
+template <
+    typename Json, typename CompatibleArrayType,
+    enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and
+                    not std::is_same<typename Json::array_t,
+                                     CompatibleArrayType>::value,
+                int> = 0>
+void from_json(Json const &j, CompatibleArrayType &arr)
+{
+  if (j.is_null())
+      throw std::domain_error("type must be array, but is " + type_name(j));
+  // when T == Json, do not check if value_t is correct
+  if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
+  {
+    if (!j.is_array())
+      throw std::domain_error("type must be array, but is " + type_name(j));
+  }
+
+  using std::begin;
+  using std::end;
+  std::transform(
+      j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i)
+      {
+        // get<Json>() returns *this, this won't call a from_json method when
+        // value_type is Json
+        return i.template get<typename CompatibleArrayType::value_type>();
+      });
+}
+
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
@@ -1781,69 +1870,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create an array (explicit)
-
-    Create an array JSON value with a given content.
-
-    @param[in] val  a value for the array
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for array value fails
-
-    @liveexample{The following code shows the constructor with an @ref array_t
-    parameter.,basic_json__array_t}
-
-    @sa @ref basic_json(const CompatibleArrayType&) -- create an array value
-    from a compatible STL containers
-
-    @since version 1.0.0
-    */
-    basic_json(const array_t& val)
-        : m_type(value_t::array), m_value(val)
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create an array (implicit)
-
-    Create an array JSON value with a given content. This constructor allows
-    any type @a CompatibleArrayType that can be used to construct values of
-    type @ref array_t.
-
-    @tparam CompatibleArrayType An object type whose `value_type` is
-    compatible to @ref array_t. Examples include `std::vector`, `std::deque`,
-    `std::list`, `std::forward_list`, `std::array`, `std::set`,
-    `std::unordered_set`, `std::multiset`, and `unordered_multiset` with a
-    `value_type` from which a @ref basic_json value can be constructed.
-
-    @param[in] val  a value for the array
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for array value fails
-
-    @liveexample{The following code shows the constructor with several
-    compatible array type parameters.,basic_json__CompatibleArrayType}
-
-    @sa @ref basic_json(const array_t&) -- create an array value
-
-    @since version 1.0.0
-    */
-    template <class CompatibleArrayType,
-              enable_if_t<detail::is_compatible_array_type<basic_json_t, CompatibleArrayType>::value,
-                          int> = 0>
-    basic_json(const CompatibleArrayType& val) : m_type(value_t::array)
-    {
-        using std::begin;
-        using std::end;
-        m_value.array = create<array_t>(begin(val), end(val));
-        assert_invariant();
-    }
-
-
     // constructor chosen when:
     // - JSONSerializer::to_json exists for type T
     // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
@@ -1852,6 +1878,7 @@ class basic_json
         typename T,
         enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
                     not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
+                    not std::is_same<uncvref_t<T>, basic_json_t>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
                     detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
@@ -3209,23 +3236,34 @@ class basic_json
       return get_impl(static_cast<ValueType *>(nullptr));
     }
 
+    // if T is basic_json, simply returns *this
+    template <typename T,
+              enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
+    basic_json get() const
+    {
+      return *this;
+    }
+
     template <
         typename T,
-        enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
-                                            uncvref_t<T>, basic_json_t>>,
-                                        detail::has_from_json<JSONSerializer, basic_json_t,
-                                                uncvref_t<T>>>::value,
-                                                int> = 0 >
-                    auto get() const -> uncvref_t<T>
+        enable_if_t<detail::conjunction<
+                        detail::negation<detail::is_compatible_basic_json_type<
+                            uncvref_t<T>, basic_json_t>>,
+                        detail::has_from_json<JSONSerializer, basic_json_t,
+                                              uncvref_t<T>>>::value and
+                        not std::is_same<basic_json_t, uncvref_t<T>>::value,
+                    int> = 0>
+    // do we really want the uncvref ? if a user call get<int &>, shouldn't we static assert ?
+    auto get() const -> uncvref_t<T>
     {
-        using type = uncvref_t<T>;
-        static_assert(std::is_default_constructible<type>::value&&
-        std::is_copy_constructible<type>::value,
-        "user-defined types must be DefaultConstructible and "
-        "CopyConstructible when used with get");
-        type ret;
-        JSONSerializer<type>::from_json(*this, ret);
-        return ret;
+      using type = uncvref_t<T>;
+      static_assert(std::is_default_constructible<type>::value &&
+                        std::is_copy_constructible<type>::value,
+                    "user-defined types must be DefaultConstructible and "
+                    "CopyConstructible when used with get");
+      type ret;
+      JSONSerializer<type>::from_json(*this, ret);
+      return ret;
     }
 
     // This overload is chosen for non-default constructible user-defined-types
diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp
index b82127bb..2b570533 100644
--- a/test/src/unit-conversions.cpp
+++ b/test/src/unit-conversions.cpp
@@ -1004,6 +1004,8 @@ TEST_CASE("value conversion")
                 CHECK_THROWS_AS((json().get<std::vector<json>>()), std::logic_error);
                 CHECK_THROWS_AS((json().get<std::list<json>>()), std::logic_error);
 
+                // does type really must be an array? or it rather must not be null?
+                // that's what I thought when other test like this one broke
                 CHECK_THROWS_WITH((json().get<std::list<int>>()), "type must be array, but is null");
                 CHECK_THROWS_WITH((json().get<std::vector<int>>()), "type must be array, but is null");
                 CHECK_THROWS_WITH((json().get<std::vector<json>>()), "type must be array, but is null");
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 382b0ed5..bb150e76 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -391,19 +391,19 @@ TEST_CASE("adl_serializer specialization", "[udt]")
 
 namespace nlohmann
 {
-// this might work in the future, not in the scope of this PR though
-// we have to make this very clear in the doc
-template <typename T>
-struct adl_serializer<std::vector<T>>
-{
-    static void to_json(json& j, std::vector<T> const& opt)
-    {
-    }
-
-    static void from_json(json const& j, std::vector<T>& opt)
-    {
-    }
-};
+  // TODO provide a real example, since this works now :)
+// template <typename T>
+// struct adl_serializer<std::vector<T>>
+// {
+//     static void to_json(json& j, std::vector<T> const& opt)
+//     {
+//       
+//     }
+//
+//     static void from_json(json const& j, std::vector<T>& opt)
+//     {
+//     }
+// };
 }
 
 TEST_CASE("current supported types are preferred over specializations", "[udt]")

From 7e6a6f978ecc6e28af719417fdb9e73c6f73c567 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 16:55:34 +0100
Subject: [PATCH 084/174] replace constructor by from/to_json: array_t

---
 src/json.hpp      | 120 +++++++++++++++++++++-------------------------
 src/json.hpp.re2c | 120 +++++++++++++++++++++-------------------------
 2 files changed, 110 insertions(+), 130 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index a7be5c81..a07f10eb 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -299,6 +299,33 @@ struct external_constructor<value_t::array>
   }
 };
 
+template <>
+struct external_constructor<value_t::object>
+{
+  template <typename Json>
+  static void construct(Json &j, const typename Json::object_t& obj)
+  {
+    j.m_type = value_t::object;
+    j.m_value = obj;
+    j.assert_invariant();
+  }
+
+  template <typename Json, typename CompatibleObjectType,
+            enable_if_t<not std::is_same<CompatibleObjectType,
+                                         typename Json::object_t>::value,
+                        int> = 0>
+  static void construct(Json &j, const CompatibleObjectType &obj)
+  {
+    using std::begin;
+    using std::end;
+
+    j.m_type = value_t::object;
+    j.m_value.object =
+        j.template create<typename Json::object_t>(begin(obj), end(obj));
+    j.assert_invariant();
+  }
+};
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -458,8 +485,7 @@ struct is_compatible_float_type
 template <typename T, typename BasicJson>
 struct is_compatible_basic_json_type
 {
-    static auto constexpr value =
-        is_compatible_object_type<typename BasicJson::object_t, T>::value;
+  static auto constexpr value = false;
 };
 
 template <typename T, typename BasicJson, typename PrimitiveIterator>
@@ -611,6 +637,15 @@ void to_json(Json &j, CompatibleArrayType const &arr)
   external_constructor<value_t::array>::construct(j, arr);
 }
 
+template <
+    typename Json, typename CompatibleObjectType,
+    enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value,
+                int> = 0>
+void to_json(Json &j, CompatibleObjectType const &arr)
+{
+  external_constructor<value_t::object>::construct(j, arr);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -707,6 +742,24 @@ void from_json(Json const &j, CompatibleArrayType &arr)
       });
 }
 
+
+template <
+    typename Json, typename CompatibleObjectType,
+    enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value,
+                int> = 0>
+void from_json(Json const &j, CompatibleObjectType &obj)
+{
+  if (!j.is_object())
+    throw std::domain_error("type must be object, but is " + type_name(j));
+
+  auto inner_object = const_cast<Json&>(j).template get_ptr<typename Json::object_t*>();
+  using std::begin;
+  using std::end;
+  // we could avoid the assignment, but this might require a for loop, which
+  // might be less efficient than the container constructor for some containers (would it?)
+  obj = CompatibleObjectType(begin(*inner_object), end(*inner_object));
+}
+
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
@@ -1806,69 +1859,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create an object (explicit)
-
-    Create an object JSON value with a given content.
-
-    @param[in] val  a value for the object
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for object value fails
-
-    @liveexample{The following code shows the constructor with an @ref
-    object_t parameter.,basic_json__object_t}
-
-    @sa @ref basic_json(const CompatibleObjectType&) -- create an object value
-    from a compatible STL container
-
-    @since version 1.0.0
-    */
-    basic_json(const object_t& val)
-        : m_type(value_t::object), m_value(val)
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create an object (implicit)
-
-    Create an object JSON value with a given content. This constructor allows
-    any type @a CompatibleObjectType that can be used to construct values of
-    type @ref object_t.
-
-    @tparam CompatibleObjectType An object type whose `key_type` and
-    `value_type` is compatible to @ref object_t. Examples include `std::map`,
-    `std::unordered_map`, `std::multimap`, and `std::unordered_multimap` with
-    a `key_type` of `std::string`, and a `value_type` from which a @ref
-    basic_json value can be constructed.
-
-    @param[in] val  a value for the object
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for object value fails
-
-    @liveexample{The following code shows the constructor with several
-    compatible object type parameters.,basic_json__CompatibleObjectType}
-
-    @sa @ref basic_json(const object_t&) -- create an object value
-
-    @since version 1.0.0
-    */
-    template <class CompatibleObjectType,
-              enable_if_t<detail::is_compatible_object_type<
-                              object_t, CompatibleObjectType>::value,
-                          int> = 0>
-    basic_json(const CompatibleObjectType& val) : m_type(value_t::object)
-    {
-        using std::begin;
-        using std::end;
-        m_value.object = create<object_t>(begin(val), end(val));
-        assert_invariant();
-    }
-
     // constructor chosen when:
     // - JSONSerializer::to_json exists for type T
     // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index a5674238..32a6282e 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -299,6 +299,33 @@ struct external_constructor<value_t::array>
   }
 };
 
+template <>
+struct external_constructor<value_t::object>
+{
+  template <typename Json>
+  static void construct(Json &j, const typename Json::object_t& obj)
+  {
+    j.m_type = value_t::object;
+    j.m_value = obj;
+    j.assert_invariant();
+  }
+
+  template <typename Json, typename CompatibleObjectType,
+            enable_if_t<not std::is_same<CompatibleObjectType,
+                                         typename Json::object_t>::value,
+                        int> = 0>
+  static void construct(Json &j, const CompatibleObjectType &obj)
+  {
+    using std::begin;
+    using std::end;
+
+    j.m_type = value_t::object;
+    j.m_value.object =
+        j.template create<typename Json::object_t>(begin(obj), end(obj));
+    j.assert_invariant();
+  }
+};
+
 // very useful construct against boilerplate (more boilerplate needed than in
 // C++17: http://en.cppreference.com/w/cpp/types/void_t)
 template <typename...> struct make_void
@@ -458,8 +485,7 @@ struct is_compatible_float_type
 template <typename T, typename BasicJson>
 struct is_compatible_basic_json_type
 {
-    static auto constexpr value =
-        is_compatible_object_type<typename BasicJson::object_t, T>::value;
+  static auto constexpr value = false;
 };
 
 template <typename T, typename BasicJson, typename PrimitiveIterator>
@@ -611,6 +637,15 @@ void to_json(Json &j, CompatibleArrayType const &arr)
   external_constructor<value_t::array>::construct(j, arr);
 }
 
+template <
+    typename Json, typename CompatibleObjectType,
+    enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value,
+                int> = 0>
+void to_json(Json &j, CompatibleObjectType const &arr)
+{
+  external_constructor<value_t::object>::construct(j, arr);
+}
+
 template <typename Json>
 void from_json(Json const& j, typename Json::boolean_t& b)
 {
@@ -707,6 +742,24 @@ void from_json(Json const &j, CompatibleArrayType &arr)
       });
 }
 
+
+template <
+    typename Json, typename CompatibleObjectType,
+    enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value,
+                int> = 0>
+void from_json(Json const &j, CompatibleObjectType &obj)
+{
+  if (!j.is_object())
+    throw std::domain_error("type must be object, but is " + type_name(j));
+
+  auto inner_object = const_cast<Json&>(j).template get_ptr<typename Json::object_t*>();
+  using std::begin;
+  using std::end;
+  // we could avoid the assignment, but this might require a for loop, which
+  // might be less efficient than the container constructor for some containers (would it?)
+  obj = CompatibleObjectType(begin(*inner_object), end(*inner_object));
+}
+
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
@@ -1807,69 +1860,6 @@ class basic_json
         assert_invariant();
     }
 
-    /*!
-    @brief create an object (explicit)
-
-    Create an object JSON value with a given content.
-
-    @param[in] val  a value for the object
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for object value fails
-
-    @liveexample{The following code shows the constructor with an @ref
-    object_t parameter.,basic_json__object_t}
-
-    @sa @ref basic_json(const CompatibleObjectType&) -- create an object value
-    from a compatible STL container
-
-    @since version 1.0.0
-    */
-    basic_json(const object_t& val)
-        : m_type(value_t::object), m_value(val)
-    {
-        assert_invariant();
-    }
-
-    /*!
-    @brief create an object (implicit)
-
-    Create an object JSON value with a given content. This constructor allows
-    any type @a CompatibleObjectType that can be used to construct values of
-    type @ref object_t.
-
-    @tparam CompatibleObjectType An object type whose `key_type` and
-    `value_type` is compatible to @ref object_t. Examples include `std::map`,
-    `std::unordered_map`, `std::multimap`, and `std::unordered_multimap` with
-    a `key_type` of `std::string`, and a `value_type` from which a @ref
-    basic_json value can be constructed.
-
-    @param[in] val  a value for the object
-
-    @complexity Linear in the size of the passed @a val.
-
-    @throw std::bad_alloc if allocation for object value fails
-
-    @liveexample{The following code shows the constructor with several
-    compatible object type parameters.,basic_json__CompatibleObjectType}
-
-    @sa @ref basic_json(const object_t&) -- create an object value
-
-    @since version 1.0.0
-    */
-    template <class CompatibleObjectType,
-              enable_if_t<detail::is_compatible_object_type<
-                              object_t, CompatibleObjectType>::value,
-                          int> = 0>
-    basic_json(const CompatibleObjectType& val) : m_type(value_t::object)
-    {
-        using std::begin;
-        using std::end;
-        m_value.object = create<object_t>(begin(val), end(val));
-        assert_invariant();
-    }
-
     // constructor chosen when:
     // - JSONSerializer::to_json exists for type T
     // - T is not a istream, nor convertible to basic_json (float, vectors, etc)

From 4e8089b9de2094037103b45d791fec4a8816a430 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 17:20:50 +0100
Subject: [PATCH 085/174] remove old get/get_impl overloads (doc removal is of
 course temporary)

---
 src/json.hpp      | 231 +++++-----------------------------------------
 src/json.hpp.re2c | 227 +++++----------------------------------------
 2 files changed, 47 insertions(+), 411 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index a07f10eb..c50212c1 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -834,6 +834,7 @@ struct DecimalSeparator : std::numpunct<char>
     }
 };
 
+}
 
 // taken from ranges-v3
 // TODO add doc
@@ -2908,151 +2909,6 @@ class basic_json
     /// @}
 
   private:
-    //////////////////
-    // value access //
-    //////////////////
-
-    template<class T, typename std::enable_if<
-                 std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
-                 std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0>
-    T get_impl(T*) const
-    {
-        if (is_object())
-        {
-            return T(m_value.object->begin(), m_value.object->end());
-        }
-        else
-        {
-
-        JSON_THROW(std::domain_error("type must be object, but is " + type_name()));
-    }
-
-    /// get an object (explicit)
-    object_t get_impl(object_t* /*unused*/) const
-    {
-        if (is_object())
-        {
-            return *(m_value.object);
-        }
-
-        JSON_THROW(std::domain_error("type must be object, but is " + type_name()));
-    }
-
-    /// get an array (explicit)
-    template <
-        class T,
-        typename std::enable_if <
-            std::is_convertible<basic_json_t, typename T::value_type>::value and
-            not std::is_same<basic_json_t,
-                             typename T::value_type>::value and
-            not std::is_arithmetic<T>::value and
-            not std::is_convertible<std::string, T>::value and
-            not detail::has_mapped_type<T>::value,
-            int >::type = 0 >
-    T get_impl(T*) const
-    {
-        if (is_array())
-        {
-            T to_vector;
-            std::transform(m_value.array->begin(), m_value.array->end(),
-                           std::inserter(to_vector, to_vector.end()), [](basic_json i)
-            {
-                return i.get<typename T::value_type>();
-            });
-            return to_vector;
-        }
-
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
-    }
-
-    /// get an array (explicit)
-    template<class T, typename std::enable_if<
-                 std::is_convertible<basic_json_t, T>::value and
-                 not std::is_same<basic_json_t, T>::value, int>::type = 0>
-    std::vector<T> get_impl(std::vector<T>* /*unused*/) const
-    {
-        if (is_array())
-        {
-            std::vector<T> to_vector;
-            to_vector.reserve(m_value.array->size());
-            std::transform(m_value.array->begin(), m_value.array->end(),
-                           std::inserter(to_vector, to_vector.end()), [](basic_json i)
-            {
-                return i.get<T>();
-            });
-            return to_vector;
-        }
-
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
-    }
-
-    /// get an array (explicit)
-    template<class T, typename std::enable_if<
-                 std::is_same<basic_json, typename T::value_type>::value and
-                 not detail::has_mapped_type<T>::value, int>::type = 0>
-    T get_impl(T* /*unused*/) const
-    {
-        if (is_array())
-        {
-            return T(m_value.array->begin(), m_value.array->end());
-        }
-
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
-    }
-
-    /// get an array (explicit)
-    array_t get_impl(array_t* /*unused*/) const
-    {
-        if (is_array())
-        {
-            return *(m_value.array);
-        }
-
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
-    }
-
-    /// get a string (explicit)
-    template<typename T, typename std::enable_if<
-                 std::is_convertible<string_t, T>::value, int>::type = 0>
-    T get_impl(T* /*unused*/) const
-    {
-        if (is_string())
-        {
-            return *m_value.string;
-        }
-
-        JSON_THROW(std::domain_error("type must be string, but is " + type_name()));
-    }
-
-    /// get a number (explicit)
-    template<typename T, typename std::enable_if<
-                 std::is_arithmetic<T>::value, int>::type = 0>
-    T get_impl(T* /*unused*/) const
-    {
-        switch (m_type)
-        {
-            case value_t::number_integer:
-            {
-                return static_cast<T>(m_value.number_integer);
-            }
-
-            case value_t::number_unsigned:
-            {
-                return static_cast<T>(m_value.number_unsigned);
-            }
-
-            case value_t::number_float:
-            {
-                return static_cast<T>(m_value.number_float);
-            }
-
-            default:
-            {
-                JSON_THROW(std::domain_error("type must be number, but is " + type_name()));
-            }
-        }
-    }
-
     /// get a boolean (explicit)
     boolean_t get_impl(boolean_t* /*unused*/) const
     {
@@ -3180,54 +3036,6 @@ class basic_json
     }
 
   public:
-
-    /// @name value access
-    /// Direct access to the stored value of a JSON value.
-    /// @{
-
-    /*!
-    @brief get a value (explicit)
-
-    Explicit type conversion between the JSON value and a compatible value.
-
-    @tparam ValueType non-pointer type compatible to the JSON value, for
-    instance `int` for JSON integer numbers, `bool` for JSON booleans, or
-    `std::vector` types for JSON arrays
-
-    @return copy of the JSON value, converted to type @a ValueType
-
-    @throw std::domain_error in case passed type @a ValueType is incompatible
-    to JSON; example: `"type must be object, but is null"`
-
-    @complexity Linear in the size of the JSON value.
-
-    @liveexample{The example below shows several conversions from JSON values
-    to other types. There a few things to note: (1) Floating-point numbers can
-    be converted to integers\, (2) A JSON array can be converted to a standard
-    `std::vector<short>`\, (3) A JSON object can be converted to C++
-    associative containers such as `std::unordered_map<std::string\,
-    json>`.,get__ValueType_const}
-
-    @internal
-    The idea of using a casted null pointer to choose the correct
-    implementation is from <http://stackoverflow.com/a/8315197/266378>.
-    @endinternal
-
-    @sa @ref operator ValueType() const for implicit conversion
-    @sa @ref get() for pointer-member access
-
-    @since version 1.0.0
-    */
-    template <typename ValueType,
-              enable_if_t<not std::is_pointer<ValueType>::value and
-                              detail::is_compatible_basic_json_type<
-                                  uncvref_t<ValueType>, basic_json_t>::value,
-                          int> = 0>
-    auto get() const
-        -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) {
-      return get_impl(static_cast<ValueType *>(nullptr));
-    }
-
     // if T is basic_json, simply returns *this
     template <typename T,
               enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
@@ -3236,16 +3044,22 @@ class basic_json
       return *this;
     }
 
+    // This overload is chosen when:
+    // - T is not basic_json_t
+    // - JSONSerializer<T>::from_json(basic_json const&, T&) exists
+    // - and JSONSerializer<T>::from_json(basic_json const&) does not exist
+    //
+    // the latter is preferred if both are present (since it does not require a default construction of T)
     template <
         typename T,
-        enable_if_t<detail::conjunction<
-                        detail::negation<detail::is_compatible_basic_json_type<
-                            uncvref_t<T>, basic_json_t>>,
+        enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
                         detail::has_from_json<JSONSerializer, basic_json_t,
-                                              uncvref_t<T>>>::value and
-                        not std::is_same<basic_json_t, uncvref_t<T>>::value,
+                                              uncvref_t<T>>::value and
+                        not detail::has_non_default_from_json<
+                            JSONSerializer, basic_json_t, uncvref_t<T>>::value,
                     int> = 0>
-    // do we really want the uncvref ? if a user call get<int &>, shouldn't we static assert ?
+    // do we really want the uncvref ? if a user call get<int &>, shouldn't we
+    // static assert ?
     auto get() const -> uncvref_t<T>
     {
       using type = uncvref_t<T>;
@@ -3258,19 +3072,22 @@ class basic_json
       return ret;
     }
 
-    // This overload is chosen for non-default constructible user-defined-types
+    // This overload is chosen when:
+    // - T is not basic_json_t
+    // - and JSONSerializer<T>::from_json(basic_json const&) does not exist
+    // TODO add constexpr, noexcept(...)
     template <
         typename T,
-        enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
-                                            uncvref_t<T>, basic_json_t>>,
-                                        detail::has_non_default_from_json<JSONSerializer, basic_json_t,
-                                                uncvref_t<T>>>::value,
-                                                short> = 0 >
-                    T get() const
+        enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
+                        detail::has_non_default_from_json<
+                            JSONSerializer, basic_json_t, uncvref_t<T>>::value,
+                    int> = 0>
+    uncvref_t<T> get() const
     {
-        return JSONSerializer<T>::from_json(*this);
+      return JSONSerializer<T>::from_json(*this);
     }
 
+    // TODO what to do with those...
     /*!
     @brief get a pointer value (explicit)
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 32a6282e..f83ca76b 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -2909,148 +2909,6 @@ class basic_json
     /// @}
 
   private:
-    //////////////////
-    // value access //
-    //////////////////
-
-    template<class T, typename std::enable_if<
-                 std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
-                 std::is_convertible<basic_json_t, typename T::mapped_type>::value, int>::type = 0>
-    T get_impl(T* /*unused*/) const
-    {
-        if (is_object())
-        {
-            return T(m_value.object->begin(), m_value.object->end());
-        }
-
-        JSON_THROW(std::domain_error("type must be object, but is " + type_name()));
-    }
-
-    /// get an object (explicit)
-    object_t get_impl(object_t* /*unused*/) const
-    {
-        if (is_object())
-        {
-            return *(m_value.object);
-        }
-
-        JSON_THROW(std::domain_error("type must be object, but is " + type_name()));
-    }
-
-    /// get an array (explicit)
-    template <
-        class T,
-        typename std::enable_if <
-            std::is_convertible<basic_json_t, typename T::value_type>::value and
-            not std::is_same<basic_json_t,
-                             typename T::value_type>::value and
-            not std::is_arithmetic<T>::value and
-            not std::is_convertible<std::string, T>::value and
-            not detail::has_mapped_type<T>::value,
-            int >::type = 0 >
-    {
-        if (is_array())
-        {
-            T to_vector;
-            std::transform(m_value.array->begin(), m_value.array->end(),
-                           std::inserter(to_vector, to_vector.end()), [](basic_json i)
-            {
-                return i.get<typename T::value_type>();
-            });
-            return to_vector;
-        }
-
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
-    }
-
-    /// get an array (explicit)
-    template<class T, typename std::enable_if<
-                 std::is_convertible<basic_json_t, T>::value and
-                 not std::is_same<basic_json_t, T>::value, int>::type = 0>
-    std::vector<T> get_impl(std::vector<T>* /*unused*/) const
-    {
-        if (is_array())
-        {
-            std::vector<T> to_vector;
-            to_vector.reserve(m_value.array->size());
-            std::transform(m_value.array->begin(), m_value.array->end(),
-                           std::inserter(to_vector, to_vector.end()), [](basic_json i)
-            {
-                return i.get<T>();
-            });
-            return to_vector;
-        }
-
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
-    }
-
-    /// get an array (explicit)
-    template<class T, typename std::enable_if<
-                 std::is_same<basic_json, typename T::value_type>::value and
-                 not detail::has_mapped_type<T>::value, int>::type = 0>
-    T get_impl(T* /*unused*/) const
-    {
-        if (is_array())
-        {
-            return T(m_value.array->begin(), m_value.array->end());
-        }
-
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
-    }
-
-    /// get an array (explicit)
-    array_t get_impl(array_t* /*unused*/) const
-    {
-        if (is_array())
-        {
-            return *(m_value.array);
-        }
-
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name()));
-    }
-
-    /// get a string (explicit)
-    template<typename T, typename std::enable_if<
-                 std::is_convertible<string_t, T>::value, int>::type = 0>
-    T get_impl(T* /*unused*/) const
-    {
-        if (is_string())
-        {
-            return *m_value.string;
-        }
-
-        JSON_THROW(std::domain_error("type must be string, but is " + type_name()));
-    }
-
-    /// get a number (explicit)
-    template<typename T, typename std::enable_if<
-                 std::is_arithmetic<T>::value, int>::type = 0>
-    T get_impl(T* /*unused*/) const
-    {
-        switch (m_type)
-        {
-            case value_t::number_integer:
-            {
-                return static_cast<T>(m_value.number_integer);
-            }
-
-            case value_t::number_unsigned:
-            {
-                return static_cast<T>(m_value.number_unsigned);
-            }
-
-            case value_t::number_float:
-            {
-                return static_cast<T>(m_value.number_float);
-            }
-
-            default:
-            {
-                JSON_THROW(std::domain_error("type must be number, but is " + type_name()));
-            }
-        }
-    }
-
     /// get a boolean (explicit)
     boolean_t get_impl(boolean_t* /*unused*/) const
     {
@@ -3178,54 +3036,6 @@ class basic_json
     }
 
   public:
-
-    /// @name value access
-    /// Direct access to the stored value of a JSON value.
-    /// @{
-
-    /*!
-    @brief get a value (explicit)
-
-    Explicit type conversion between the JSON value and a compatible value.
-
-    @tparam ValueType non-pointer type compatible to the JSON value, for
-    instance `int` for JSON integer numbers, `bool` for JSON booleans, or
-    `std::vector` types for JSON arrays
-
-    @return copy of the JSON value, converted to type @a ValueType
-
-    @throw std::domain_error in case passed type @a ValueType is incompatible
-    to JSON; example: `"type must be object, but is null"`
-
-    @complexity Linear in the size of the JSON value.
-
-    @liveexample{The example below shows several conversions from JSON values
-    to other types. There a few things to note: (1) Floating-point numbers can
-    be converted to integers\, (2) A JSON array can be converted to a standard
-    `std::vector<short>`\, (3) A JSON object can be converted to C++
-    associative containers such as `std::unordered_map<std::string\,
-    json>`.,get__ValueType_const}
-
-    @internal
-    The idea of using a casted null pointer to choose the correct
-    implementation is from <http://stackoverflow.com/a/8315197/266378>.
-    @endinternal
-
-    @sa @ref operator ValueType() const for implicit conversion
-    @sa @ref get() for pointer-member access
-
-    @since version 1.0.0
-    */
-    template <typename ValueType,
-              enable_if_t<not std::is_pointer<ValueType>::value and
-                              detail::is_compatible_basic_json_type<
-                                  uncvref_t<ValueType>, basic_json_t>::value,
-                          int> = 0>
-    auto get() const
-        -> decltype(this->get_impl(static_cast<ValueType *>(nullptr))) {
-      return get_impl(static_cast<ValueType *>(nullptr));
-    }
-
     // if T is basic_json, simply returns *this
     template <typename T,
               enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
@@ -3234,16 +3044,22 @@ class basic_json
       return *this;
     }
 
+    // This overload is chosen when:
+    // - T is not basic_json_t
+    // - JSONSerializer<T>::from_json(basic_json const&, T&) exists
+    // - and JSONSerializer<T>::from_json(basic_json const&) does not exist
+    //
+    // the latter is preferred if both are present (since it does not require a default construction of T)
     template <
         typename T,
-        enable_if_t<detail::conjunction<
-                        detail::negation<detail::is_compatible_basic_json_type<
-                            uncvref_t<T>, basic_json_t>>,
+        enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
                         detail::has_from_json<JSONSerializer, basic_json_t,
-                                              uncvref_t<T>>>::value and
-                        not std::is_same<basic_json_t, uncvref_t<T>>::value,
+                                              uncvref_t<T>>::value and
+                        not detail::has_non_default_from_json<
+                            JSONSerializer, basic_json_t, uncvref_t<T>>::value,
                     int> = 0>
-    // do we really want the uncvref ? if a user call get<int &>, shouldn't we static assert ?
+    // do we really want the uncvref ? if a user call get<int &>, shouldn't we
+    // static assert ?
     auto get() const -> uncvref_t<T>
     {
       using type = uncvref_t<T>;
@@ -3256,19 +3072,22 @@ class basic_json
       return ret;
     }
 
-    // This overload is chosen for non-default constructible user-defined-types
+    // This overload is chosen when:
+    // - T is not basic_json_t
+    // - and JSONSerializer<T>::from_json(basic_json const&) does not exist
+    // TODO add constexpr, noexcept(...)
     template <
         typename T,
-        enable_if_t<detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
-                                            uncvref_t<T>, basic_json_t>>,
-                                        detail::has_non_default_from_json<JSONSerializer, basic_json_t,
-                                                uncvref_t<T>>>::value,
-                                                short> = 0 >
-                    T get() const
+        enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
+                        detail::has_non_default_from_json<
+                            JSONSerializer, basic_json_t, uncvref_t<T>>::value,
+                    int> = 0>
+    uncvref_t<T> get() const
     {
-        return JSONSerializer<T>::from_json(*this);
+      return JSONSerializer<T>::from_json(*this);
     }
 
+    // TODO what to do with those...
     /*!
     @brief get a pointer value (explicit)
 

From 317883b21b086213a2f53727aca55d8c5a9b4d38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 17:30:01 +0100
Subject: [PATCH 086/174] cleanup, details in body

removes:
- is_basic_json_compatible_type traits
- a useless operator=
- void_t
- disjunction

changes:
- is_compatible_object_type's first argument is BasicJson
---
 src/json.hpp      | 56 ++++++++++-------------------------------------
 src/json.hpp.re2c | 56 ++++++++++-------------------------------------
 2 files changed, 22 insertions(+), 90 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index c50212c1..721a6c48 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -326,15 +326,7 @@ struct external_constructor<value_t::object>
   }
 };
 
-// very useful construct against boilerplate (more boilerplate needed than in
-// C++17: http://en.cppreference.com/w/cpp/types/void_t)
-template <typename...> struct make_void
-{
-    using type = void;
-};
-template <typename... Ts> using void_t = typename make_void<Ts...>::type;
-
-// Implementation of 3 C++17 constructs: conjunction, disjunction, negation.
+// Implementation of 2 C++17 constructs: conjunction, negation.
 // This is needed to avoid evaluating all the traits in a condition
 //
 // For example: not std::is_same<void, T>::value and has_value_type<T>::value
@@ -352,11 +344,6 @@ struct conjunction<B1, Bn...>
 : conditional_t<bool(B1::value), conjunction<Bn...>, B1> {};
 
 template <class B> struct negation : std::integral_constant < bool, !B::value > {};
-template <class...> struct disjunction : std::false_type {};
-template <class B1> struct disjunction<B1> : B1 {};
-template <class B1, class... Bn>
-struct disjunction<B1, Bn...>
-: conditional_t<bool(B1::value), B1, disjunction<Bn...>> {};
 
 /*!
 @brief Helper to determine whether there's a key_type for T.
@@ -399,16 +386,16 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
         typename CompatibleObjectType::mapped_type>::value;
 };
 
-template<class RealType, class CompatibleObjectType>
+template<class BasicJson, class CompatibleObjectType>
 struct is_compatible_object_type
 {
     // As noted ahead, we need to stop evaluating traits if
     // `CompatibleObjectType = void`, hence the conjunction
-    static auto constexpr value = is_compatible_object_type_impl <
-                                  conjunction<negation<std::is_same<void, CompatibleObjectType>>,
-                                  has_mapped_type<CompatibleObjectType>,
-                                  has_key_type<CompatibleObjectType>>::value,
-                                  RealType, CompatibleObjectType >::value;
+    static auto constexpr value = is_compatible_object_type_impl<
+        conjunction<negation<std::is_same<void, CompatibleObjectType>>,
+                    has_mapped_type<CompatibleObjectType>,
+                    has_key_type<CompatibleObjectType>>::value,
+        typename BasicJson::object_t, CompatibleObjectType>::value;
 };
 
 template <bool B, class BasicJson, class CompatibleArrayType>
@@ -439,7 +426,7 @@ struct is_compatible_array_type
     // `is_compatible_object_type`, but we need the conjunction here as well
     static auto constexpr value = is_compatible_array_type_impl<
         conjunction<negation<is_compatible_object_type<
-                        typename BasicJson::object_t, CompatibleArrayType>>,
+                        BasicJson, CompatibleArrayType>>,
                     negation<std::is_constructible<typename BasicJson::string_t,
                                                    CompatibleArrayType>>,
                     has_value_type<CompatibleArrayType>,
@@ -482,12 +469,6 @@ struct is_compatible_float_type
         std::is_floating_point<CompatibleFloat>::value;
 };
 
-template <typename T, typename BasicJson>
-struct is_compatible_basic_json_type
-{
-  static auto constexpr value = false;
-};
-
 template <typename T, typename BasicJson, typename PrimitiveIterator>
 struct is_basic_json_nested_class
 {
@@ -639,7 +620,7 @@ void to_json(Json &j, CompatibleArrayType const &arr)
 
 template <
     typename Json, typename CompatibleObjectType,
-    enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value,
+    enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
                 int> = 0>
 void to_json(Json &j, CompatibleObjectType const &arr)
 {
@@ -745,7 +726,7 @@ void from_json(Json const &j, CompatibleArrayType &arr)
 
 template <
     typename Json, typename CompatibleObjectType,
-    enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value,
+    enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
                 int> = 0>
 void from_json(Json const &j, CompatibleObjectType &obj)
 {
@@ -1863,7 +1844,6 @@ class basic_json
     // constructor chosen when:
     // - JSONSerializer::to_json exists for type T
     // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
-    // is_compatible_basic_json_type == not is_user_defined_type
     template <
         typename T,
         enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
@@ -1871,10 +1851,8 @@ class basic_json
                     not std::is_same<uncvref_t<T>, basic_json_t>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
-                    detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
-                                            uncvref_t<T>, basic_json_t>>,
                                         detail::has_to_json<JSONSerializer, basic_json,
-                                                uncvref_t<T>>>::value,
+                                                uncvref_t<T>>::value,
                                                 int> = 0 >
                     basic_json(T && val)
     {
@@ -2428,18 +2406,6 @@ class basic_json
         return *this;
     }
 
-    // this overload is needed, since constructor for udt is explicit
-    template <typename T, enable_if_t<not detail::is_compatible_basic_json_type<
-                                          uncvref_t<T>, basic_json_t>::value and
-                                      detail::has_to_json<JSONSerializer, basic_json_t, uncvref_t<T>>::value>>
-    reference& operator=(T&& val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and
-                                           std::is_nothrow_move_assignable<uncvref_t<T>>::value)
-    {
-        static_assert(sizeof(T) == 0 , "");
-        // I'm not sure this a is good practice...
-        return *this = basic_json_t{std::forward<T>(val)};
-    }
-
     /*!
     @brief destructor
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index f83ca76b..cc89accf 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -326,15 +326,7 @@ struct external_constructor<value_t::object>
   }
 };
 
-// very useful construct against boilerplate (more boilerplate needed than in
-// C++17: http://en.cppreference.com/w/cpp/types/void_t)
-template <typename...> struct make_void
-{
-    using type = void;
-};
-template <typename... Ts> using void_t = typename make_void<Ts...>::type;
-
-// Implementation of 3 C++17 constructs: conjunction, disjunction, negation.
+// Implementation of 2 C++17 constructs: conjunction, negation.
 // This is needed to avoid evaluating all the traits in a condition
 //
 // For example: not std::is_same<void, T>::value and has_value_type<T>::value
@@ -352,11 +344,6 @@ struct conjunction<B1, Bn...>
 : conditional_t<bool(B1::value), conjunction<Bn...>, B1> {};
 
 template <class B> struct negation : std::integral_constant < bool, !B::value > {};
-template <class...> struct disjunction : std::false_type {};
-template <class B1> struct disjunction<B1> : B1 {};
-template <class B1, class... Bn>
-struct disjunction<B1, Bn...>
-: conditional_t<bool(B1::value), B1, disjunction<Bn...>> {};
 
 /*!
 @brief Helper to determine whether there's a key_type for T.
@@ -399,16 +386,16 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
         typename CompatibleObjectType::mapped_type>::value;
 };
 
-template<class RealType, class CompatibleObjectType>
+template<class BasicJson, class CompatibleObjectType>
 struct is_compatible_object_type
 {
     // As noted ahead, we need to stop evaluating traits if
     // `CompatibleObjectType = void`, hence the conjunction
-    static auto constexpr value = is_compatible_object_type_impl <
-                                  conjunction<negation<std::is_same<void, CompatibleObjectType>>,
-                                  has_mapped_type<CompatibleObjectType>,
-                                  has_key_type<CompatibleObjectType>>::value,
-                                  RealType, CompatibleObjectType >::value;
+    static auto constexpr value = is_compatible_object_type_impl<
+        conjunction<negation<std::is_same<void, CompatibleObjectType>>,
+                    has_mapped_type<CompatibleObjectType>,
+                    has_key_type<CompatibleObjectType>>::value,
+        typename BasicJson::object_t, CompatibleObjectType>::value;
 };
 
 template <bool B, class BasicJson, class CompatibleArrayType>
@@ -439,7 +426,7 @@ struct is_compatible_array_type
     // `is_compatible_object_type`, but we need the conjunction here as well
     static auto constexpr value = is_compatible_array_type_impl<
         conjunction<negation<is_compatible_object_type<
-                        typename BasicJson::object_t, CompatibleArrayType>>,
+                        BasicJson, CompatibleArrayType>>,
                     negation<std::is_constructible<typename BasicJson::string_t,
                                                    CompatibleArrayType>>,
                     has_value_type<CompatibleArrayType>,
@@ -482,12 +469,6 @@ struct is_compatible_float_type
         std::is_floating_point<CompatibleFloat>::value;
 };
 
-template <typename T, typename BasicJson>
-struct is_compatible_basic_json_type
-{
-  static auto constexpr value = false;
-};
-
 template <typename T, typename BasicJson, typename PrimitiveIterator>
 struct is_basic_json_nested_class
 {
@@ -639,7 +620,7 @@ void to_json(Json &j, CompatibleArrayType const &arr)
 
 template <
     typename Json, typename CompatibleObjectType,
-    enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value,
+    enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
                 int> = 0>
 void to_json(Json &j, CompatibleObjectType const &arr)
 {
@@ -745,7 +726,7 @@ void from_json(Json const &j, CompatibleArrayType &arr)
 
 template <
     typename Json, typename CompatibleObjectType,
-    enable_if_t<is_compatible_object_type<typename Json::object_t, CompatibleObjectType>::value,
+    enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
                 int> = 0>
 void from_json(Json const &j, CompatibleObjectType &obj)
 {
@@ -1863,7 +1844,6 @@ class basic_json
     // constructor chosen when:
     // - JSONSerializer::to_json exists for type T
     // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
-    // is_compatible_basic_json_type == not is_user_defined_type
     template <
         typename T,
         enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
@@ -1871,10 +1851,8 @@ class basic_json
                     not std::is_same<uncvref_t<T>, basic_json_t>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
                     not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
-                    detail::conjunction<detail::negation<detail::is_compatible_basic_json_type<
-                                            uncvref_t<T>, basic_json_t>>,
                                         detail::has_to_json<JSONSerializer, basic_json,
-                                                uncvref_t<T>>>::value,
+                                                uncvref_t<T>>::value,
                                                 int> = 0 >
                     basic_json(T && val)
     {
@@ -2428,18 +2406,6 @@ class basic_json
         return *this;
     }
 
-    // this overload is needed, since constructor for udt is explicit
-    template <typename T, enable_if_t<not detail::is_compatible_basic_json_type<
-                                          uncvref_t<T>, basic_json_t>::value and
-                                      detail::has_to_json<JSONSerializer, basic_json_t, uncvref_t<T>>::value>>
-    reference& operator=(T&& val) noexcept(std::is_nothrow_constructible<basic_json_t, uncvref_t<T>>::value and
-                                           std::is_nothrow_move_assignable<uncvref_t<T>>::value)
-    {
-        static_assert(sizeof(T) == 0 , "");
-        // I'm not sure this a is good practice...
-        return *this = basic_json_t{std::forward<T>(val)};
-    }
-
     /*!
     @brief destructor
 

From be6b417c8765ee9587770d57fb6992ad5f4f2f09 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 18:17:33 +0100
Subject: [PATCH 087/174] tweak SFINAE checks for internal types (see commit
 body)

only check for public types (iterators, json_pointer)

for private ones (m_array.iterator, primitive_iterator) simply double
parentheses on relevant Catch checks
---
 src/json.hpp                           |  26 +++---
 src/json.hpp.re2c                      |  26 +++---
 test/src/unit-class_const_iterator.cpp | 124 ++++++++++++-------------
 test/src/unit-class_iterator.cpp       | 124 ++++++++++++-------------
 4 files changed, 146 insertions(+), 154 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 721a6c48..93e996f6 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -469,14 +469,13 @@ struct is_compatible_float_type
         std::is_floating_point<CompatibleFloat>::value;
 };
 
-template <typename T, typename BasicJson, typename PrimitiveIterator>
-struct is_basic_json_nested_class
+template <typename BasicJson, typename T>
+struct is_basic_json_nested_type
 {
     static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
                                   std::is_same<T, typename BasicJson::const_iterator>::value or
                                   std::is_same<T, typename BasicJson::reverse_iterator>::value or
                                   std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
-                                  std::is_same<T, PrimitiveIterator>::value or
                                   std::is_same<T, typename BasicJson::json_pointer>::value;
 };
 
@@ -1844,19 +1843,16 @@ class basic_json
     // constructor chosen when:
     // - JSONSerializer::to_json exists for type T
     // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
-    template <
-        typename T,
-        enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
-                    not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
-                    not std::is_same<uncvref_t<T>, basic_json_t>::value and
-                    not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
-                    not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
-                                        detail::has_to_json<JSONSerializer, basic_json,
-                                                uncvref_t<T>>::value,
-                                                int> = 0 >
-                    basic_json(T && val)
+    template <typename T, typename U = uncvref_t<T>,
+              enable_if_t<
+                  not std::is_base_of<std::istream, U>::value and
+                  not std::is_same<U, basic_json_t>::value and
+                  not detail::is_basic_json_nested_type<basic_json_t,U>::value and
+                      detail::has_to_json<JSONSerializer, basic_json, U>::value,
+                  int> = 0>
+    basic_json(T &&val)
     {
-        JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
+      JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
     }
 
     /*!
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index cc89accf..e6921132 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -469,14 +469,13 @@ struct is_compatible_float_type
         std::is_floating_point<CompatibleFloat>::value;
 };
 
-template <typename T, typename BasicJson, typename PrimitiveIterator>
-struct is_basic_json_nested_class
+template <typename BasicJson, typename T>
+struct is_basic_json_nested_type
 {
     static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
                                   std::is_same<T, typename BasicJson::const_iterator>::value or
                                   std::is_same<T, typename BasicJson::reverse_iterator>::value or
                                   std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
-                                  std::is_same<T, PrimitiveIterator>::value or
                                   std::is_same<T, typename BasicJson::json_pointer>::value;
 };
 
@@ -1844,19 +1843,16 @@ class basic_json
     // constructor chosen when:
     // - JSONSerializer::to_json exists for type T
     // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
-    template <
-        typename T,
-        enable_if_t<not std::is_base_of<std::istream, uncvref_t<T>>::value and
-                    not detail::is_basic_json_nested_class<uncvref_t<T>, basic_json_t, primitive_iterator_t>::value and
-                    not std::is_same<uncvref_t<T>, basic_json_t>::value and
-                    not std::is_same<uncvref_t<T>, typename basic_json_t::array_t::iterator>::value and
-                    not std::is_same<uncvref_t<T>, typename basic_json_t::object_t::iterator>::value and
-                                        detail::has_to_json<JSONSerializer, basic_json,
-                                                uncvref_t<T>>::value,
-                                                int> = 0 >
-                    basic_json(T && val)
+    template <typename T, typename U = uncvref_t<T>,
+              enable_if_t<
+                  not std::is_base_of<std::istream, U>::value and
+                  not std::is_same<U, basic_json_t>::value and
+                  not detail::is_basic_json_nested_type<basic_json_t,U>::value and
+                      detail::has_to_json<JSONSerializer, basic_json, U>::value,
+                  int> = 0>
+    basic_json(T &&val)
     {
-        JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
+      JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
     }
 
     /*!
diff --git a/test/src/unit-class_const_iterator.cpp b/test/src/unit-class_const_iterator.cpp
index a1f6b827..dba96e1f 100644
--- a/test/src/unit-class_const_iterator.cpp
+++ b/test/src/unit-class_const_iterator.cpp
@@ -91,7 +91,7 @@ TEST_CASE("const_iterator class")
                 json j(json::value_t::null);
                 json::const_iterator it(&j);
                 it.set_begin();
-                CHECK(it == j.cbegin());
+                CHECK((it == j.cbegin()));
             }
 
             SECTION("object")
@@ -99,7 +99,7 @@ TEST_CASE("const_iterator class")
                 json j(json::value_t::object);
                 json::const_iterator it(&j);
                 it.set_begin();
-                CHECK(it == j.cbegin());
+                CHECK((it == j.cbegin()));
             }
 
             SECTION("array")
@@ -107,7 +107,7 @@ TEST_CASE("const_iterator class")
                 json j(json::value_t::array);
                 json::const_iterator it(&j);
                 it.set_begin();
-                CHECK(it == j.cbegin());
+                CHECK((it == j.cbegin()));
             }
         }
 
@@ -118,7 +118,7 @@ TEST_CASE("const_iterator class")
                 json j(json::value_t::null);
                 json::const_iterator it(&j);
                 it.set_end();
-                CHECK(it == j.cend());
+                CHECK((it == j.cend()));
             }
 
             SECTION("object")
@@ -126,7 +126,7 @@ TEST_CASE("const_iterator class")
                 json j(json::value_t::object);
                 json::const_iterator it(&j);
                 it.set_end();
-                CHECK(it == j.cend());
+                CHECK((it == j.cend()));
             }
 
             SECTION("array")
@@ -134,7 +134,7 @@ TEST_CASE("const_iterator class")
                 json j(json::value_t::array);
                 json::const_iterator it(&j);
                 it.set_end();
-                CHECK(it == j.cend());
+                CHECK((it == j.cend()));
             }
         }
     }
@@ -220,7 +220,7 @@ TEST_CASE("const_iterator class")
             {
                 json j(json::value_t::null);
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 it++;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -229,9 +229,9 @@ TEST_CASE("const_iterator class")
             {
                 json j(17);
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.primitive_iterator.m_it == 0);
+                CHECK((it.m_it.primitive_iterator.m_it == 0));
                 it++;
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 it++;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -240,28 +240,28 @@ TEST_CASE("const_iterator class")
             {
                 json j({{"foo", "bar"}});
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin()));
                 it++;
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end()));
             }
 
             SECTION("array")
             {
                 json j({1, 2, 3, 4});
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin()));
                 it++;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it++;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it++;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it++;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end()));
             }
         }
 
@@ -271,7 +271,7 @@ TEST_CASE("const_iterator class")
             {
                 json j(json::value_t::null);
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 ++it;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -280,9 +280,9 @@ TEST_CASE("const_iterator class")
             {
                 json j(17);
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.primitive_iterator.m_it == 0);
+                CHECK((it.m_it.primitive_iterator.m_it == 0));
                 ++it;
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 ++it;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -291,28 +291,28 @@ TEST_CASE("const_iterator class")
             {
                 json j({{"foo", "bar"}});
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin()));
                 ++it;
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end()));
             }
 
             SECTION("array")
             {
                 json j({1, 2, 3, 4});
                 json::const_iterator it = j.cbegin();
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin()));
                 ++it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 ++it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 ++it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 ++it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end()));
             }
         }
 
@@ -322,16 +322,16 @@ TEST_CASE("const_iterator class")
             {
                 json j(json::value_t::null);
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 it--;
-                CHECK(it.m_it.primitive_iterator.m_it == 0);
+                CHECK((it.m_it.primitive_iterator.m_it == 0));
                 it--;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -340,28 +340,28 @@ TEST_CASE("const_iterator class")
             {
                 json j({{"foo", "bar"}});
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end()));
                 it--;
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin()));
             }
 
             SECTION("array")
             {
                 json j({1, 2, 3, 4});
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end()));
                 it--;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it--;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it--;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it--;
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
             }
         }
 
@@ -371,16 +371,16 @@ TEST_CASE("const_iterator class")
             {
                 json j(json::value_t::null);
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 --it;
-                CHECK(it.m_it.primitive_iterator.m_it == 0);
+                CHECK((it.m_it.primitive_iterator.m_it == 0));
                 --it;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -389,28 +389,28 @@ TEST_CASE("const_iterator class")
             {
                 json j({{"foo", "bar"}});
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end()));
                 --it;
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin()));
             }
 
             SECTION("array")
             {
                 json j({1, 2, 3, 4});
                 json::const_iterator it = j.cend();
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end()));
                 --it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 --it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 --it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 --it;
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
             }
         }
     }
diff --git a/test/src/unit-class_iterator.cpp b/test/src/unit-class_iterator.cpp
index 1e8a3cec..16833cd9 100644
--- a/test/src/unit-class_iterator.cpp
+++ b/test/src/unit-class_iterator.cpp
@@ -75,7 +75,7 @@ TEST_CASE("iterator class")
                 json j(json::value_t::null);
                 json::iterator it(&j);
                 it.set_begin();
-                CHECK(it == j.begin());
+                CHECK((it == j.begin()));
             }
 
             SECTION("object")
@@ -83,7 +83,7 @@ TEST_CASE("iterator class")
                 json j(json::value_t::object);
                 json::iterator it(&j);
                 it.set_begin();
-                CHECK(it == j.begin());
+                CHECK((it == j.begin()));
             }
 
             SECTION("array")
@@ -91,7 +91,7 @@ TEST_CASE("iterator class")
                 json j(json::value_t::array);
                 json::iterator it(&j);
                 it.set_begin();
-                CHECK(it == j.begin());
+                CHECK((it == j.begin()));
             }
         }
 
@@ -102,7 +102,7 @@ TEST_CASE("iterator class")
                 json j(json::value_t::null);
                 json::iterator it(&j);
                 it.set_end();
-                CHECK(it == j.end());
+                CHECK((it == j.end()));
             }
 
             SECTION("object")
@@ -110,7 +110,7 @@ TEST_CASE("iterator class")
                 json j(json::value_t::object);
                 json::iterator it(&j);
                 it.set_end();
-                CHECK(it == j.end());
+                CHECK((it == j.end()));
             }
 
             SECTION("array")
@@ -118,7 +118,7 @@ TEST_CASE("iterator class")
                 json j(json::value_t::array);
                 json::iterator it(&j);
                 it.set_end();
-                CHECK(it == j.end());
+                CHECK((it == j.end()));
             }
         }
     }
@@ -204,7 +204,7 @@ TEST_CASE("iterator class")
             {
                 json j(json::value_t::null);
                 json::iterator it = j.begin();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 it++;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -213,9 +213,9 @@ TEST_CASE("iterator class")
             {
                 json j(17);
                 json::iterator it = j.begin();
-                CHECK(it.m_it.primitive_iterator.m_it == 0);
+                CHECK((it.m_it.primitive_iterator.m_it == 0));
                 it++;
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 it++;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -224,28 +224,28 @@ TEST_CASE("iterator class")
             {
                 json j({{"foo", "bar"}});
                 json::iterator it = j.begin();
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin()));
                 it++;
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end()));
             }
 
             SECTION("array")
             {
                 json j({1, 2, 3, 4});
                 json::iterator it = j.begin();
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin()));
                 it++;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it++;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it++;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it++;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end()));
             }
         }
 
@@ -255,7 +255,7 @@ TEST_CASE("iterator class")
             {
                 json j(json::value_t::null);
                 json::iterator it = j.begin();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 ++it;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -264,9 +264,9 @@ TEST_CASE("iterator class")
             {
                 json j(17);
                 json::iterator it = j.begin();
-                CHECK(it.m_it.primitive_iterator.m_it == 0);
+                CHECK((it.m_it.primitive_iterator.m_it == 0));
                 ++it;
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 ++it;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -275,28 +275,28 @@ TEST_CASE("iterator class")
             {
                 json j({{"foo", "bar"}});
                 json::iterator it = j.begin();
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin()));
                 ++it;
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end()));
             }
 
             SECTION("array")
             {
                 json j({1, 2, 3, 4});
                 json::iterator it = j.begin();
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin()));
                 ++it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 ++it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 ++it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 ++it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end()));
             }
         }
 
@@ -306,16 +306,16 @@ TEST_CASE("iterator class")
             {
                 json j(json::value_t::null);
                 json::iterator it = j.end();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::iterator it = j.end();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 it--;
-                CHECK(it.m_it.primitive_iterator.m_it == 0);
+                CHECK((it.m_it.primitive_iterator.m_it == 0));
                 it--;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -324,28 +324,28 @@ TEST_CASE("iterator class")
             {
                 json j({{"foo", "bar"}});
                 json::iterator it = j.end();
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end()));
                 it--;
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin()));
             }
 
             SECTION("array")
             {
                 json j({1, 2, 3, 4});
                 json::iterator it = j.end();
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end()));
                 it--;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it--;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it--;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 it--;
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
             }
         }
 
@@ -355,16 +355,16 @@ TEST_CASE("iterator class")
             {
                 json j(json::value_t::null);
                 json::iterator it = j.end();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
             }
 
             SECTION("number")
             {
                 json j(17);
                 json::iterator it = j.end();
-                CHECK(it.m_it.primitive_iterator.m_it == 1);
+                CHECK((it.m_it.primitive_iterator.m_it == 1));
                 --it;
-                CHECK(it.m_it.primitive_iterator.m_it == 0);
+                CHECK((it.m_it.primitive_iterator.m_it == 0));
                 --it;
                 CHECK((it.m_it.primitive_iterator.m_it != 0 and it.m_it.primitive_iterator.m_it != 1));
             }
@@ -373,28 +373,28 @@ TEST_CASE("iterator class")
             {
                 json j({{"foo", "bar"}});
                 json::iterator it = j.end();
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->end()));
                 --it;
-                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                CHECK((it.m_it.object_iterator == it.m_object->m_value.object->begin()));
             }
 
             SECTION("array")
             {
                 json j({1, 2, 3, 4});
                 json::iterator it = j.end();
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->end()));
                 --it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 --it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 --it;
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
                 --it;
-                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
-                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                CHECK((it.m_it.array_iterator == it.m_object->m_value.array->begin()));
+                CHECK((it.m_it.array_iterator != it.m_object->m_value.array->end()));
             }
         }
     }

From b2543e06d8ea1121f1423c435d5e30c81cafe472 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 18:59:51 +0100
Subject: [PATCH 088/174] removed is_compatible_float_type trait

---
 src/json.hpp      | 17 +++--------------
 src/json.hpp.re2c | 17 +++--------------
 2 files changed, 6 insertions(+), 28 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 93e996f6..fd27d83f 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -461,14 +461,6 @@ struct is_compatible_integer_type
       RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
 
-template <typename RealFloat, typename CompatibleFloat>
-struct is_compatible_float_type
-{
-    static constexpr auto value =
-        std::is_constructible<RealFloat, CompatibleFloat>::value and
-        std::is_floating_point<CompatibleFloat>::value;
-};
-
 template <typename BasicJson, typename T>
 struct is_basic_json_nested_type
 {
@@ -568,12 +560,9 @@ void to_json(Json &j, const CompatibleString &s)
   external_constructor<value_t::string>::construct(j, s);
 }
 
-template <
-    typename Json, typename CompatibleNumberFloatType,
-    enable_if_t<is_compatible_float_type<typename Json::number_float_t,
-                                         CompatibleNumberFloatType>::value,
-                int> = 0>
-void to_json(Json &j, CompatibleNumberFloatType val) noexcept
+template <typename Json, typename FloatType,
+          enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
+void to_json(Json &j, FloatType val) noexcept
 {
   external_constructor<value_t::number_float>::construct(j, val);
 }
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index e6921132..702f3fd3 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -461,14 +461,6 @@ struct is_compatible_integer_type
       RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
 
-template <typename RealFloat, typename CompatibleFloat>
-struct is_compatible_float_type
-{
-    static constexpr auto value =
-        std::is_constructible<RealFloat, CompatibleFloat>::value and
-        std::is_floating_point<CompatibleFloat>::value;
-};
-
 template <typename BasicJson, typename T>
 struct is_basic_json_nested_type
 {
@@ -568,12 +560,9 @@ void to_json(Json &j, const CompatibleString &s)
   external_constructor<value_t::string>::construct(j, s);
 }
 
-template <
-    typename Json, typename CompatibleNumberFloatType,
-    enable_if_t<is_compatible_float_type<typename Json::number_float_t,
-                                         CompatibleNumberFloatType>::value,
-                int> = 0>
-void to_json(Json &j, CompatibleNumberFloatType val) noexcept
+template <typename Json, typename FloatType,
+          enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
+void to_json(Json &j, FloatType val) noexcept
 {
   external_constructor<value_t::number_float>::construct(j, val);
 }

From b4cea6825d477428acc0da7070a02c999ec872b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 19:06:00 +0100
Subject: [PATCH 089/174] remove is_compatible_array_type_impl trait

---
 src/json.hpp          | 59 ++++++++------------------
 src/json.hpp.re2c     | 59 ++++++++------------------
 src/json.hpp.re2c.rej | 98 +++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 132 insertions(+), 84 deletions(-)
 create mode 100644 src/json.hpp.re2c.rej

diff --git a/src/json.hpp b/src/json.hpp
index fd27d83f..4435102e 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -398,40 +398,30 @@ struct is_compatible_object_type
         typename BasicJson::object_t, CompatibleObjectType>::value;
 };
 
-template <bool B, class BasicJson, class CompatibleArrayType>
-struct is_compatible_array_type_impl : std::false_type {};
-
-template <class BasicJson, class CompatibleArrayType>
-struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
+template <typename BasicJson, typename T>
+struct is_basic_json_nested_type
 {
-    static constexpr auto value =
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::iterator>::value and
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::const_iterator>::value and
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::reverse_iterator>::value and
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::const_reverse_iterator>::value and
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::array_t::iterator>::value and
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::array_t::const_iterator>::value;
+    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
+                                  std::is_same<T, typename BasicJson::const_iterator>::value or
+                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
+                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
+                                  std::is_same<T, typename BasicJson::json_pointer>::value;
 };
 
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-    // the check for CompatibleArrayType = void is done in
-    // `is_compatible_object_type`, but we need the conjunction here as well
-    static auto constexpr value = is_compatible_array_type_impl<
-        conjunction<negation<is_compatible_object_type<
+  // TODO concept Container?
+  // this might not make VS happy
+    static auto constexpr value = 
+        conjunction<negation<std::is_same<void, CompatibleArrayType>>,
+                    negation<is_compatible_object_type<
                         BasicJson, CompatibleArrayType>>,
                     negation<std::is_constructible<typename BasicJson::string_t,
                                                    CompatibleArrayType>>,
+                    negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>,
                     has_value_type<CompatibleArrayType>,
-                    has_iterator<CompatibleArrayType>>::value,
-        BasicJson, CompatibleArrayType>::value;
+                    has_iterator<CompatibleArrayType>>::value;
 };
 
 template <bool, typename, typename>
@@ -461,16 +451,6 @@ struct is_compatible_integer_type
       RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
 
-template <typename BasicJson, typename T>
-struct is_basic_json_nested_type
-{
-    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
-                                  std::is_same<T, typename BasicJson::const_iterator>::value or
-                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
-                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
-                                  std::is_same<T, typename BasicJson::json_pointer>::value;
-};
-
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
 template <template <typename, typename> class JSONSerializer, typename Json, typename T>
 struct has_from_json
@@ -519,8 +499,6 @@ struct has_to_json
                                       detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
-template <typename Json, typename >
-
 // those declarations are needed to workaround a MSVC bug related to ADL
 // (taken from MSVC-Ranges implementation)
 void to_json();
@@ -737,12 +715,9 @@ template <
     typename Json, typename ArithmeticType,
     enable_if_t<
         std::is_arithmetic<ArithmeticType>::value and
-            not std::is_same<ArithmeticType,
-                             typename Json::number_unsigned_t>::value and
-            not std::is_same<ArithmeticType,
-                             typename Json::number_integer_t>::value and
-            not std::is_same<ArithmeticType,
-                             typename Json::number_float_t>::value and
+            not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and
+            not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and
+            not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
             not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
         int> = 0>
 void from_json(Json const &j, ArithmeticType &val)
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 702f3fd3..412a9b49 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -398,40 +398,30 @@ struct is_compatible_object_type
         typename BasicJson::object_t, CompatibleObjectType>::value;
 };
 
-template <bool B, class BasicJson, class CompatibleArrayType>
-struct is_compatible_array_type_impl : std::false_type {};
-
-template <class BasicJson, class CompatibleArrayType>
-struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
+template <typename BasicJson, typename T>
+struct is_basic_json_nested_type
 {
-    static constexpr auto value =
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::iterator>::value and
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::const_iterator>::value and
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::reverse_iterator>::value and
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::const_reverse_iterator>::value and
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::array_t::iterator>::value and
-        not std::is_same<CompatibleArrayType,
-        typename BasicJson::array_t::const_iterator>::value;
+    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
+                                  std::is_same<T, typename BasicJson::const_iterator>::value or
+                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
+                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
+                                  std::is_same<T, typename BasicJson::json_pointer>::value;
 };
 
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-    // the check for CompatibleArrayType = void is done in
-    // `is_compatible_object_type`, but we need the conjunction here as well
-    static auto constexpr value = is_compatible_array_type_impl<
-        conjunction<negation<is_compatible_object_type<
+  // TODO concept Container?
+  // this might not make VS happy
+    static auto constexpr value = 
+        conjunction<negation<std::is_same<void, CompatibleArrayType>>,
+                    negation<is_compatible_object_type<
                         BasicJson, CompatibleArrayType>>,
                     negation<std::is_constructible<typename BasicJson::string_t,
                                                    CompatibleArrayType>>,
+                    negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>,
                     has_value_type<CompatibleArrayType>,
-                    has_iterator<CompatibleArrayType>>::value,
-        BasicJson, CompatibleArrayType>::value;
+                    has_iterator<CompatibleArrayType>>::value;
 };
 
 template <bool, typename, typename>
@@ -461,16 +451,6 @@ struct is_compatible_integer_type
       RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
 
-template <typename BasicJson, typename T>
-struct is_basic_json_nested_type
-{
-    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
-                                  std::is_same<T, typename BasicJson::const_iterator>::value or
-                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
-                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
-                                  std::is_same<T, typename BasicJson::json_pointer>::value;
-};
-
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
 template <template <typename, typename> class JSONSerializer, typename Json, typename T>
 struct has_from_json
@@ -519,8 +499,6 @@ struct has_to_json
                                       detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
-template <typename Json, typename >
-
 // those declarations are needed to workaround a MSVC bug related to ADL
 // (taken from MSVC-Ranges implementation)
 void to_json();
@@ -737,12 +715,9 @@ template <
     typename Json, typename ArithmeticType,
     enable_if_t<
         std::is_arithmetic<ArithmeticType>::value and
-            not std::is_same<ArithmeticType,
-                             typename Json::number_unsigned_t>::value and
-            not std::is_same<ArithmeticType,
-                             typename Json::number_integer_t>::value and
-            not std::is_same<ArithmeticType,
-                             typename Json::number_float_t>::value and
+            not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and
+            not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and
+            not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
             not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
         int> = 0>
 void from_json(Json const &j, ArithmeticType &val)
diff --git a/src/json.hpp.re2c.rej b/src/json.hpp.re2c.rej
new file mode 100644
index 00000000..ab8fa89d
--- /dev/null
+++ b/src/json.hpp.re2c.rej
@@ -0,0 +1,98 @@
+diff a/src/json.hpp.re2c b/src/json.hpp.re2c	(rejected hunks)
+@@ -389,40 +389,30 @@ struct is_compatible_object_type
+         typename BasicJson::object_t, CompatibleObjectType>::value;
+ };
+ 
+-template <bool B, class BasicJson, class CompatibleArrayType>
+-struct is_compatible_array_type_impl : std::false_type {};
+-
+-template <class BasicJson, class CompatibleArrayType>
+-struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
++template <typename BasicJson, typename T>
++struct is_basic_json_nested_type
+ {
+-    static constexpr auto value =
+-        not std::is_same<CompatibleArrayType,
+-        typename BasicJson::iterator>::value and
+-        not std::is_same<CompatibleArrayType,
+-        typename BasicJson::const_iterator>::value and
+-        not std::is_same<CompatibleArrayType,
+-        typename BasicJson::reverse_iterator>::value and
+-        not std::is_same<CompatibleArrayType,
+-        typename BasicJson::const_reverse_iterator>::value and
+-        not std::is_same<CompatibleArrayType,
+-        typename BasicJson::array_t::iterator>::value and
+-        not std::is_same<CompatibleArrayType,
+-        typename BasicJson::array_t::const_iterator>::value;
++    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
++                                  std::is_same<T, typename BasicJson::const_iterator>::value or
++                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
++                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
++                                  std::is_same<T, typename BasicJson::json_pointer>::value;
+ };
+ 
+ template <class BasicJson, class CompatibleArrayType>
+ struct is_compatible_array_type
+ {
+-    // the check for CompatibleArrayType = void is done in
+-    // `is_compatible_object_type`, but we need the conjunction here as well
+-    static auto constexpr value = is_compatible_array_type_impl<
+-        conjunction<negation<is_compatible_object_type<
++  // TODO concept Container?
++  // this might not make VS happy
++    static auto constexpr value = 
++        conjunction<negation<std::is_same<void, CompatibleArrayType>>,
++                    negation<is_compatible_object_type<
+                         BasicJson, CompatibleArrayType>>,
+                     negation<std::is_constructible<typename BasicJson::string_t,
+                                                    CompatibleArrayType>>,
++                    negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>,
+                     has_value_type<CompatibleArrayType>,
+-                    has_iterator<CompatibleArrayType>>::value,
+-        BasicJson, CompatibleArrayType>::value;
++                    has_iterator<CompatibleArrayType>>::value;
+ };
+ 
+ template <bool, typename, typename>
+@@ -452,16 +442,6 @@ struct is_compatible_integer_type
+       RealIntegerType, CompatibleNumberIntegerType > ::value;
+ };
+ 
+-template <typename BasicJson, typename T>
+-struct is_basic_json_nested_type
+-{
+-    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
+-                                  std::is_same<T, typename BasicJson::const_iterator>::value or
+-                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
+-                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
+-                                  std::is_same<T, typename BasicJson::json_pointer>::value;
+-};
+-
+ // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
+ template <template <typename, typename> class JSONSerializer, typename Json, typename T>
+ struct has_from_json
+@@ -510,8 +490,6 @@ struct has_to_json
+                                       detect(std::declval<JSONSerializer<T, void>>()))>::value;
+ };
+ 
+-template <typename Json, typename >
+-
+ // those declarations are needed to workaround a MSVC bug related to ADL
+ // (taken from MSVC-Ranges implementation)
+ void to_json();
+@@ -728,12 +706,9 @@ template <
+     typename Json, typename ArithmeticType,
+     enable_if_t<
+         std::is_arithmetic<ArithmeticType>::value and
+-            not std::is_same<ArithmeticType,
+-                             typename Json::number_unsigned_t>::value and
+-            not std::is_same<ArithmeticType,
+-                             typename Json::number_integer_t>::value and
+-            not std::is_same<ArithmeticType,
+-                             typename Json::number_float_t>::value and
++            not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and
++            not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and
++            not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
+             not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
+         int> = 0>
+ void from_json(Json const &j, ArithmeticType &val)

From 5839795725ef0adb278bad0f2449ecb88d0381d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 22:49:02 +0100
Subject: [PATCH 090/174] remove useless helpers

---
 src/json.hpp      | 28 +++-------------------------
 src/json.hpp.re2c | 28 +++-------------------------
 2 files changed, 6 insertions(+), 50 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 4435102e..8b94a3f3 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -152,23 +152,9 @@ template <bool B, typename T = void>
 using enable_if_t = typename std::enable_if<B, T>::type;
 
 template <typename T>
-using remove_cv_t = typename std::remove_cv<T>::type;
-
-template <typename T>
-using remove_reference_t = typename std::remove_reference<T>::type;
-
-template <typename T>
-using uncvref_t = remove_cv_t<remove_reference_t<T>>;
-
-template <bool If, typename Then, typename Else>
-using conditional_t = typename std::conditional<If, Then, Else>::type;
+using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;
 
 // Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait
-template <typename T>
-using is_scoped_enum =
-    std::integral_constant<bool, not std::is_convertible<T, int>::value and
-    std::is_enum<T>::value>;
-
 template <typename T>
 using is_unscoped_enum =
     std::integral_constant<bool, std::is_convertible<T, int>::value and
@@ -341,7 +327,7 @@ template <class...> struct conjunction : std::true_type {};
 template <class B1> struct conjunction<B1> : B1 {};
 template <class B1, class... Bn>
 struct conjunction<B1, Bn...>
-: conditional_t<bool(B1::value), conjunction<Bn...>, B1> {};
+: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
 
 template <class B> struct negation : std::integral_constant < bool, !B::value > {};
 
@@ -389,8 +375,6 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 template<class BasicJson, class CompatibleObjectType>
 struct is_compatible_object_type
 {
-    // As noted ahead, we need to stop evaluating traits if
-    // `CompatibleObjectType = void`, hence the conjunction
     static auto constexpr value = is_compatible_object_type_impl<
         conjunction<negation<std::is_same<void, CompatibleObjectType>>,
                     has_mapped_type<CompatibleObjectType>,
@@ -499,11 +483,6 @@ struct has_to_json
                                       detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
-// those declarations are needed to workaround a MSVC bug related to ADL
-// (taken from MSVC-Ranges implementation)
-void to_json();
-void from_json();
-
 // overloads for basic_json template parameters
 
 template <typename Json, typename ArithmeticType,
@@ -568,7 +547,7 @@ void to_json(Json &j, CompatibleNumberIntegerType val) noexcept
 
 template <typename Json, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void to_json(Json &j, UnscopedEnumType e)
+void to_json(Json &j, UnscopedEnumType e) noexcept
 {
   external_constructor<value_t::number_integer>::construct(j, e);
 }
@@ -736,7 +715,6 @@ void from_json(Json const &j, ArithmeticType &val)
 
 struct to_json_fn
 {
-    // is it really useful to mark those as constexpr?
     template <typename Json, typename T>
     constexpr auto operator()(Json&& j, T&& val) const
     noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 412a9b49..79d30e9d 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -152,23 +152,9 @@ template <bool B, typename T = void>
 using enable_if_t = typename std::enable_if<B, T>::type;
 
 template <typename T>
-using remove_cv_t = typename std::remove_cv<T>::type;
-
-template <typename T>
-using remove_reference_t = typename std::remove_reference<T>::type;
-
-template <typename T>
-using uncvref_t = remove_cv_t<remove_reference_t<T>>;
-
-template <bool If, typename Then, typename Else>
-using conditional_t = typename std::conditional<If, Then, Else>::type;
+using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;
 
 // Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait
-template <typename T>
-using is_scoped_enum =
-    std::integral_constant<bool, not std::is_convertible<T, int>::value and
-    std::is_enum<T>::value>;
-
 template <typename T>
 using is_unscoped_enum =
     std::integral_constant<bool, std::is_convertible<T, int>::value and
@@ -341,7 +327,7 @@ template <class...> struct conjunction : std::true_type {};
 template <class B1> struct conjunction<B1> : B1 {};
 template <class B1, class... Bn>
 struct conjunction<B1, Bn...>
-: conditional_t<bool(B1::value), conjunction<Bn...>, B1> {};
+: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
 
 template <class B> struct negation : std::integral_constant < bool, !B::value > {};
 
@@ -389,8 +375,6 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 template<class BasicJson, class CompatibleObjectType>
 struct is_compatible_object_type
 {
-    // As noted ahead, we need to stop evaluating traits if
-    // `CompatibleObjectType = void`, hence the conjunction
     static auto constexpr value = is_compatible_object_type_impl<
         conjunction<negation<std::is_same<void, CompatibleObjectType>>,
                     has_mapped_type<CompatibleObjectType>,
@@ -499,11 +483,6 @@ struct has_to_json
                                       detect(std::declval<JSONSerializer<T, void>>()))>::value;
 };
 
-// those declarations are needed to workaround a MSVC bug related to ADL
-// (taken from MSVC-Ranges implementation)
-void to_json();
-void from_json();
-
 // overloads for basic_json template parameters
 
 template <typename Json, typename ArithmeticType,
@@ -568,7 +547,7 @@ void to_json(Json &j, CompatibleNumberIntegerType val) noexcept
 
 template <typename Json, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void to_json(Json &j, UnscopedEnumType e)
+void to_json(Json &j, UnscopedEnumType e) noexcept
 {
   external_constructor<value_t::number_integer>::construct(j, e);
 }
@@ -736,7 +715,6 @@ void from_json(Json const &j, ArithmeticType &val)
 
 struct to_json_fn
 {
-    // is it really useful to mark those as constexpr?
     template <typename Json, typename T>
     constexpr auto operator()(Json&& j, T&& val) const
     noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))

From 29f9fe6ae9e28197b6623bb06b70152945109684 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 8 Jan 2017 23:10:16 +0100
Subject: [PATCH 091/174] remove one has_to/from_json template parameter

---
 src/json.hpp      | 58 ++++++++++++++++++++++++-----------------------
 src/json.hpp.re2c | 58 ++++++++++++++++++++++++-----------------------
 2 files changed, 60 insertions(+), 56 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 8b94a3f3..c7ca74d7 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -436,7 +436,7 @@ struct is_compatible_integer_type
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
-template <template <typename, typename> class JSONSerializer, typename Json, typename T>
+template <typename Json, typename T>
 struct has_from_json
 {
   private:
@@ -448,39 +448,40 @@ struct has_from_json
 
   public:
     static constexpr bool value = std::is_integral<decltype(
-                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+                                      detect(std::declval<typename Json::template json_serializer<T, void>>()))>::value;
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&) exists
 // this overload is used for non-default-constructible user-defined-types
-template <template <typename, typename> class JSONSerializer, typename Json,
-          typename T>
+template <typename Json, typename T>
 struct has_non_default_from_json
 {
-  private:
-    template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
-    static int detect(U&&);
-    static void detect(...);
+private:
+  template <
+      typename U,
+      typename = enable_if_t<std::is_same<
+          T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
+  static int detect(U &&);
+  static void detect(...);
 
-  public:
-    static constexpr bool value = std::is_integral<decltype(
-                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+public:
+  static constexpr bool value = std::is_integral<decltype(detect(
+      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
 };
 
-// This trait checks if JSONSerializer<T>::to_json exists
-template <template <typename, typename> class JSONSerializer, typename Json,
-          typename T>
+// This trait checks if Json::json_serializer<T>::to_json exists
+template <typename Json, typename T>
 struct has_to_json
 {
-  private:
-    template <typename U, typename = decltype(uncvref_t<U>::to_json(
-                  std::declval<Json&>(), std::declval<T>()))>
-    static int detect(U&&);
-    static void detect(...);
+private:
+  template <typename U, typename = decltype(uncvref_t<U>::to_json(
+                            std::declval<Json &>(), std::declval<T>()))>
+  static int detect(U &&);
+  static void detect(...);
 
-  public:
-    static constexpr bool value = std::is_integral<decltype(
-                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+public:
+  static constexpr bool value = std::is_integral<decltype(detect(
+      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
 };
 
 // overloads for basic_json template parameters
@@ -900,6 +901,8 @@ class basic_json
     template<typename U> class iter_impl;
     template<typename Base> class json_reverse_iterator;
     class json_pointer;
+    template <typename T, typename SFINAE>
+    using json_serializer = JSONSerializer<T, SFINAE>;
 
     /////////////////////
     // container types //
@@ -1790,7 +1793,7 @@ class basic_json
                   not std::is_base_of<std::istream, U>::value and
                   not std::is_same<U, basic_json_t>::value and
                   not detail::is_basic_json_nested_type<basic_json_t,U>::value and
-                      detail::has_to_json<JSONSerializer, basic_json, U>::value,
+                      detail::has_to_json<basic_json, U>::value,
                   int> = 0>
     basic_json(T &&val)
     {
@@ -2957,10 +2960,9 @@ class basic_json
     template <
         typename T,
         enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                        detail::has_from_json<JSONSerializer, basic_json_t,
-                                              uncvref_t<T>>::value and
+                        detail::has_from_json<basic_json_t, uncvref_t<T>>::value and
                         not detail::has_non_default_from_json<
-                            JSONSerializer, basic_json_t, uncvref_t<T>>::value,
+                            basic_json_t, uncvref_t<T>>::value,
                     int> = 0>
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
     // static assert ?
@@ -2983,8 +2985,8 @@ class basic_json
     template <
         typename T,
         enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                        detail::has_non_default_from_json<
-                            JSONSerializer, basic_json_t, uncvref_t<T>>::value,
+                        detail::has_non_default_from_json<basic_json_t,
+                                                          uncvref_t<T>>::value,
                     int> = 0>
     uncvref_t<T> get() const
     {
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 79d30e9d..b3b512e5 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -436,7 +436,7 @@ struct is_compatible_integer_type
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
-template <template <typename, typename> class JSONSerializer, typename Json, typename T>
+template <typename Json, typename T>
 struct has_from_json
 {
   private:
@@ -448,39 +448,40 @@ struct has_from_json
 
   public:
     static constexpr bool value = std::is_integral<decltype(
-                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+                                      detect(std::declval<typename Json::template json_serializer<T, void>>()))>::value;
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&) exists
 // this overload is used for non-default-constructible user-defined-types
-template <template <typename, typename> class JSONSerializer, typename Json,
-          typename T>
+template <typename Json, typename T>
 struct has_non_default_from_json
 {
-  private:
-    template <typename U, typename = enable_if_t<std::is_same<T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
-    static int detect(U&&);
-    static void detect(...);
+private:
+  template <
+      typename U,
+      typename = enable_if_t<std::is_same<
+          T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
+  static int detect(U &&);
+  static void detect(...);
 
-  public:
-    static constexpr bool value = std::is_integral<decltype(
-                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+public:
+  static constexpr bool value = std::is_integral<decltype(detect(
+      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
 };
 
-// This trait checks if JSONSerializer<T>::to_json exists
-template <template <typename, typename> class JSONSerializer, typename Json,
-          typename T>
+// This trait checks if Json::json_serializer<T>::to_json exists
+template <typename Json, typename T>
 struct has_to_json
 {
-  private:
-    template <typename U, typename = decltype(uncvref_t<U>::to_json(
-                  std::declval<Json&>(), std::declval<T>()))>
-    static int detect(U&&);
-    static void detect(...);
+private:
+  template <typename U, typename = decltype(uncvref_t<U>::to_json(
+                            std::declval<Json &>(), std::declval<T>()))>
+  static int detect(U &&);
+  static void detect(...);
 
-  public:
-    static constexpr bool value = std::is_integral<decltype(
-                                      detect(std::declval<JSONSerializer<T, void>>()))>::value;
+public:
+  static constexpr bool value = std::is_integral<decltype(detect(
+      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
 };
 
 // overloads for basic_json template parameters
@@ -900,6 +901,8 @@ class basic_json
     template<typename U> class iter_impl;
     template<typename Base> class json_reverse_iterator;
     class json_pointer;
+    template <typename T, typename SFINAE>
+    using json_serializer = JSONSerializer<T, SFINAE>;
 
     /////////////////////
     // container types //
@@ -1790,7 +1793,7 @@ class basic_json
                   not std::is_base_of<std::istream, U>::value and
                   not std::is_same<U, basic_json_t>::value and
                   not detail::is_basic_json_nested_type<basic_json_t,U>::value and
-                      detail::has_to_json<JSONSerializer, basic_json, U>::value,
+                      detail::has_to_json<basic_json, U>::value,
                   int> = 0>
     basic_json(T &&val)
     {
@@ -2957,10 +2960,9 @@ class basic_json
     template <
         typename T,
         enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                        detail::has_from_json<JSONSerializer, basic_json_t,
-                                              uncvref_t<T>>::value and
+                        detail::has_from_json<basic_json_t, uncvref_t<T>>::value and
                         not detail::has_non_default_from_json<
-                            JSONSerializer, basic_json_t, uncvref_t<T>>::value,
+                            basic_json_t, uncvref_t<T>>::value,
                     int> = 0>
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
     // static assert ?
@@ -2983,8 +2985,8 @@ class basic_json
     template <
         typename T,
         enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                        detail::has_non_default_from_json<
-                            JSONSerializer, basic_json_t, uncvref_t<T>>::value,
+                        detail::has_non_default_from_json<basic_json_t,
+                                                          uncvref_t<T>>::value,
                     int> = 0>
     uncvref_t<T> get() const
     {

From 1f25ec5d360f9d7cd22a99b500d9039a77e82acc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Mon, 9 Jan 2017 00:06:25 +0100
Subject: [PATCH 092/174] add some constexpr + noexcept

---
 src/json.hpp      | 36 ++++++++++++++++++++----------------
 src/json.hpp.re2c | 36 ++++++++++++++++++++----------------
 2 files changed, 40 insertions(+), 32 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index c7ca74d7..177c1532 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -1789,15 +1789,16 @@ class basic_json
     // - JSONSerializer::to_json exists for type T
     // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
     template <typename T, typename U = uncvref_t<T>,
-              enable_if_t<
-                  not std::is_base_of<std::istream, U>::value and
-                  not std::is_same<U, basic_json_t>::value and
-                  not detail::is_basic_json_nested_type<basic_json_t,U>::value and
-                      detail::has_to_json<basic_json, U>::value,
-                  int> = 0>
-    basic_json(T &&val)
+              enable_if_t<not std::is_base_of<std::istream, U>::value and
+                              not std::is_same<U, basic_json_t>::value and
+                              not detail::is_basic_json_nested_type<
+                                  basic_json_t, U>::value and
+                              detail::has_to_json<basic_json, U>::value,
+                          int> = 0>
+    basic_json(T &&val) noexcept(noexcept(JSONSerializer<U>::to_json(
+        std::declval<basic_json_t &>(), std::forward<T>(val))))
     {
-      JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
+      JSONSerializer<U>::to_json(*this, std::forward<T>(val));
     }
 
     /*!
@@ -2959,14 +2960,18 @@ class basic_json
     // the latter is preferred if both are present (since it does not require a default construction of T)
     template <
         typename T,
-        enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                        detail::has_from_json<basic_json_t, uncvref_t<T>>::value and
-                        not detail::has_non_default_from_json<
-                            basic_json_t, uncvref_t<T>>::value,
-                    int> = 0>
+        enable_if_t<
+            not std::is_same<basic_json_t, uncvref_t<T>>::value and
+                detail::has_from_json<basic_json_t, uncvref_t<T>>::value and
+                not detail::has_non_default_from_json<basic_json_t,
+                                                      uncvref_t<T>>::value,
+            int> = 0>
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
+    // i know there is a special behaviour for boolean_t* and such
     // static assert ?
-    auto get() const -> uncvref_t<T>
+    auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json(
+        std::declval<basic_json_t const &>(), std::declval<uncvref_t<T> &>())))
+        -> uncvref_t<T>
     {
       using type = uncvref_t<T>;
       static_assert(std::is_default_constructible<type>::value &&
@@ -2981,14 +2986,13 @@ class basic_json
     // This overload is chosen when:
     // - T is not basic_json_t
     // - and JSONSerializer<T>::from_json(basic_json const&) does not exist
-    // TODO add constexpr, noexcept(...)
     template <
         typename T,
         enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
                         detail::has_non_default_from_json<basic_json_t,
                                                           uncvref_t<T>>::value,
                     int> = 0>
-    uncvref_t<T> get() const
+    constexpr uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>())))
     {
       return JSONSerializer<T>::from_json(*this);
     }
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index b3b512e5..5dc2e027 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -1789,15 +1789,16 @@ class basic_json
     // - JSONSerializer::to_json exists for type T
     // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
     template <typename T, typename U = uncvref_t<T>,
-              enable_if_t<
-                  not std::is_base_of<std::istream, U>::value and
-                  not std::is_same<U, basic_json_t>::value and
-                  not detail::is_basic_json_nested_type<basic_json_t,U>::value and
-                      detail::has_to_json<basic_json, U>::value,
-                  int> = 0>
-    basic_json(T &&val)
+              enable_if_t<not std::is_base_of<std::istream, U>::value and
+                              not std::is_same<U, basic_json_t>::value and
+                              not detail::is_basic_json_nested_type<
+                                  basic_json_t, U>::value and
+                              detail::has_to_json<basic_json, U>::value,
+                          int> = 0>
+    basic_json(T &&val) noexcept(noexcept(JSONSerializer<U>::to_json(
+        std::declval<basic_json_t &>(), std::forward<T>(val))))
     {
-      JSONSerializer<uncvref_t<T>>::to_json(*this, std::forward<T>(val));
+      JSONSerializer<U>::to_json(*this, std::forward<T>(val));
     }
 
     /*!
@@ -2959,14 +2960,18 @@ class basic_json
     // the latter is preferred if both are present (since it does not require a default construction of T)
     template <
         typename T,
-        enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                        detail::has_from_json<basic_json_t, uncvref_t<T>>::value and
-                        not detail::has_non_default_from_json<
-                            basic_json_t, uncvref_t<T>>::value,
-                    int> = 0>
+        enable_if_t<
+            not std::is_same<basic_json_t, uncvref_t<T>>::value and
+                detail::has_from_json<basic_json_t, uncvref_t<T>>::value and
+                not detail::has_non_default_from_json<basic_json_t,
+                                                      uncvref_t<T>>::value,
+            int> = 0>
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
+    // i know there is a special behaviour for boolean_t* and such
     // static assert ?
-    auto get() const -> uncvref_t<T>
+    auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json(
+        std::declval<basic_json_t const &>(), std::declval<uncvref_t<T> &>())))
+        -> uncvref_t<T>
     {
       using type = uncvref_t<T>;
       static_assert(std::is_default_constructible<type>::value &&
@@ -2981,14 +2986,13 @@ class basic_json
     // This overload is chosen when:
     // - T is not basic_json_t
     // - and JSONSerializer<T>::from_json(basic_json const&) does not exist
-    // TODO add constexpr, noexcept(...)
     template <
         typename T,
         enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
                         detail::has_non_default_from_json<basic_json_t,
                                                           uncvref_t<T>>::value,
                     int> = 0>
-    uncvref_t<T> get() const
+    constexpr uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>())))
     {
       return JSONSerializer<T>::from_json(*this);
     }

From 3494014ba0ab3ff402df17b40cc138334fd8a529 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Mon, 9 Jan 2017 00:29:00 +0100
Subject: [PATCH 093/174] new unit-udt.cpp tests

---
 test/src/unit-udt.cpp | 181 ++++++++++++++++++++++++++++--------------
 1 file changed, 123 insertions(+), 58 deletions(-)

diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index bb150e76..60b83957 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -391,27 +391,27 @@ TEST_CASE("adl_serializer specialization", "[udt]")
 
 namespace nlohmann
 {
-  // TODO provide a real example, since this works now :)
-// template <typename T>
-// struct adl_serializer<std::vector<T>>
-// {
-//     static void to_json(json& j, std::vector<T> const& opt)
-//     {
-//       
-//     }
-//
-//     static void from_json(json const& j, std::vector<T>& opt)
-//     {
-//     }
-// };
+template <>
+struct adl_serializer<std::vector<float>>
+{
+    static void to_json(json& j, std::vector<float> const&)
+    {
+      j = "hijacked!";
+    }
+
+    static void from_json(json const&, std::vector<float>& opt)
+    {
+      opt = {42.0, 42.0, 42.0};
+    }
+};
 }
 
-TEST_CASE("current supported types are preferred over specializations", "[udt]")
+TEST_CASE("even supported types can be specialized", "[udt]")
 {
-
-    json j = std::vector<int> {1, 2, 3};
-    auto f = j.get<std::vector<int>>();
-    CHECK((f == std::vector<int> {1, 2, 3}));
+    json j = std::vector<float> {1.0, 2.0, 3.0};
+    CHECK(j.dump() == R"("hijacked!")");
+    auto f = j.get<std::vector<float>>();
+    CHECK((f == std::vector<float>{42.0, 42.0, 42.0}));
 }
 
 namespace nlohmann
@@ -432,7 +432,6 @@ struct adl_serializer<std::unique_ptr<T>>
     }
 
     // this is the overload needed for non-copyable types,
-    // should we add a priority tag in the implementation to prefer this overload if it exists?
     static std::unique_ptr<T> from_json(json const& j)
     {
         if (j.is_null())
@@ -456,7 +455,7 @@ TEST_CASE("Non-copyable types", "[udt]")
         json j = optPerson;
         CHECK(j.is_null());
 
-        optPerson.reset(new udt::person{{42}, {"John Doe"}});
+        optPerson.reset(new udt::person{{42}, {"John Doe"}, udt::country::russia});
         j = optPerson;
         CHECK_FALSE(j.is_null());
 
@@ -465,7 +464,7 @@ TEST_CASE("Non-copyable types", "[udt]")
 
     SECTION("from_json")
     {
-        auto person = udt::person{{42}, {"John Doe"}};
+        auto person = udt::person{{42}, {"John Doe"}, udt::country::russia};
         json j = person;
 
         auto optPerson = j.get<std::unique_ptr<udt::person>>();
@@ -478,39 +477,70 @@ TEST_CASE("Non-copyable types", "[udt]")
     }
 }
 
-// custom serializer
-// advanced usage (I did not have a real use case in mind)
-template <typename T, typename = typename std::enable_if<std::is_pod<T>::value>::type>
+// custom serializer - advanced usage
+// pack structs that are pod-types (but not scalar types)
+// relies on adl for any other type
+template <typename T, typename = void>
 struct pod_serializer
 {
-    template <typename Json>
-    static void from_json(Json const& j , T& t)
-    {
-      std::uint64_t value;
-      // Why cannot we simply use: j.get<std::uint64_t>() ?
-      // Well, with the current experiment, the get method looks for a from_json function, which we are currently defining!
-      // This would end up in a stack overflow. Calling nlohmann::from_json is a workaround.
-      // I shall find a good way to avoid this once all constructors are converted to free methods
-      //
-      // In short, constructing a json by constructor calls to_json
-      // calling get calls from_json, for now, we cannot do this in custom serializers
-      nlohmann::from_json(j, value);
-      auto bytes = static_cast<char *>(static_cast<void *>(&value));
-      std::memcpy(&t, bytes, sizeof(value));
-    }
+  // use adl for non-pods, or scalar types
+  template <
+      typename Json, typename U = T,
+      typename std::enable_if<
+          not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0>
+  static void from_json(Json const &j, U &t)
+  {
+    using nlohmann::from_json;
+    from_json(j, t);
+  }
 
-    template <typename Json>
-    static void to_json(Json& j, T const& t)
-    {
-        auto bytes = static_cast<char const*>(static_cast<void const*>(&t));
-        std::uint64_t value = bytes[0];
-        for (auto i = 1; i < 8; ++i)
-        {
-            value |= bytes[i] << 8 * i;
-        }
-        // same thing here
-        nlohmann::to_json(j, value);
-    }
+  // special behaviour for pods
+  template <typename Json, typename U = T,
+            typename std::enable_if<
+                std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0>
+  static void from_json(Json const &j, U &t)
+  {
+    std::uint64_t value;
+    // TODO The following block is no longer relevant in this serializer, make another one that shows the issue
+    // the problem arises only when one from_json method is defined without any constraint
+    //
+    // Why cannot we simply use: j.get<std::uint64_t>() ?
+    // Well, with the current experiment, the get method looks for a from_json
+    // function, which we are currently defining!
+    // This would end up in a stack overflow. Calling nlohmann::from_json is a
+    // workaround (is it?).
+    // I shall find a good way to avoid this once all constructors are converted
+    // to free methods
+    //
+    // In short, constructing a json by constructor calls to_json
+    // calling get calls from_json, for now, we cannot do this in custom
+    // serializers
+    nlohmann::from_json(j, value);
+    auto bytes = static_cast<char *>(static_cast<void *>(&value));
+    std::memcpy(&t, bytes, sizeof(value));
+  }
+
+  template <
+      typename Json, typename U = T,
+      typename std::enable_if<
+          not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0>
+  static void to_json(Json &j, T const &t)
+  {
+    using nlohmann::to_json;
+    to_json(j, t);
+  }
+
+  template <typename Json, typename U = T,
+            typename std::enable_if<
+                std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0>
+  static void to_json(Json &j, T const &t) noexcept
+  {
+    auto bytes = static_cast<unsigned char const *>(static_cast<void const *>(&t));
+    std::uint64_t value = bytes[0];
+    for (auto i = 1; i < 8; ++i)
+      value |= std::uint64_t{bytes[i]} << 8 * i;
+    nlohmann::to_json(j, value);
+  }
 };
 
 namespace udt
@@ -522,23 +552,58 @@ struct small_pod
     short end;
 };
 
-bool operator==(small_pod lhs, small_pod rhs)
+struct non_pod
+{
+  std::string s;
+};
+
+template <typename Json>
+void to_json(Json& j, non_pod const& np)
+{
+  j = np.s;
+}
+
+template <typename Json>
+void from_json(Json const& j, non_pod& np)
+{
+  np.s = j.template get<std::string>();
+}
+
+bool operator==(small_pod lhs, small_pod rhs) noexcept
 {
     return std::tie(lhs.begin, lhs.middle, lhs.end) ==
-           std::tie(lhs.begin, lhs.middle, lhs.end);
+           std::tie(rhs.begin, rhs.middle, rhs.end);
+}
+
+bool operator==(non_pod const &lhs, non_pod const &rhs) noexcept
+{
+  return lhs.s == rhs.s;
+}
+
+std::ostream& operator<<(std::ostream& os, small_pod l)
+{
+  return os << "begin: " << l.begin << ", middle: " << l.middle << ", end: " << l.end;
 }
 }
 
 TEST_CASE("custom serializer for pods", "[udt]")
 {
-    using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, bool, std::int64_t, std::uint64_t, double, std::allocator, pod_serializer>;
+  using custom_json =
+      nlohmann::basic_json<std::map, std::vector, std::string, bool,
+                           std::int64_t, std::uint64_t, double, std::allocator,
+                           pod_serializer>;
 
-    auto p = udt::small_pod{42, '/', 42};
-    custom_json j = p;
+  auto p = udt::small_pod{42, '/', 42};
+  custom_json j = p;
 
-    auto p2 = j.get<udt::small_pod>();
+  auto p2 = j.get<udt::small_pod>();
 
-    CHECK(p == p2);
+  CHECK(p == p2);
+
+  auto np = udt::non_pod{{"non-pod"}};
+  custom_json j2 = np;
+  auto np2 = j2.get<udt::non_pod>();
+  CHECK(np == np2);
 }
 
 template <typename T, typename>

From cb3d455bd227071cde6a87f7b23112254ca7c010 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Mon, 9 Jan 2017 10:22:22 +0100
Subject: [PATCH 094/174] do not const_cast when calling get_ptr

---
 src/json.hpp | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 177c1532..feb1aa3c 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -494,11 +494,11 @@ template <typename Json, typename ArithmeticType,
 void get_arithmetic_value(Json const &j, ArithmeticType &val)
 {
   if (j.is_number_integer())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>();
+    val = *j.template get_ptr<const typename Json::number_integer_t*>();
   else if (j.is_number_unsigned())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>();
+    val = *j.template get_ptr<const typename Json::number_unsigned_t*>();
   else if (j.is_number_float())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>();
+    val = *j.template get_ptr<const typename Json::number_float_t*>();
   else
     throw std::domain_error("type must be number, but is " + type_name(j));
 }
@@ -578,7 +578,7 @@ void from_json(Json const& j, typename Json::boolean_t& b)
 {
   if (!j.is_boolean())
     throw std::domain_error("type must be boolean, but is " + type_name(j));
-  b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>();
+  b = *j.template get_ptr<const typename Json::boolean_t*>();
 }
 
 template <typename Json>
@@ -586,7 +586,7 @@ void from_json(Json const& j, typename Json::string_t& s)
 {
   if (!j.is_string())
     throw std::domain_error("type must be string, but is " + type_name(j));
-  s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>();
+  s = *j.template get_ptr<const typename Json::string_t*>();
 }
 
 template <typename Json>
@@ -621,7 +621,7 @@ void from_json(Json const &j, typename Json::array_t &arr)
 {
   if (!j.is_array())
     throw std::domain_error("type must be array, but is " + type_name(j));
-  arr = *const_cast<Json&>(j).template get_ptr<typename Json::array_t*>();
+  arr = *j.template get_ptr<const typename Json::array_t*>();
 }
 
 // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
@@ -679,7 +679,7 @@ void from_json(Json const &j, CompatibleObjectType &obj)
   if (!j.is_object())
     throw std::domain_error("type must be object, but is " + type_name(j));
 
-  auto inner_object = const_cast<Json&>(j).template get_ptr<typename Json::object_t*>();
+  auto inner_object = j.template get_ptr<const typename Json::object_t*>();
   using std::begin;
   using std::end;
   // we could avoid the assignment, but this might require a for loop, which
@@ -703,13 +703,13 @@ template <
 void from_json(Json const &j, ArithmeticType &val)
 {
   if (j.is_number_integer())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>();
+    val = *j.template get_ptr<const typename Json::number_integer_t*>();
   else if (j.is_number_unsigned())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>();
+    val = *j.template get_ptr<const typename Json::number_unsigned_t*>();
   else if (j.is_number_float())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>();
+    val = *j.template get_ptr<const typename Json::number_float_t*>();
   else if (j.is_boolean())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>();
+    val = *j.template get_ptr<const typename Json::boolean_t*>();
   else
     throw std::domain_error("type must be number, but is " + type_name(j));
 }

From e678c075dda8fbff4218ceca0a2e0ffbffc10343 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Mon, 9 Jan 2017 10:41:00 +0100
Subject: [PATCH 095/174] check for is_number_unsigned before is_number_integer

---
 src/json.hpp | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index feb1aa3c..4c6d8671 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -493,10 +493,11 @@ template <typename Json, typename ArithmeticType,
                       int> = 0>
 void get_arithmetic_value(Json const &j, ArithmeticType &val)
 {
-  if (j.is_number_integer())
-    val = *j.template get_ptr<const typename Json::number_integer_t*>();
-  else if (j.is_number_unsigned())
+  // unsigned must be checked first, since is_number_integer() == true for unsigned
+  if (j.is_number_unsigned())
     val = *j.template get_ptr<const typename Json::number_unsigned_t*>();
+  else if (j.is_number_integer())
+    val = *j.template get_ptr<const typename Json::number_integer_t*>();
   else if (j.is_number_float())
     val = *j.template get_ptr<const typename Json::number_float_t*>();
   else
@@ -702,10 +703,10 @@ template <
         int> = 0>
 void from_json(Json const &j, ArithmeticType &val)
 {
-  if (j.is_number_integer())
-    val = *j.template get_ptr<const typename Json::number_integer_t*>();
-  else if (j.is_number_unsigned())
+  if (j.is_number_unsigned())
     val = *j.template get_ptr<const typename Json::number_unsigned_t*>();
+  else if (j.is_number_integer())
+    val = *j.template get_ptr<const typename Json::number_integer_t*>();
   else if (j.is_number_float())
     val = *j.template get_ptr<const typename Json::number_float_t*>();
   else if (j.is_boolean())

From d0d8070422eed0bd5826a655de5c0be321d285a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Thu, 12 Jan 2017 22:52:00 +0100
Subject: [PATCH 096/174] add static_asserts

remove some useless trailing return types and && to help MSVC
---
 src/json.hpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 58 insertions(+), 5 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 4c6d8671..1188ead4 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -715,27 +715,81 @@ void from_json(Json const &j, ArithmeticType &val)
     throw std::domain_error("type must be number, but is " + type_name(j));
 }
 
+template <typename Json, typename T>
+constexpr auto has_adl_from_json(int) -> decltype(from_json(std::declval<Json const&>(), std::declval<T&>()), true)
+{
+  return true;
+}
+
+template <typename, typename>
+constexpr bool has_adl_from_json(long)
+{
+  return false;
+}
+
+template <typename Json, typename T>
+constexpr auto has_adl_to_json(int) -> decltype(to_json(std::declval<Json&>(), std::declval<T const&>()), true)
+{
+  return true;
+}
+
+template <typename, typename>
+constexpr bool has_adl_to_json(long)
+{
+  return false;
+}
+
 struct to_json_fn
 {
-    template <typename Json, typename T>
-    constexpr auto operator()(Json&& j, T&& val) const
+  private:
+    template <typename Json, typename T, enable_if_t<has_adl_to_json<Json, T>(0), int> = 0>
+    auto operator()(Json&& j, T&& val) const
     noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
     -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)),
                 void())
     {
         return to_json(std::forward<Json>(j), std::forward<T>(val));
     }
+
+    template <typename Json, typename T, enable_if_t<not has_adl_to_json<Json, T>(0), int> = 0>
+    void operator()(Json&&, T&&) const noexcept
+    {
+        static_assert(has_adl_to_json<Json, T>(0), "to_json method in T's namespace can not be called");
+    }
+
+public:
+  template <typename Json, typename T>
+  void operator()(Json &j, T &&val) const
+      noexcept(noexcept(std::declval<to_json_fn>().call(0, j, std::forward<T>(val))))
+  {
+      return call(0, j, std::forward<T>(val));
+  }
 };
 
 struct from_json_fn
 {
-    template <typename Json, typename T>
-    constexpr auto operator()(Json&& j, T& val) const
+  private:
+    template <typename Json, typename T, enable_if_t<has_adl_from_json<Json, T>(0), int> = 0>
+    auto operator()(Json&& j, T& val) const
     noexcept(noexcept(from_json(std::forward<Json>(j), val)))
     -> decltype(from_json(std::forward<Json>(j), val), void())
     {
         return from_json(std::forward<Json>(j), val);
     }
+    
+    template <typename Json, typename T, enable_if_t<not has_adl_from_json<Json, T>(0), int> = 0>
+    void operator()(Json&&, T&) const noexcept
+    {
+        static_assert(has_adl_from_json<Json, T>(0), "from_json method in T's namespace can not be called");
+    }
+
+public:
+  template <typename Json, typename T>
+  void operator()(Json const &j, T &val) const
+      noexcept(noexcept(std::declval<from_json_fn>().call(0, j, val)))
+  {
+      return call(0, j, val);
+  }
 };
 
 /*!
@@ -757,7 +811,6 @@ struct DecimalSeparator : std::numpunct<char>
         return '.';
     }
 };
-
 }
 
 // taken from ranges-v3

From e247e01a6e98aef1e9ed821617e295bbea031b09 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <delrieutheo@gmail.com>
Date: Thu, 12 Jan 2017 23:45:20 +0100
Subject: [PATCH 097/174] use static_casts to silence MSVC warnings

Those warnings are not "fixed", but that's intentional.
Truncations are expected when ArithmeticType is not the same type than
number_unsigned_t (or another basic_json template argument)
---
 src/json.hpp | 89 +++++++++++++++++++---------------------------------
 1 file changed, 32 insertions(+), 57 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 1188ead4..98f78262 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -495,11 +495,11 @@ void get_arithmetic_value(Json const &j, ArithmeticType &val)
 {
   // unsigned must be checked first, since is_number_integer() == true for unsigned
   if (j.is_number_unsigned())
-    val = *j.template get_ptr<const typename Json::number_unsigned_t*>();
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
   else if (j.is_number_integer())
-    val = *j.template get_ptr<const typename Json::number_integer_t*>();
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
   else if (j.is_number_float())
-    val = *j.template get_ptr<const typename Json::number_float_t*>();
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
   else
     throw std::domain_error("type must be number, but is " + type_name(j));
 }
@@ -523,7 +523,7 @@ template <typename Json, typename FloatType,
           enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
 void to_json(Json &j, FloatType val) noexcept
 {
-  external_constructor<value_t::number_float>::construct(j, val);
+  external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val));
 }
 
 
@@ -534,7 +534,7 @@ template <
                 int> = 0>
 void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept
 {
-  external_constructor<value_t::number_unsigned>::construct(j, val);
+  external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val));
 }
 
 template <
@@ -544,7 +544,7 @@ template <
                 int> = 0>
 void to_json(Json &j, CompatibleNumberIntegerType val) noexcept
 {
-  external_constructor<value_t::number_integer>::construct(j, val);
+  external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val));
 }
 
 template <typename Json, typename UnscopedEnumType,
@@ -704,57 +704,32 @@ template <
 void from_json(Json const &j, ArithmeticType &val)
 {
   if (j.is_number_unsigned())
-    val = *j.template get_ptr<const typename Json::number_unsigned_t*>();
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
   else if (j.is_number_integer())
-    val = *j.template get_ptr<const typename Json::number_integer_t*>();
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
   else if (j.is_number_float())
-    val = *j.template get_ptr<const typename Json::number_float_t*>();
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
   else if (j.is_boolean())
-    val = *j.template get_ptr<const typename Json::boolean_t*>();
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>());
   else
     throw std::domain_error("type must be number, but is " + type_name(j));
 }
 
-template <typename Json, typename T>
-constexpr auto has_adl_from_json(int) -> decltype(from_json(std::declval<Json const&>(), std::declval<T&>()), true)
-{
-  return true;
-}
-
-template <typename, typename>
-constexpr bool has_adl_from_json(long)
-{
-  return false;
-}
-
-template <typename Json, typename T>
-constexpr auto has_adl_to_json(int) -> decltype(to_json(std::declval<Json&>(), std::declval<T const&>()), true)
-{
-  return true;
-}
-
-template <typename, typename>
-constexpr bool has_adl_to_json(long)
-{
-  return false;
-}
-
 struct to_json_fn
 {
-  private:
-    template <typename Json, typename T, enable_if_t<has_adl_to_json<Json, T>(0), int> = 0>
-    auto operator()(Json&& j, T&& val) const
-    noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
-    -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)),
+    template <typename Json, typename T>
+    auto call(int, Json& j, T&& val) const
+    noexcept(noexcept(to_json(j, std::forward<T>(val))))
+    -> decltype(to_json(j, std::forward<T>(val)),
                 void())
     {
-        return to_json(std::forward<Json>(j), std::forward<T>(val));
+        return to_json(j, std::forward<T>(val));
     }
 
-    template <typename Json, typename T, enable_if_t<not has_adl_to_json<Json, T>(0), int> = 0>
-    void operator()(Json&&, T&&) const noexcept
+    template <typename Json, typename T>
+    void call(long, Json&, T&&) const noexcept
     {
-        static_assert(has_adl_to_json<Json, T>(0), "to_json method in T's namespace can not be called");
+        static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called");
     }
 
 public:
@@ -768,20 +743,20 @@ public:
 
 struct from_json_fn
 {
-  private:
-    template <typename Json, typename T, enable_if_t<has_adl_from_json<Json, T>(0), int> = 0>
-    auto operator()(Json&& j, T& val) const
-    noexcept(noexcept(from_json(std::forward<Json>(j), val)))
-    -> decltype(from_json(std::forward<Json>(j), val), void())
-    {
-        return from_json(std::forward<Json>(j), val);
-    }
-    
-    template <typename Json, typename T, enable_if_t<not has_adl_from_json<Json, T>(0), int> = 0>
-    void operator()(Json&&, T&) const noexcept
-    {
-        static_assert(has_adl_from_json<Json, T>(0), "from_json method in T's namespace can not be called");
-    }
+private:
+  template <typename Json, typename T>
+  auto call(int, Json const &j, T &val) const
+      noexcept(noexcept(from_json(j, val)))
+          -> decltype(from_json(j, val), void())
+  {
+    return from_json(j, val);
+  }
+
+  template <typename Json, typename T>
+  void call(long, Json const&, T&) const noexcept
+  {
+      static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called");
+  }
 
 public:
   template <typename Json, typename T>

From a9d5ae4fad1d40932e138781611c9b3680b26330 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 14 Jan 2017 01:09:14 +0100
Subject: [PATCH 098/174] put back a specialization for containers with a
 reserve method

---
 src/json.hpp | 46 ++++++++++++++++++++++++++++++++++++----------
 1 file changed, 36 insertions(+), 10 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 98f78262..96221664 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -642,6 +642,41 @@ void from_json(Json const&j, std::forward_list<T, Allocator>& l)
     l.push_front(it->template get<T>());
 }
 
+
+template <typename Json, typename CompatibleArrayType>
+void from_json_array_impl(Json const &j, CompatibleArrayType &arr, long)
+{
+  using std::begin;
+  using std::end;
+
+  std::transform(
+      j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i)
+      {
+        // get<Json>() returns *this, this won't call a from_json method when
+        // value_type is Json
+        return i.template get<typename CompatibleArrayType::value_type>();
+      });
+}
+
+template <typename Json, typename CompatibleArrayType>
+auto from_json_array_impl(Json const &j, CompatibleArrayType &arr, int)
+    -> decltype(
+        arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
+        void())
+{
+  using std::begin;
+  using std::end;
+
+  arr.reserve(j.size());
+  std::transform(
+      j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i)
+      {
+        // get<Json>() returns *this, this won't call a from_json method when
+        // value_type is Json
+        return i.template get<typename CompatibleArrayType::value_type>();
+      });
+}
+
 template <
     typename Json, typename CompatibleArrayType,
     enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and
@@ -658,16 +693,7 @@ void from_json(Json const &j, CompatibleArrayType &arr)
     if (!j.is_array())
       throw std::domain_error("type must be array, but is " + type_name(j));
   }
-
-  using std::begin;
-  using std::end;
-  std::transform(
-      j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i)
-      {
-        // get<Json>() returns *this, this won't call a from_json method when
-        // value_type is Json
-        return i.template get<typename CompatibleArrayType::value_type>();
-      });
+  from_json_array_impl(j, arr, 0);
 }
 
 

From 1554baa01d58499e3d06806d59955d38b35c224d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 14 Jan 2017 01:26:06 +0100
Subject: [PATCH 099/174] attempting to fix coverage. testing that reserve is
 called

---
 test/src/unit-conversions.cpp | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp
index 2b570533..73b686d8 100644
--- a/test/src/unit-conversions.cpp
+++ b/test/src/unit-conversions.cpp
@@ -160,12 +160,28 @@ TEST_CASE("value conversion")
         {
             std::forward_list<json> a = j.get<std::forward_list<json>>();
             CHECK(json(a) == j);
+
+            CHECK_THROWS_AS(json(json::value_t::null).get<std::forward_list<json>>(), std::logic_error);
+            CHECK_THROWS_WITH(json(json::value_t::null).get<std::forward_list<json>>(),
+                              "type must be array, but is null");
         }
 
         SECTION("std::vector<json>")
         {
             std::vector<json> a = j.get<std::vector<json>>();
             CHECK(json(a) == j);
+
+            CHECK_THROWS_AS(json(json::value_t::null).get<std::vector<json>>(), std::logic_error);
+            CHECK_THROWS_WITH(json(json::value_t::null).get<std::vector<json>>(),
+                              "type must be array, but is null");
+
+            SECTION("reserve is called on containers that supports it")
+            {
+              // making the call to from_json throw in order to check capacity 
+              std::vector<float> v;
+              CHECK_THROWS_AS(nlohmann::from_json(j, v), std::logic_error);
+              CHECK(v.capacity() == j.size());
+            }
         }
 
         SECTION("std::deque<json>")
@@ -184,6 +200,8 @@ TEST_CASE("value conversion")
             CHECK_THROWS_AS(json(json::value_t::number_unsigned).get<json::array_t>(), std::logic_error);
             CHECK_THROWS_AS(json(json::value_t::number_float).get<json::array_t>(), std::logic_error);
 
+            CHECK_THROWS_WITH(json(json::value_t::object).get<std::vector<int>>(),
+                              "type must be array, but is object");
             CHECK_THROWS_WITH(json(json::value_t::null).get<json::array_t>(),
                               "type must be array, but is null");
             CHECK_THROWS_WITH(json(json::value_t::object).get<json::array_t>(),

From b8012876a5988ba6066aa1c46e33b2ecf5f14f86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 14 Jan 2017 02:20:53 +0100
Subject: [PATCH 100/174] add noexcept checks, and some missing noexcepts

---
 src/json.hpp               |  5 +++--
 test/CMakeLists.txt        |  1 +
 test/src/unit-noexcept.cpp | 27 +++++++++++++++++++++++++++
 3 files changed, 31 insertions(+), 2 deletions(-)
 create mode 100644 test/src/unit-noexcept.cpp

diff --git a/src/json.hpp b/src/json.hpp
index 96221664..4b8f9e5a 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -843,9 +843,10 @@ struct adl_serializer
     }
 
     template <typename Json, typename T>
-    static void to_json(Json& j, T&& val)
+    static void to_json(Json &j, T &&val) noexcept(
+        noexcept(::nlohmann::to_json(j, std::forward<T>(val))))
     {
-        ::nlohmann::to_json(j, std::forward<T>(val));
+      ::nlohmann::to_json(j, std::forward<T>(val));
     }
 };
 
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index a988f47b..0ceb6bf6 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -29,6 +29,7 @@ add_executable(${JSON_UNITTEST_TARGET_NAME}
     "src/unit-meta.cpp"
     "src/unit-modifiers.cpp"
     "src/unit-msgpack.cpp"
+    "src/unit-noexcept.cpp"
     "src/unit-pointer_access.cpp"
     "src/unit-readme.cpp"
     "src/unit-reference_access.cpp"
diff --git a/test/src/unit-noexcept.cpp b/test/src/unit-noexcept.cpp
new file mode 100644
index 00000000..212abdf7
--- /dev/null
+++ b/test/src/unit-noexcept.cpp
@@ -0,0 +1,27 @@
+#include "catch.hpp"
+
+#include "json.hpp"
+
+using nlohmann::json;
+
+enum test
+{
+};
+
+struct pod {};
+struct pod_bis {};
+
+void to_json(json &, pod) noexcept;
+void to_json(json &, pod_bis);
+static json j;
+
+static_assert(noexcept(json{}), "");
+static_assert(noexcept(nlohmann::to_json(j, 2)), "");
+static_assert(noexcept(nlohmann::to_json(j, 2.5)), "");
+static_assert(noexcept(nlohmann::to_json(j, true)), "");
+static_assert(noexcept(nlohmann::to_json(j, test{})), "");
+static_assert(noexcept(nlohmann::to_json(j, pod{})), "");
+static_assert(not noexcept(nlohmann::to_json(j, pod_bis{})), "");
+static_assert(noexcept(json(2)), "");
+static_assert(noexcept(json(test{})), "");
+static_assert(noexcept(json(pod{})), "");

From 63e4249e9fc127cac2a793ac085f8650ba1be666 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 14 Jan 2017 02:33:03 +0100
Subject: [PATCH 101/174] use a priority_tag instead of int and longs with
 sfinae-dispatch

---
 src/json.hpp | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 4b8f9e5a..f10f178b 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -189,6 +189,11 @@ template <typename Json> std::string type_name(Json const &j)
   }
 }
 
+// dispatch utility (taken from ranges-v3)
+template <unsigned N> struct priority_tag : priority_tag<N - 1> {};
+
+template <> struct priority_tag<0> {};
+
 // This is an experiment. I need this to move constructors out of basic_json.
 // I'm sure there is a better way, but this might need a big basic_json refactoring
 template <value_t> struct external_constructor;
@@ -642,9 +647,8 @@ void from_json(Json const&j, std::forward_list<T, Allocator>& l)
     l.push_front(it->template get<T>());
 }
 
-
 template <typename Json, typename CompatibleArrayType>
-void from_json_array_impl(Json const &j, CompatibleArrayType &arr, long)
+void from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag<0>)
 {
   using std::begin;
   using std::end;
@@ -659,7 +663,7 @@ void from_json_array_impl(Json const &j, CompatibleArrayType &arr, long)
 }
 
 template <typename Json, typename CompatibleArrayType>
-auto from_json_array_impl(Json const &j, CompatibleArrayType &arr, int)
+auto from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag<1>)
     -> decltype(
         arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
         void())
@@ -693,7 +697,7 @@ void from_json(Json const &j, CompatibleArrayType &arr)
     if (!j.is_array())
       throw std::domain_error("type must be array, but is " + type_name(j));
   }
-  from_json_array_impl(j, arr, 0);
+  from_json_array_impl(j, arr, priority_tag<1>{});
 }
 
 
@@ -744,7 +748,7 @@ void from_json(Json const &j, ArithmeticType &val)
 struct to_json_fn
 {
     template <typename Json, typename T>
-    auto call(int, Json& j, T&& val) const
+    auto call(Json& j, T&& val, priority_tag<1>) const
     noexcept(noexcept(to_json(j, std::forward<T>(val))))
     -> decltype(to_json(j, std::forward<T>(val)),
                 void())
@@ -753,7 +757,7 @@ struct to_json_fn
     }
 
     template <typename Json, typename T>
-    void call(long, Json&, T&&) const noexcept
+    void call(Json&, T&&, priority_tag<0>) const noexcept
     {
         static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called");
     }
@@ -761,9 +765,9 @@ struct to_json_fn
 public:
   template <typename Json, typename T>
   void operator()(Json &j, T &&val) const
-      noexcept(noexcept(std::declval<to_json_fn>().call(0, j, std::forward<T>(val))))
+      noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1>{})))
   {
-      return call(0, j, std::forward<T>(val));
+      return call(j, std::forward<T>(val), priority_tag<1>{});
   }
 };
 
@@ -771,7 +775,7 @@ struct from_json_fn
 {
 private:
   template <typename Json, typename T>
-  auto call(int, Json const &j, T &val) const
+  auto call(Json const &j, T &val, priority_tag<1>) const
       noexcept(noexcept(from_json(j, val)))
           -> decltype(from_json(j, val), void())
   {
@@ -779,7 +783,7 @@ private:
   }
 
   template <typename Json, typename T>
-  void call(long, Json const&, T&) const noexcept
+  void call(Json const&, T&, priority_tag<0>) const noexcept
   {
       static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called");
   }
@@ -787,9 +791,9 @@ private:
 public:
   template <typename Json, typename T>
   void operator()(Json const &j, T &val) const
-      noexcept(noexcept(std::declval<from_json_fn>().call(0, j, val)))
+      noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1>{})))
   {
-      return call(0, j, val);
+      return call(j, val, priority_tag<1>{});
   }
 };
 

From f2c71fafda559beec41cdf8eb7449a1c9a31d9c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 14 Jan 2017 02:47:02 +0100
Subject: [PATCH 102/174] minor message/comments tweak

---
 src/json.hpp | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index f10f178b..75fece93 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -3027,16 +3027,16 @@ class basic_json
                                                       uncvref_t<T>>::value,
             int> = 0>
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
-    // i know there is a special behaviour for boolean_t* and such
     // static assert ?
+    // i know there is a special behaviour for boolean_t* and such
     auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json(
         std::declval<basic_json_t const &>(), std::declval<uncvref_t<T> &>())))
         -> uncvref_t<T>
     {
       using type = uncvref_t<T>;
-      static_assert(std::is_default_constructible<type>::value &&
+      static_assert(std::is_default_constructible<type>::value and
                         std::is_copy_constructible<type>::value,
-                    "user-defined types must be DefaultConstructible and "
+                    "Types must be DefaultConstructible and "
                     "CopyConstructible when used with get");
       type ret;
       JSONSerializer<type>::from_json(*this, ret);
@@ -3052,12 +3052,11 @@ class basic_json
                         detail::has_non_default_from_json<basic_json_t,
                                                           uncvref_t<T>>::value,
                     int> = 0>
-    constexpr uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>())))
+    uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>())))
     {
       return JSONSerializer<T>::from_json(*this);
     }
 
-    // TODO what to do with those...
     /*!
     @brief get a pointer value (explicit)
 

From f1482d1f01c12f634b1b0adee047e96d701c5528 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 14 Jan 2017 02:47:29 +0100
Subject: [PATCH 103/174] more tests in unit-udt

---
 test/src/unit-udt.cpp | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 60b83957..10e8b71a 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -394,15 +394,22 @@ namespace nlohmann
 template <>
 struct adl_serializer<std::vector<float>>
 {
-    static void to_json(json& j, std::vector<float> const&)
+  using type = std::vector<float>;
+    static void to_json(json& j, type const&)
     {
       j = "hijacked!";
     }
 
-    static void from_json(json const&, std::vector<float>& opt)
+    static void from_json(json const&, type& opt)
     {
       opt = {42.0, 42.0, 42.0};
     }
+
+    // preferred version
+    static type from_json(json const&)
+    {
+      return {4.0, 5.0, 6.0};
+    }
 };
 }
 
@@ -411,7 +418,8 @@ TEST_CASE("even supported types can be specialized", "[udt]")
     json j = std::vector<float> {1.0, 2.0, 3.0};
     CHECK(j.dump() == R"("hijacked!")");
     auto f = j.get<std::vector<float>>();
-    CHECK((f == std::vector<float>{42.0, 42.0, 42.0}));
+    // the single argument from_json method is preferred
+    CHECK((f == std::vector<float>{4.0, 5.0, 6.0}));
 }
 
 namespace nlohmann

From 07bc82d3a7aac7092bcc7d3465779c32b4606364 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 15 Jan 2017 20:19:54 +0100
Subject: [PATCH 104/174] put const to the left

---
 src/json.hpp          | 54 ++++++++++++++++----------------
 test/src/unit-udt.cpp | 72 +++++++++++++++++++++----------------------
 2 files changed, 63 insertions(+), 63 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 75fece93..2457f5d7 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -168,7 +168,7 @@ using is_unscoped_enum =
 
 namespace detail
 {
-template <typename Json> std::string type_name(Json const &j)
+template <typename Json> std::string type_name(const  Json &j)
 {
   switch (j.m_type)
   {
@@ -496,7 +496,7 @@ template <typename Json, typename ArithmeticType,
                           not std::is_same<ArithmeticType,
                                            typename Json::boolean_t>::value,
                       int> = 0>
-void get_arithmetic_value(Json const &j, ArithmeticType &val)
+void get_arithmetic_value(const  Json &j, ArithmeticType &val)
 {
   // unsigned must be checked first, since is_number_integer() == true for unsigned
   if (j.is_number_unsigned())
@@ -565,7 +565,7 @@ template <
         is_compatible_array_type<Json, CompatibleArrayType>::value or
             std::is_same<typename Json::array_t, CompatibleArrayType>::value,
         int> = 0>
-void to_json(Json &j, CompatibleArrayType const &arr)
+void to_json(Json &j, const  CompatibleArrayType &arr)
 {
   external_constructor<value_t::array>::construct(j, arr);
 }
@@ -574,13 +574,13 @@ template <
     typename Json, typename CompatibleObjectType,
     enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
                 int> = 0>
-void to_json(Json &j, CompatibleObjectType const &arr)
+void to_json(Json &j, const  CompatibleObjectType &arr)
 {
   external_constructor<value_t::object>::construct(j, arr);
 }
 
 template <typename Json>
-void from_json(Json const& j, typename Json::boolean_t& b)
+void from_json(const Json & j, typename Json::boolean_t& b)
 {
   if (!j.is_boolean())
     throw std::domain_error("type must be boolean, but is " + type_name(j));
@@ -588,7 +588,7 @@ void from_json(Json const& j, typename Json::boolean_t& b)
 }
 
 template <typename Json>
-void from_json(Json const& j, typename Json::string_t& s)
+void from_json(const Json & j, typename Json::string_t& s)
 {
   if (!j.is_string())
     throw std::domain_error("type must be string, but is " + type_name(j));
@@ -596,26 +596,26 @@ void from_json(Json const& j, typename Json::string_t& s)
 }
 
 template <typename Json>
-void from_json(Json const& j, typename Json::number_float_t& val)
+void from_json(const Json & j, typename Json::number_float_t& val)
 {
   get_arithmetic_value(j, val);
 }
 
 template <typename Json>
-void from_json(Json const& j, typename Json::number_unsigned_t& val)
+void from_json(const Json & j, typename Json::number_unsigned_t& val)
 {
   get_arithmetic_value(j, val);
 }
 
 template <typename Json>
-void from_json(Json const& j, typename Json::number_integer_t& val)
+void from_json(const Json & j, typename Json::number_integer_t& val)
 {
   get_arithmetic_value(j, val);
 }
 
 template <typename Json, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void from_json(Json const &j, UnscopedEnumType& e)
+void from_json(const  Json &j, UnscopedEnumType& e)
 {
   typename std::underlying_type<UnscopedEnumType>::type val = e;
   get_arithmetic_value(j, val);
@@ -623,7 +623,7 @@ void from_json(Json const &j, UnscopedEnumType& e)
 }
 
 template <typename Json>
-void from_json(Json const &j, typename Json::array_t &arr)
+void from_json(const  Json &j, typename Json::array_t &arr)
 {
   if (!j.is_array())
     throw std::domain_error("type must be array, but is " + type_name(j));
@@ -632,7 +632,7 @@ void from_json(Json const &j, typename Json::array_t &arr)
 
 // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
 template <typename Json, typename T, typename Allocator>
-void from_json(Json const&j, std::forward_list<T, Allocator>& l)
+void from_json(const Json &j, std::forward_list<T, Allocator>& l)
 {
   // do not perform the check when user wants to retrieve jsons
   // (except when it's null.. ?)
@@ -648,13 +648,13 @@ void from_json(Json const&j, std::forward_list<T, Allocator>& l)
 }
 
 template <typename Json, typename CompatibleArrayType>
-void from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag<0>)
+void from_json_array_impl(const  Json &j, CompatibleArrayType &arr, priority_tag<0>)
 {
   using std::begin;
   using std::end;
 
   std::transform(
-      j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i)
+      j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json &i)
       {
         // get<Json>() returns *this, this won't call a from_json method when
         // value_type is Json
@@ -663,7 +663,7 @@ void from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag<
 }
 
 template <typename Json, typename CompatibleArrayType>
-auto from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag<1>)
+auto from_json_array_impl(const  Json &j, CompatibleArrayType &arr, priority_tag<1>)
     -> decltype(
         arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
         void())
@@ -673,7 +673,7 @@ auto from_json_array_impl(Json const &j, CompatibleArrayType &arr, priority_tag<
 
   arr.reserve(j.size());
   std::transform(
-      j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i)
+      j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json &i)
       {
         // get<Json>() returns *this, this won't call a from_json method when
         // value_type is Json
@@ -687,7 +687,7 @@ template <
                     not std::is_same<typename Json::array_t,
                                      CompatibleArrayType>::value,
                 int> = 0>
-void from_json(Json const &j, CompatibleArrayType &arr)
+void from_json(const  Json &j, CompatibleArrayType &arr)
 {
   if (j.is_null())
       throw std::domain_error("type must be array, but is " + type_name(j));
@@ -705,7 +705,7 @@ template <
     typename Json, typename CompatibleObjectType,
     enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
                 int> = 0>
-void from_json(Json const &j, CompatibleObjectType &obj)
+void from_json(const  Json &j, CompatibleObjectType &obj)
 {
   if (!j.is_object())
     throw std::domain_error("type must be object, but is " + type_name(j));
@@ -731,7 +731,7 @@ template <
             not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
             not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
         int> = 0>
-void from_json(Json const &j, ArithmeticType &val)
+void from_json(const  Json &j, ArithmeticType &val)
 {
   if (j.is_number_unsigned())
     val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
@@ -775,7 +775,7 @@ struct from_json_fn
 {
 private:
   template <typename Json, typename T>
-  auto call(Json const &j, T &val, priority_tag<1>) const
+  auto call(const  Json &j, T &val, priority_tag<1>) const
       noexcept(noexcept(from_json(j, val)))
           -> decltype(from_json(j, val), void())
   {
@@ -783,14 +783,14 @@ private:
   }
 
   template <typename Json, typename T>
-  void call(Json const&, T&, priority_tag<0>) const noexcept
+  void call(const Json &, T&, priority_tag<0>) const noexcept
   {
       static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called");
   }
 
 public:
   template <typename Json, typename T>
-  void operator()(Json const &j, T &val) const
+  void operator()(const  Json &j, T &val) const
       noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1>{})))
   {
       return call(j, val, priority_tag<1>{});
@@ -831,8 +831,8 @@ constexpr T static_const<T>::value;
 
 inline namespace
 {
-constexpr auto const& to_json = static_const<detail::to_json_fn>::value;
-constexpr auto const& from_json = static_const<detail::from_json_fn>::value;
+constexpr const auto & to_json = static_const<detail::to_json_fn>::value;
+constexpr const auto & from_json = static_const<detail::from_json_fn>::value;
 }
 
 // default JSONSerializer template argument, doesn't care about template argument
@@ -948,7 +948,7 @@ class basic_json
 {
   private:
     template <::nlohmann::value_t> friend struct detail::external_constructor;
-    template <typename Json> friend std::string detail::type_name(Json const &);
+    template <typename Json> friend std::string detail::type_name(const  Json &);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -3030,7 +3030,7 @@ class basic_json
     // static assert ?
     // i know there is a special behaviour for boolean_t* and such
     auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json(
-        std::declval<basic_json_t const &>(), std::declval<uncvref_t<T> &>())))
+        std::declval<const basic_json_t &>(), std::declval<uncvref_t<T> &>())))
         -> uncvref_t<T>
     {
       using type = uncvref_t<T>;
@@ -3052,7 +3052,7 @@ class basic_json
                         detail::has_non_default_from_json<basic_json_t,
                                                           uncvref_t<T>>::value,
                     int> = 0>
-    uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>())))
+    uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t &>())))
     {
       return JSONSerializer<T>::from_json(*this);
     }
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 10e8b71a..0590a8e5 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -91,7 +91,7 @@ void to_json(Json& j, age a)
 }
 
 template <typename Json>
-void to_json(Json& j, name const& n)
+void to_json(Json& j, const name& n)
 {
     j = n.m_val;
 }
@@ -114,22 +114,22 @@ void to_json(Json& j, country c)
 }
 
 template <typename Json>
-void to_json(Json& j, person const& p)
+void to_json(Json& j, const person & p)
 {
     j = Json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}};
 }
 
-void to_json(nlohmann::json& j, address const& a)
+void to_json(nlohmann::json& j, const address & a)
 {
     j = a.m_val;
 }
 
-void to_json(nlohmann::json& j, contact const& c)
+void to_json(nlohmann::json& j, const contact & c)
 {
     j = json{{"person", c.m_person}, {"address", c.m_address}};
 }
 
-void to_json(nlohmann::json& j, contact_book const& cb)
+void to_json(nlohmann::json& j, const contact_book & cb)
 {
     j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}};
 }
@@ -140,28 +140,28 @@ bool operator==(age lhs, age rhs)
     return lhs.m_val == rhs.m_val;
 }
 
-bool operator==(address const& lhs, address const& rhs)
+bool operator==(const address & lhs, const address & rhs)
 {
     return lhs.m_val == rhs.m_val;
 }
 
-bool operator==(name const& lhs, name const& rhs)
+bool operator==(const name & lhs, const name & rhs)
 {
     return lhs.m_val == rhs.m_val;
 }
 
-bool operator==(person const& lhs, person const& rhs)
+bool operator==(const person & lhs, const person & rhs)
 {
     return std::tie(lhs.m_name, lhs.m_age) == std::tie(rhs.m_name, rhs.m_age);
 }
 
-bool operator==(contact const& lhs, contact const& rhs)
+bool operator==(const contact & lhs, const contact & rhs)
 {
     return std::tie(lhs.m_person, lhs.m_address) ==
            std::tie(rhs.m_person, rhs.m_address);
 }
 
-bool operator==(contact_book const& lhs, contact_book const& rhs)
+bool operator==(const contact_book & lhs, const contact_book & rhs)
 {
     return std::tie(lhs.m_book_name, lhs.m_contacts) ==
            std::tie(rhs.m_book_name, rhs.m_contacts);
@@ -172,19 +172,19 @@ bool operator==(contact_book const& lhs, contact_book const& rhs)
 namespace udt
 {
 template <typename Json>
-void from_json(Json const& j, age& a)
+void from_json(const Json & j, age& a)
 {
     a.m_val = j.template get<int>();
 }
 
 template <typename Json>
-void from_json(Json const& j, name& n)
+void from_json(const Json & j, name& n)
 {
     n.m_val = j.template get<std::string>();
 }
 
 template <typename Json>
-void from_json(Json const& j, country& c)
+void from_json(const Json & j, country& c)
 {
     const auto str = j.template get<std::string>();
     static const std::map<std::string, country> m =
@@ -200,25 +200,25 @@ void from_json(Json const& j, country& c)
 }
 
 template <typename Json>
-void from_json(Json const& j, person& p)
+void from_json(const Json & j, person& p)
 {
     p.m_age = j["age"].template get<age>();
     p.m_name = j["name"].template get<name>();
     p.m_country = j["country"].template get<country>();
 }
 
-void from_json(nlohmann::json const& j, address& a)
+void from_json(const nlohmann::json & j, address& a)
 {
     a.m_val = j.get<std::string>();
 }
 
-void from_json(nlohmann::json const& j, contact& c)
+void from_json(const nlohmann::json & j, contact& c)
 {
     c.m_person = j["person"].get<person>();
     c.m_address = j["address"].get<address>();
 }
 
-void from_json(nlohmann::json const& j, contact_book& cb)
+void from_json(const nlohmann::json & j, contact_book& cb)
 {
     cb.m_book_name = j["name"].get<name>();
     cb.m_contacts = j["contacts"].get<std::vector<contact>>();
@@ -297,7 +297,7 @@ namespace nlohmann
 template <typename T>
 struct adl_serializer<std::shared_ptr<T>>
 {
-    static void to_json(json& j, std::shared_ptr<T> const& opt)
+    static void to_json(json& j, const std::shared_ptr<T> & opt)
     {
         if (opt)
         {
@@ -309,7 +309,7 @@ struct adl_serializer<std::shared_ptr<T>>
         }
     }
 
-    static void from_json(json const& j, std::shared_ptr<T>& opt)
+    static void from_json(const json & j, std::shared_ptr<T>& opt)
     {
         if (j.is_null())
         {
@@ -325,12 +325,12 @@ struct adl_serializer<std::shared_ptr<T>>
 template <>
 struct adl_serializer<udt::legacy_type>
 {
-    static void to_json(json& j, udt::legacy_type const& l)
+    static void to_json(json& j, const udt::legacy_type & l)
     {
         j = std::stoi(l.number);
     }
 
-    static void from_json(json const& j, udt::legacy_type& l)
+    static void from_json(const json & j, udt::legacy_type& l)
     {
         l.number = std::to_string(j.get<int>());
     }
@@ -395,18 +395,18 @@ template <>
 struct adl_serializer<std::vector<float>>
 {
   using type = std::vector<float>;
-    static void to_json(json& j, type const&)
+    static void to_json(json& j, const type &)
     {
       j = "hijacked!";
     }
 
-    static void from_json(json const&, type& opt)
+    static void from_json(const json &, type& opt)
     {
       opt = {42.0, 42.0, 42.0};
     }
 
     // preferred version
-    static type from_json(json const&)
+    static type from_json(const json &)
     {
       return {4.0, 5.0, 6.0};
     }
@@ -427,7 +427,7 @@ namespace nlohmann
 template <typename T>
 struct adl_serializer<std::unique_ptr<T>>
 {
-    static void to_json(json& j, std::unique_ptr<T> const& opt)
+    static void to_json(json& j, const std::unique_ptr<T> & opt)
     {
         if (opt)
         {
@@ -440,7 +440,7 @@ struct adl_serializer<std::unique_ptr<T>>
     }
 
     // this is the overload needed for non-copyable types,
-    static std::unique_ptr<T> from_json(json const& j)
+    static std::unique_ptr<T> from_json(const json & j)
     {
         if (j.is_null())
         {
@@ -496,7 +496,7 @@ struct pod_serializer
       typename Json, typename U = T,
       typename std::enable_if<
           not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0>
-  static void from_json(Json const &j, U &t)
+  static void from_json(const Json &j, U &t)
   {
     using nlohmann::from_json;
     from_json(j, t);
@@ -506,7 +506,7 @@ struct pod_serializer
   template <typename Json, typename U = T,
             typename std::enable_if<
                 std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0>
-  static void from_json(Json const &j, U &t)
+  static void from_json(const  Json &j, U &t)
   {
     std::uint64_t value;
     // TODO The following block is no longer relevant in this serializer, make another one that shows the issue
@@ -532,7 +532,7 @@ struct pod_serializer
       typename Json, typename U = T,
       typename std::enable_if<
           not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0>
-  static void to_json(Json &j, T const &t)
+  static void to_json(Json &j, const  T &t)
   {
     using nlohmann::to_json;
     to_json(j, t);
@@ -541,9 +541,9 @@ struct pod_serializer
   template <typename Json, typename U = T,
             typename std::enable_if<
                 std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0>
-  static void to_json(Json &j, T const &t) noexcept
+  static void to_json(Json &j, const  T &t) noexcept
   {
-    auto bytes = static_cast<unsigned char const *>(static_cast<void const *>(&t));
+    auto bytes = static_cast< const unsigned char*>(static_cast<const void *>(&t));
     std::uint64_t value = bytes[0];
     for (auto i = 1; i < 8; ++i)
       value |= std::uint64_t{bytes[i]} << 8 * i;
@@ -566,13 +566,13 @@ struct non_pod
 };
 
 template <typename Json>
-void to_json(Json& j, non_pod const& np)
+void to_json(Json& j, const non_pod & np)
 {
   j = np.s;
 }
 
 template <typename Json>
-void from_json(Json const& j, non_pod& np)
+void from_json(const Json & j, non_pod& np)
 {
   np.s = j.template get<std::string>();
 }
@@ -583,7 +583,7 @@ bool operator==(small_pod lhs, small_pod rhs) noexcept
            std::tie(rhs.begin, rhs.middle, rhs.end);
 }
 
-bool operator==(non_pod const &lhs, non_pod const &rhs) noexcept
+bool operator==(const  non_pod &lhs, const  non_pod &rhs) noexcept
 {
   return lhs.s == rhs.s;
 }
@@ -622,13 +622,13 @@ using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, boo
 template <typename T, typename>
 struct another_adl_serializer
 {
-    static void from_json(custom_json const& j , T& t)
+    static void from_json(const custom_json & j , T& t)
     {
         using nlohmann::from_json;
         from_json(j, t);
     }
 
-    static void to_json(custom_json& j , T const& t)
+    static void to_json(custom_json& j , const T & t)
     {
         using nlohmann::to_json;
         to_json(j, t);

From 68081cd1129d5807132b6c1f1aceb074da310a92 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 15 Jan 2017 20:52:24 +0100
Subject: [PATCH 105/174] remove useless file

---
 src/json.hpp.re2c.rej | 98 -------------------------------------------
 1 file changed, 98 deletions(-)
 delete mode 100644 src/json.hpp.re2c.rej

diff --git a/src/json.hpp.re2c.rej b/src/json.hpp.re2c.rej
deleted file mode 100644
index ab8fa89d..00000000
--- a/src/json.hpp.re2c.rej
+++ /dev/null
@@ -1,98 +0,0 @@
-diff a/src/json.hpp.re2c b/src/json.hpp.re2c	(rejected hunks)
-@@ -389,40 +389,30 @@ struct is_compatible_object_type
-         typename BasicJson::object_t, CompatibleObjectType>::value;
- };
- 
--template <bool B, class BasicJson, class CompatibleArrayType>
--struct is_compatible_array_type_impl : std::false_type {};
--
--template <class BasicJson, class CompatibleArrayType>
--struct is_compatible_array_type_impl<true, BasicJson, CompatibleArrayType>
-+template <typename BasicJson, typename T>
-+struct is_basic_json_nested_type
- {
--    static constexpr auto value =
--        not std::is_same<CompatibleArrayType,
--        typename BasicJson::iterator>::value and
--        not std::is_same<CompatibleArrayType,
--        typename BasicJson::const_iterator>::value and
--        not std::is_same<CompatibleArrayType,
--        typename BasicJson::reverse_iterator>::value and
--        not std::is_same<CompatibleArrayType,
--        typename BasicJson::const_reverse_iterator>::value and
--        not std::is_same<CompatibleArrayType,
--        typename BasicJson::array_t::iterator>::value and
--        not std::is_same<CompatibleArrayType,
--        typename BasicJson::array_t::const_iterator>::value;
-+    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
-+                                  std::is_same<T, typename BasicJson::const_iterator>::value or
-+                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
-+                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
-+                                  std::is_same<T, typename BasicJson::json_pointer>::value;
- };
- 
- template <class BasicJson, class CompatibleArrayType>
- struct is_compatible_array_type
- {
--    // the check for CompatibleArrayType = void is done in
--    // `is_compatible_object_type`, but we need the conjunction here as well
--    static auto constexpr value = is_compatible_array_type_impl<
--        conjunction<negation<is_compatible_object_type<
-+  // TODO concept Container?
-+  // this might not make VS happy
-+    static auto constexpr value = 
-+        conjunction<negation<std::is_same<void, CompatibleArrayType>>,
-+                    negation<is_compatible_object_type<
-                         BasicJson, CompatibleArrayType>>,
-                     negation<std::is_constructible<typename BasicJson::string_t,
-                                                    CompatibleArrayType>>,
-+                    negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>,
-                     has_value_type<CompatibleArrayType>,
--                    has_iterator<CompatibleArrayType>>::value,
--        BasicJson, CompatibleArrayType>::value;
-+                    has_iterator<CompatibleArrayType>>::value;
- };
- 
- template <bool, typename, typename>
-@@ -452,16 +442,6 @@ struct is_compatible_integer_type
-       RealIntegerType, CompatibleNumberIntegerType > ::value;
- };
- 
--template <typename BasicJson, typename T>
--struct is_basic_json_nested_type
--{
--    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
--                                  std::is_same<T, typename BasicJson::const_iterator>::value or
--                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
--                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
--                                  std::is_same<T, typename BasicJson::json_pointer>::value;
--};
--
- // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
- template <template <typename, typename> class JSONSerializer, typename Json, typename T>
- struct has_from_json
-@@ -510,8 +490,6 @@ struct has_to_json
-                                       detect(std::declval<JSONSerializer<T, void>>()))>::value;
- };
- 
--template <typename Json, typename >
--
- // those declarations are needed to workaround a MSVC bug related to ADL
- // (taken from MSVC-Ranges implementation)
- void to_json();
-@@ -728,12 +706,9 @@ template <
-     typename Json, typename ArithmeticType,
-     enable_if_t<
-         std::is_arithmetic<ArithmeticType>::value and
--            not std::is_same<ArithmeticType,
--                             typename Json::number_unsigned_t>::value and
--            not std::is_same<ArithmeticType,
--                             typename Json::number_integer_t>::value and
--            not std::is_same<ArithmeticType,
--                             typename Json::number_float_t>::value and
-+            not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and
-+            not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and
-+            not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
-             not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
-         int> = 0>
- void from_json(Json const &j, ArithmeticType &val)

From 794dae8911d2a4ea42a28066a536d3b5f42227d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 15 Jan 2017 21:01:29 +0100
Subject: [PATCH 106/174] apply changes to json.hpp.re2c

---
 src/json.hpp.re2c | 191 ++++++++++++++++++++++++++++++----------------
 1 file changed, 125 insertions(+), 66 deletions(-)

diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 5dc2e027..4dbeda8a 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -168,7 +168,7 @@ using is_unscoped_enum =
 
 namespace detail
 {
-template <typename Json> std::string type_name(Json const &j)
+template <typename Json> std::string type_name(const  Json &j)
 {
   switch (j.m_type)
   {
@@ -189,6 +189,11 @@ template <typename Json> std::string type_name(Json const &j)
   }
 }
 
+// dispatch utility (taken from ranges-v3)
+template <unsigned N> struct priority_tag : priority_tag<N - 1> {};
+
+template <> struct priority_tag<0> {};
+
 // This is an experiment. I need this to move constructors out of basic_json.
 // I'm sure there is a better way, but this might need a big basic_json refactoring
 template <value_t> struct external_constructor;
@@ -491,14 +496,15 @@ template <typename Json, typename ArithmeticType,
                           not std::is_same<ArithmeticType,
                                            typename Json::boolean_t>::value,
                       int> = 0>
-void get_arithmetic_value(Json const &j, ArithmeticType &val)
+void get_arithmetic_value(const  Json &j, ArithmeticType &val)
 {
-  if (j.is_number_integer())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>();
-  else if (j.is_number_unsigned())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>();
+  // unsigned must be checked first, since is_number_integer() == true for unsigned
+  if (j.is_number_unsigned())
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
+  else if (j.is_number_integer())
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
   else if (j.is_number_float())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>();
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
   else
     throw std::domain_error("type must be number, but is " + type_name(j));
 }
@@ -522,7 +528,7 @@ template <typename Json, typename FloatType,
           enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
 void to_json(Json &j, FloatType val) noexcept
 {
-  external_constructor<value_t::number_float>::construct(j, val);
+  external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val));
 }
 
 
@@ -533,7 +539,7 @@ template <
                 int> = 0>
 void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept
 {
-  external_constructor<value_t::number_unsigned>::construct(j, val);
+  external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val));
 }
 
 template <
@@ -543,7 +549,7 @@ template <
                 int> = 0>
 void to_json(Json &j, CompatibleNumberIntegerType val) noexcept
 {
-  external_constructor<value_t::number_integer>::construct(j, val);
+  external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val));
 }
 
 template <typename Json, typename UnscopedEnumType,
@@ -559,7 +565,7 @@ template <
         is_compatible_array_type<Json, CompatibleArrayType>::value or
             std::is_same<typename Json::array_t, CompatibleArrayType>::value,
         int> = 0>
-void to_json(Json &j, CompatibleArrayType const &arr)
+void to_json(Json &j, const  CompatibleArrayType &arr)
 {
   external_constructor<value_t::array>::construct(j, arr);
 }
@@ -568,48 +574,48 @@ template <
     typename Json, typename CompatibleObjectType,
     enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
                 int> = 0>
-void to_json(Json &j, CompatibleObjectType const &arr)
+void to_json(Json &j, const  CompatibleObjectType &arr)
 {
   external_constructor<value_t::object>::construct(j, arr);
 }
 
 template <typename Json>
-void from_json(Json const& j, typename Json::boolean_t& b)
+void from_json(const Json & j, typename Json::boolean_t& b)
 {
   if (!j.is_boolean())
     throw std::domain_error("type must be boolean, but is " + type_name(j));
-  b = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>();
+  b = *j.template get_ptr<const typename Json::boolean_t*>();
 }
 
 template <typename Json>
-void from_json(Json const& j, typename Json::string_t& s)
+void from_json(const Json & j, typename Json::string_t& s)
 {
   if (!j.is_string())
     throw std::domain_error("type must be string, but is " + type_name(j));
-  s = *const_cast<Json&>(j).template get_ptr<typename Json::string_t*>();
+  s = *j.template get_ptr<const typename Json::string_t*>();
 }
 
 template <typename Json>
-void from_json(Json const& j, typename Json::number_float_t& val)
+void from_json(const Json & j, typename Json::number_float_t& val)
 {
   get_arithmetic_value(j, val);
 }
 
 template <typename Json>
-void from_json(Json const& j, typename Json::number_unsigned_t& val)
+void from_json(const Json & j, typename Json::number_unsigned_t& val)
 {
   get_arithmetic_value(j, val);
 }
 
 template <typename Json>
-void from_json(Json const& j, typename Json::number_integer_t& val)
+void from_json(const Json & j, typename Json::number_integer_t& val)
 {
   get_arithmetic_value(j, val);
 }
 
 template <typename Json, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void from_json(Json const &j, UnscopedEnumType& e)
+void from_json(const  Json &j, UnscopedEnumType& e)
 {
   typename std::underlying_type<UnscopedEnumType>::type val = e;
   get_arithmetic_value(j, val);
@@ -617,16 +623,16 @@ void from_json(Json const &j, UnscopedEnumType& e)
 }
 
 template <typename Json>
-void from_json(Json const &j, typename Json::array_t &arr)
+void from_json(const  Json &j, typename Json::array_t &arr)
 {
   if (!j.is_array())
     throw std::domain_error("type must be array, but is " + type_name(j));
-  arr = *const_cast<Json&>(j).template get_ptr<typename Json::array_t*>();
+  arr = *j.template get_ptr<const typename Json::array_t*>();
 }
 
 // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
 template <typename Json, typename T, typename Allocator>
-void from_json(Json const&j, std::forward_list<T, Allocator>& l)
+void from_json(const Json &j, std::forward_list<T, Allocator>& l)
 {
   // do not perform the check when user wants to retrieve jsons
   // (except when it's null.. ?)
@@ -641,13 +647,47 @@ void from_json(Json const&j, std::forward_list<T, Allocator>& l)
     l.push_front(it->template get<T>());
 }
 
+template <typename Json, typename CompatibleArrayType>
+void from_json_array_impl(const  Json &j, CompatibleArrayType &arr, priority_tag<0>)
+{
+  using std::begin;
+  using std::end;
+
+  std::transform(
+      j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json &i)
+      {
+        // get<Json>() returns *this, this won't call a from_json method when
+        // value_type is Json
+        return i.template get<typename CompatibleArrayType::value_type>();
+      });
+}
+
+template <typename Json, typename CompatibleArrayType>
+auto from_json_array_impl(const  Json &j, CompatibleArrayType &arr, priority_tag<1>)
+    -> decltype(
+        arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
+        void())
+{
+  using std::begin;
+  using std::end;
+
+  arr.reserve(j.size());
+  std::transform(
+      j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json &i)
+      {
+        // get<Json>() returns *this, this won't call a from_json method when
+        // value_type is Json
+        return i.template get<typename CompatibleArrayType::value_type>();
+      });
+}
+
 template <
     typename Json, typename CompatibleArrayType,
     enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and
                     not std::is_same<typename Json::array_t,
                                      CompatibleArrayType>::value,
                 int> = 0>
-void from_json(Json const &j, CompatibleArrayType &arr)
+void from_json(const  Json &j, CompatibleArrayType &arr)
 {
   if (j.is_null())
       throw std::domain_error("type must be array, but is " + type_name(j));
@@ -657,16 +697,7 @@ void from_json(Json const &j, CompatibleArrayType &arr)
     if (!j.is_array())
       throw std::domain_error("type must be array, but is " + type_name(j));
   }
-
-  using std::begin;
-  using std::end;
-  std::transform(
-      j.begin(), j.end(), std::inserter(arr, end(arr)), [](Json const &i)
-      {
-        // get<Json>() returns *this, this won't call a from_json method when
-        // value_type is Json
-        return i.template get<typename CompatibleArrayType::value_type>();
-      });
+  from_json_array_impl(j, arr, priority_tag<1>{});
 }
 
 
@@ -674,12 +705,12 @@ template <
     typename Json, typename CompatibleObjectType,
     enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
                 int> = 0>
-void from_json(Json const &j, CompatibleObjectType &obj)
+void from_json(const  Json &j, CompatibleObjectType &obj)
 {
   if (!j.is_object())
     throw std::domain_error("type must be object, but is " + type_name(j));
 
-  auto inner_object = const_cast<Json&>(j).template get_ptr<typename Json::object_t*>();
+  auto inner_object = j.template get_ptr<const typename Json::object_t*>();
   using std::begin;
   using std::end;
   // we could avoid the assignment, but this might require a for loop, which
@@ -700,16 +731,16 @@ template <
             not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
             not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
         int> = 0>
-void from_json(Json const &j, ArithmeticType &val)
+void from_json(const  Json &j, ArithmeticType &val)
 {
-  if (j.is_number_integer())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_integer_t*>();
-  else if (j.is_number_unsigned())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_unsigned_t*>();
+  if (j.is_number_unsigned())
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
+  else if (j.is_number_integer())
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
   else if (j.is_number_float())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::number_float_t*>();
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
   else if (j.is_boolean())
-    val = *const_cast<Json&>(j).template get_ptr<typename Json::boolean_t*>();
+    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>());
   else
     throw std::domain_error("type must be number, but is " + type_name(j));
 }
@@ -717,24 +748,53 @@ void from_json(Json const &j, ArithmeticType &val)
 struct to_json_fn
 {
     template <typename Json, typename T>
-    constexpr auto operator()(Json&& j, T&& val) const
-    noexcept(noexcept(to_json(std::forward<Json>(j), std::forward<T>(val))))
-    -> decltype(to_json(std::forward<Json>(j), std::forward<T>(val)),
+    auto call(Json& j, T&& val, priority_tag<1>) const
+    noexcept(noexcept(to_json(j, std::forward<T>(val))))
+    -> decltype(to_json(j, std::forward<T>(val)),
                 void())
     {
-        return to_json(std::forward<Json>(j), std::forward<T>(val));
+        return to_json(j, std::forward<T>(val));
     }
+
+    template <typename Json, typename T>
+    void call(Json&, T&&, priority_tag<0>) const noexcept
+    {
+        static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called");
+    }
+
+public:
+  template <typename Json, typename T>
+  void operator()(Json &j, T &&val) const
+      noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1>{})))
+  {
+      return call(j, std::forward<T>(val), priority_tag<1>{});
+  }
 };
 
 struct from_json_fn
 {
-    template <typename Json, typename T>
-    constexpr auto operator()(Json&& j, T& val) const
-    noexcept(noexcept(from_json(std::forward<Json>(j), val)))
-    -> decltype(from_json(std::forward<Json>(j), val), void())
-    {
-        return from_json(std::forward<Json>(j), val);
-    }
+private:
+  template <typename Json, typename T>
+  auto call(const  Json &j, T &val, priority_tag<1>) const
+      noexcept(noexcept(from_json(j, val)))
+          -> decltype(from_json(j, val), void())
+  {
+    return from_json(j, val);
+  }
+
+  template <typename Json, typename T>
+  void call(const Json &, T&, priority_tag<0>) const noexcept
+  {
+      static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called");
+  }
+
+public:
+  template <typename Json, typename T>
+  void operator()(const  Json &j, T &val) const
+      noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1>{})))
+  {
+      return call(j, val, priority_tag<1>{});
+  }
 };
 
 /*!
@@ -756,7 +816,6 @@ struct DecimalSeparator : std::numpunct<char>
         return '.';
     }
 };
-
 }
 
 // taken from ranges-v3
@@ -772,8 +831,8 @@ constexpr T static_const<T>::value;
 
 inline namespace
 {
-constexpr auto const& to_json = static_const<detail::to_json_fn>::value;
-constexpr auto const& from_json = static_const<detail::from_json_fn>::value;
+constexpr const auto & to_json = static_const<detail::to_json_fn>::value;
+constexpr const auto & from_json = static_const<detail::from_json_fn>::value;
 }
 
 // default JSONSerializer template argument, doesn't care about template argument
@@ -788,9 +847,10 @@ struct adl_serializer
     }
 
     template <typename Json, typename T>
-    static void to_json(Json& j, T&& val)
+    static void to_json(Json &j, T &&val) noexcept(
+        noexcept(::nlohmann::to_json(j, std::forward<T>(val))))
     {
-        ::nlohmann::to_json(j, std::forward<T>(val));
+      ::nlohmann::to_json(j, std::forward<T>(val));
     }
 };
 
@@ -888,7 +948,7 @@ class basic_json
 {
   private:
     template <::nlohmann::value_t> friend struct detail::external_constructor;
-    template <typename Json> friend std::string detail::type_name(Json const &);
+    template <typename Json> friend std::string detail::type_name(const  Json &);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -2967,16 +3027,16 @@ class basic_json
                                                       uncvref_t<T>>::value,
             int> = 0>
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
-    // i know there is a special behaviour for boolean_t* and such
     // static assert ?
+    // i know there is a special behaviour for boolean_t* and such
     auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json(
-        std::declval<basic_json_t const &>(), std::declval<uncvref_t<T> &>())))
+        std::declval<const basic_json_t &>(), std::declval<uncvref_t<T> &>())))
         -> uncvref_t<T>
     {
       using type = uncvref_t<T>;
-      static_assert(std::is_default_constructible<type>::value &&
+      static_assert(std::is_default_constructible<type>::value and
                         std::is_copy_constructible<type>::value,
-                    "user-defined types must be DefaultConstructible and "
+                    "Types must be DefaultConstructible and "
                     "CopyConstructible when used with get");
       type ret;
       JSONSerializer<type>::from_json(*this, ret);
@@ -2992,12 +3052,11 @@ class basic_json
                         detail::has_non_default_from_json<basic_json_t,
                                                           uncvref_t<T>>::value,
                     int> = 0>
-    constexpr uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<basic_json_t const&>())))
+    uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t &>())))
     {
       return JSONSerializer<T>::from_json(*this);
     }
 
-    // TODO what to do with those...
     /*!
     @brief get a pointer value (explicit)
 

From e60e458a7e7d9fe6a18fabfc3930711483afb74f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 15 Jan 2017 21:18:58 +0100
Subject: [PATCH 107/174] move static_const to the detail namespace

---
 src/json.hpp      | 25 ++++++++++++-------------
 src/json.hpp.re2c | 25 ++++++++++++-------------
 2 files changed, 24 insertions(+), 26 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 2457f5d7..8e14b5cd 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -797,6 +797,16 @@ public:
   }
 };
 
+// taken from ranges-v3
+template <typename T>
+struct static_const
+{
+    static constexpr T value{};
+};
+
+template <typename T>
+constexpr T static_const<T>::value;
+
 /*!
 @brief helper class to create locales with decimal point
 
@@ -818,21 +828,10 @@ struct DecimalSeparator : std::numpunct<char>
 };
 }
 
-// taken from ranges-v3
-// TODO add doc
-template <typename T>
-struct static_const
-{
-    static constexpr T value{};
-};
-
-template <typename T>
-constexpr T static_const<T>::value;
-
 inline namespace
 {
-constexpr const auto & to_json = static_const<detail::to_json_fn>::value;
-constexpr const auto & from_json = static_const<detail::from_json_fn>::value;
+constexpr const auto & to_json = detail::static_const<detail::to_json_fn>::value;
+constexpr const auto & from_json = detail::static_const<detail::from_json_fn>::value;
 }
 
 // default JSONSerializer template argument, doesn't care about template argument
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 4dbeda8a..f4d0cf8d 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -797,6 +797,16 @@ public:
   }
 };
 
+// taken from ranges-v3
+template <typename T>
+struct static_const
+{
+    static constexpr T value{};
+};
+
+template <typename T>
+constexpr T static_const<T>::value;
+
 /*!
 @brief helper class to create locales with decimal point
 
@@ -818,21 +828,10 @@ struct DecimalSeparator : std::numpunct<char>
 };
 }
 
-// taken from ranges-v3
-// TODO add doc
-template <typename T>
-struct static_const
-{
-    static constexpr T value{};
-};
-
-template <typename T>
-constexpr T static_const<T>::value;
-
 inline namespace
 {
-constexpr const auto & to_json = static_const<detail::to_json_fn>::value;
-constexpr const auto & from_json = static_const<detail::from_json_fn>::value;
+constexpr const auto & to_json = detail::static_const<detail::to_json_fn>::value;
+constexpr const auto & from_json = detail::static_const<detail::from_json_fn>::value;
 }
 
 // default JSONSerializer template argument, doesn't care about template argument

From 1d87097741520289ae5ab4cc49c8db546ccd9209 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 15 Jan 2017 22:08:33 +0100
Subject: [PATCH 108/174] remove some boilerplate

---
 src/json.hpp      | 22 +++++++++++-----------
 src/json.hpp.re2c | 22 +++++++++++-----------
 2 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 8e14b5cd..9d4a548a 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -3019,26 +3019,26 @@ class basic_json
     // the latter is preferred if both are present (since it does not require a default construction of T)
     template <
         typename T,
+                 typename U = uncvref_t<T>,
         enable_if_t<
-            not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                detail::has_from_json<basic_json_t, uncvref_t<T>>::value and
+            not std::is_same<basic_json_t, U>::value and
+                detail::has_from_json<basic_json_t, U>::value and
                 not detail::has_non_default_from_json<basic_json_t,
-                                                      uncvref_t<T>>::value,
+                                                      U>::value,
             int> = 0>
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
     // static assert ?
     // i know there is a special behaviour for boolean_t* and such
-    auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json(
-        std::declval<const basic_json_t &>(), std::declval<uncvref_t<T> &>())))
-        -> uncvref_t<T>
+    auto get() const noexcept(noexcept(JSONSerializer<U>::from_json(
+        std::declval<const basic_json_t &>(), std::declval<U &>())))
+        -> U
     {
-      using type = uncvref_t<T>;
-      static_assert(std::is_default_constructible<type>::value and
-                        std::is_copy_constructible<type>::value,
+      static_assert(std::is_default_constructible<U>::value and
+                        std::is_copy_constructible<U>::value,
                     "Types must be DefaultConstructible and "
                     "CopyConstructible when used with get");
-      type ret;
-      JSONSerializer<type>::from_json(*this, ret);
+      U ret;
+      JSONSerializer<U>::from_json(*this, ret);
       return ret;
     }
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index f4d0cf8d..4b28a032 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -3019,26 +3019,26 @@ class basic_json
     // the latter is preferred if both are present (since it does not require a default construction of T)
     template <
         typename T,
+                 typename U = uncvref_t<T>,
         enable_if_t<
-            not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                detail::has_from_json<basic_json_t, uncvref_t<T>>::value and
+            not std::is_same<basic_json_t, U>::value and
+                detail::has_from_json<basic_json_t, U>::value and
                 not detail::has_non_default_from_json<basic_json_t,
-                                                      uncvref_t<T>>::value,
+                                                      U>::value,
             int> = 0>
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
     // static assert ?
     // i know there is a special behaviour for boolean_t* and such
-    auto get() const noexcept(noexcept(JSONSerializer<uncvref_t<T>>::from_json(
-        std::declval<const basic_json_t &>(), std::declval<uncvref_t<T> &>())))
-        -> uncvref_t<T>
+    auto get() const noexcept(noexcept(JSONSerializer<U>::from_json(
+        std::declval<const basic_json_t &>(), std::declval<U &>())))
+        -> U
     {
-      using type = uncvref_t<T>;
-      static_assert(std::is_default_constructible<type>::value and
-                        std::is_copy_constructible<type>::value,
+      static_assert(std::is_default_constructible<U>::value and
+                        std::is_copy_constructible<U>::value,
                     "Types must be DefaultConstructible and "
                     "CopyConstructible when used with get");
-      type ret;
-      JSONSerializer<type>::from_json(*this, ret);
+      U ret;
+      JSONSerializer<U>::from_json(*this, ret);
       return ret;
     }
 

From af94e712c771cabe446b1f3512dc901d40b97e4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 15 Jan 2017 22:08:49 +0100
Subject: [PATCH 109/174] add basic doxygen documentations

---
 doc/Doxyfile      |   2 +-
 src/json.hpp      | 101 ++++++++++++++++++++++++++++++----------------
 src/json.hpp.re2c | 101 ++++++++++++++++++++++++++++++----------------
 3 files changed, 135 insertions(+), 69 deletions(-)

diff --git a/doc/Doxyfile b/doc/Doxyfile
index 5064a0a0..4d511af3 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -109,7 +109,7 @@ RECURSIVE              = NO
 EXCLUDE                =
 EXCLUDE_SYMLINKS       = NO
 EXCLUDE_PATTERNS       =
-EXCLUDE_SYMBOLS        = nlohmann::anonymous_namespace
+EXCLUDE_SYMBOLS        = nlohmann::detail
 EXAMPLE_PATH           = examples
 EXAMPLE_PATTERNS       =
 EXAMPLE_RECURSIVE      = NO
diff --git a/src/json.hpp b/src/json.hpp
index 9d4a548a..838d2d07 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -116,20 +116,20 @@ namespace nlohmann
 @brief the JSON type enumeration
 
 This enumeration collects the different JSON types. It is internally used
-to distinguish the stored values, and the functions @ref is_null(), @ref
-is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref
-is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and
-@ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and
-@ref is_structured() rely on it.
+to distinguish the stored values, and the functions @ref basic_json::is_null(), @ref
+basic_json::is_object(), @ref basic_json::is_array(), @ref basic_json::is_string(), @ref basic_json::is_boolean(), @ref
+basic_json::is_number() (with @ref basic_json::is_number_integer(), @ref basic_json::is_number_unsigned(), and
+@ref basic_json::is_number_float()), @ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and
+@ref basic_json::is_structured() rely on it.
 
 @note There are three enumeration entries (number_integer,
 number_unsigned, and number_float), because the library distinguishes
-these three types for numbers: @ref number_unsigned_t is used for unsigned
-integers, @ref number_integer_t is used for signed integers, and @ref
-number_float_t is used for floating-point numbers or to approximate
+these three types for numbers: @ref basic_json::number_unsigned_t is used for unsigned
+integers, @ref basic_json::number_integer_t is used for signed integers, and @ref
+basic_json::number_float_t is used for floating-point numbers or to approximate
 integers which do not fit in the limits of their respective type.
 
-@sa @ref basic_json(const value_t value_type) -- create a JSON value with
+@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON value with
 the default value for a given type
 
 @since version 1.0.0
@@ -1800,18 +1800,6 @@ class basic_json
     @liveexample{The following code shows the constructor for different @ref
     value_t values,basic_json__value_t}
 
-    @sa @ref basic_json(std::nullptr_t) -- create a `null` value
-    @sa @ref basic_json(boolean_t value) -- create a boolean value
-    @sa @ref basic_json(const string_t&) -- create a string value
-    @sa @ref basic_json(const object_t&) -- create a object value
-    @sa @ref basic_json(const array_t&) -- create a array value
-    @sa @ref basic_json(const number_float_t) -- create a number
-    (floating-point) value
-    @sa @ref basic_json(const number_integer_t) -- create a number (integer)
-    value
-    @sa @ref basic_json(const number_unsigned_t) -- create a number (unsigned)
-    value
-
     @since version 1.0.0
     */
     basic_json(const value_t value_type)
@@ -1844,9 +1832,21 @@ class basic_json
         assert_invariant();
     }
 
-    // constructor chosen when:
-    // - JSONSerializer::to_json exists for type T
-    // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
+    /*!
+    @brief forwards the parameter to json_serializer<U>::to_json method (U = uncvref_t<T>)
+
+    this constructor is chosen if:
+    - T is not derived from std::istream
+    - T is not @ref basic_json (to avoid hijacking copy/move constructors)
+    - T is not a @ref basic_json nested type (@ref json_pointer, @ref iterator, etc ...)
+    - @ref json_serializer<U> has a to_json(basic_json_t&, T&&) method
+
+    @param[in] val the value to be forwarded
+
+    @throw what json_serializer<U>::to_json throws
+
+    @since version 2.1.0
+    */
     template <typename T, typename U = uncvref_t<T>,
               enable_if_t<not std::is_base_of<std::istream, U>::value and
                               not std::is_same<U, basic_json_t>::value and
@@ -3003,7 +3003,19 @@ class basic_json
     }
 
   public:
-    // if T is basic_json, simply returns *this
+    /*!
+    @brief get special-case overload
+
+    This overloads avoids a lot of template boilerplate, it can be seen as the identity method
+
+    @tparam T type; T == @ref basic_json
+
+    @return a copy of *this
+
+    @complexity Constant.
+
+    @since version 2.1.0
+    */
     template <typename T,
               enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
     basic_json get() const
@@ -3011,12 +3023,21 @@ class basic_json
       return *this;
     }
 
-    // This overload is chosen when:
-    // - T is not basic_json_t
-    // - JSONSerializer<T>::from_json(basic_json const&, T&) exists
-    // - and JSONSerializer<T>::from_json(basic_json const&) does not exist
-    //
-    // the latter is preferred if both are present (since it does not require a default construction of T)
+    /*!
+    @brief get overload for CopyConstructible and DefaultConstructible types
+    construct a default U value, and call @ref json_serializer<U> from_json method with it
+
+    This overloads is chosen if:
+    - U is not @ref basic_json
+    - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&)
+    - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&);
+
+    @return a value of type U 
+
+    @throw what json_serializer<U> from_json method throws
+
+    @since version 2.1.0
+    */
     template <
         typename T,
                  typename U = uncvref_t<T>,
@@ -3042,9 +3063,21 @@ class basic_json
       return ret;
     }
 
-    // This overload is chosen when:
-    // - T is not basic_json_t
-    // - and JSONSerializer<T>::from_json(basic_json const&) does not exist
+    /*!
+    @brief get overload for types than cannot be default constructed or copy constructed
+
+    If @ref json_serializer<U> has both overloads of from_json, this one is chosen
+
+    This overloads is chosen if:
+    - U is not @ref basic_json
+    - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&);
+
+    @return a value of type U 
+
+    @throw what json_serializer<U> from_json method throws
+
+    @since version 2.1.0
+    */
     template <
         typename T,
         enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 4b28a032..a3539180 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -116,20 +116,20 @@ namespace nlohmann
 @brief the JSON type enumeration
 
 This enumeration collects the different JSON types. It is internally used
-to distinguish the stored values, and the functions @ref is_null(), @ref
-is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref
-is_number() (with @ref is_number_integer(), @ref is_number_unsigned(), and
-@ref is_number_float()), @ref is_discarded(), @ref is_primitive(), and
-@ref is_structured() rely on it.
+to distinguish the stored values, and the functions @ref basic_json::is_null(), @ref
+basic_json::is_object(), @ref basic_json::is_array(), @ref basic_json::is_string(), @ref basic_json::is_boolean(), @ref
+basic_json::is_number() (with @ref basic_json::is_number_integer(), @ref basic_json::is_number_unsigned(), and
+@ref basic_json::is_number_float()), @ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and
+@ref basic_json::is_structured() rely on it.
 
 @note There are three enumeration entries (number_integer,
 number_unsigned, and number_float), because the library distinguishes
-these three types for numbers: @ref number_unsigned_t is used for unsigned
-integers, @ref number_integer_t is used for signed integers, and @ref
-number_float_t is used for floating-point numbers or to approximate
+these three types for numbers: @ref basic_json::number_unsigned_t is used for unsigned
+integers, @ref basic_json::number_integer_t is used for signed integers, and @ref
+basic_json::number_float_t is used for floating-point numbers or to approximate
 integers which do not fit in the limits of their respective type.
 
-@sa @ref basic_json(const value_t value_type) -- create a JSON value with
+@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON value with
 the default value for a given type
 
 @since version 1.0.0
@@ -1800,18 +1800,6 @@ class basic_json
     @liveexample{The following code shows the constructor for different @ref
     value_t values,basic_json__value_t}
 
-    @sa @ref basic_json(std::nullptr_t) -- create a `null` value
-    @sa @ref basic_json(boolean_t value) -- create a boolean value
-    @sa @ref basic_json(const string_t&) -- create a string value
-    @sa @ref basic_json(const object_t&) -- create a object value
-    @sa @ref basic_json(const array_t&) -- create a array value
-    @sa @ref basic_json(const number_float_t) -- create a number
-    (floating-point) value
-    @sa @ref basic_json(const number_integer_t) -- create a number (integer)
-    value
-    @sa @ref basic_json(const number_unsigned_t) -- create a number (unsigned)
-    value
-
     @since version 1.0.0
     */
     basic_json(const value_t value_type)
@@ -1844,9 +1832,21 @@ class basic_json
         assert_invariant();
     }
 
-    // constructor chosen when:
-    // - JSONSerializer::to_json exists for type T
-    // - T is not a istream, nor convertible to basic_json (float, vectors, etc)
+    /*!
+    @brief forwards the parameter to json_serializer<U>::to_json method (U = uncvref_t<T>)
+
+    this constructor is chosen if:
+    - T is not derived from std::istream
+    - T is not @ref basic_json (to avoid hijacking copy/move constructors)
+    - T is not a @ref basic_json nested type (@ref json_pointer, @ref iterator, etc ...)
+    - @ref json_serializer<U> has a to_json(basic_json_t&, T&&) method
+
+    @param[in] val the value to be forwarded
+
+    @throw what json_serializer<U>::to_json throws
+
+    @since version 2.1.0
+    */
     template <typename T, typename U = uncvref_t<T>,
               enable_if_t<not std::is_base_of<std::istream, U>::value and
                               not std::is_same<U, basic_json_t>::value and
@@ -3003,7 +3003,19 @@ class basic_json
     }
 
   public:
-    // if T is basic_json, simply returns *this
+    /*!
+    @brief get special-case overload
+
+    This overloads avoids a lot of template boilerplate, it can be seen as the identity method
+
+    @tparam T type; T == @ref basic_json
+
+    @return a copy of *this
+
+    @complexity Constant.
+
+    @since version 2.1.0
+    */
     template <typename T,
               enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
     basic_json get() const
@@ -3011,12 +3023,21 @@ class basic_json
       return *this;
     }
 
-    // This overload is chosen when:
-    // - T is not basic_json_t
-    // - JSONSerializer<T>::from_json(basic_json const&, T&) exists
-    // - and JSONSerializer<T>::from_json(basic_json const&) does not exist
-    //
-    // the latter is preferred if both are present (since it does not require a default construction of T)
+    /*!
+    @brief get overload for CopyConstructible and DefaultConstructible types
+    construct a default U value, and call @ref json_serializer<U> from_json method with it
+
+    This overloads is chosen if:
+    - U is not @ref basic_json
+    - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&)
+    - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&);
+
+    @return a value of type U 
+
+    @throw what json_serializer<U> from_json method throws
+
+    @since version 2.1.0
+    */
     template <
         typename T,
                  typename U = uncvref_t<T>,
@@ -3042,9 +3063,21 @@ class basic_json
       return ret;
     }
 
-    // This overload is chosen when:
-    // - T is not basic_json_t
-    // - and JSONSerializer<T>::from_json(basic_json const&) does not exist
+    /*!
+    @brief get overload for types than cannot be default constructed or copy constructed
+
+    If @ref json_serializer<U> has both overloads of from_json, this one is chosen
+
+    This overloads is chosen if:
+    - U is not @ref basic_json
+    - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&);
+
+    @return a value of type U 
+
+    @throw what json_serializer<U> from_json method throws
+
+    @since version 2.1.0
+    */
     template <
         typename T,
         enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and

From b56117b148b346b78a9928764b03326bce96d3df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Mon, 16 Jan 2017 21:59:47 +0100
Subject: [PATCH 110/174] add noexcept tests

---
 src/json.hpp               | 2 +-
 src/json.hpp.re2c          | 2 +-
 test/src/unit-noexcept.cpp | 5 +++++
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 838d2d07..9c0a8168 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -840,7 +840,7 @@ template <typename = void, typename = void>
 struct adl_serializer
 {
     template <typename Json, typename T>
-    static void from_json(Json&& j, T& val)
+    static void from_json(Json&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<Json>(j), val)))
     {
         ::nlohmann::from_json(std::forward<Json>(j), val);
     }
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index a3539180..8fbff2ad 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -840,7 +840,7 @@ template <typename = void, typename = void>
 struct adl_serializer
 {
     template <typename Json, typename T>
-    static void from_json(Json&& j, T& val)
+    static void from_json(Json&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<Json>(j), val)))
     {
         ::nlohmann::from_json(std::forward<Json>(j), val);
     }
diff --git a/test/src/unit-noexcept.cpp b/test/src/unit-noexcept.cpp
index 212abdf7..de13e057 100644
--- a/test/src/unit-noexcept.cpp
+++ b/test/src/unit-noexcept.cpp
@@ -13,6 +13,8 @@ struct pod_bis {};
 
 void to_json(json &, pod) noexcept;
 void to_json(json &, pod_bis);
+void from_json(const json&, pod) noexcept;
+void from_json(const json&, pod_bis);
 static json j;
 
 static_assert(noexcept(json{}), "");
@@ -25,3 +27,6 @@ static_assert(not noexcept(nlohmann::to_json(j, pod_bis{})), "");
 static_assert(noexcept(json(2)), "");
 static_assert(noexcept(json(test{})), "");
 static_assert(noexcept(json(pod{})), "");
+static_assert(noexcept(j.get<pod>()), "");
+static_assert(not noexcept(j.get<pod_bis>()), "");
+static_assert(noexcept(json(pod{})), "");

From fbac056c381b48499498ca355a811d082998d349 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Mon, 16 Jan 2017 23:23:06 +0100
Subject: [PATCH 111/174] add readme

---
 README.md | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 213 insertions(+)

diff --git a/README.md b/README.md
index 69676370..b64c1417 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,7 @@
   - [Conversion from STL containers](#conversion-from-stl-containers)
   - [JSON Pointer and JSON Patch](#json-pointer-and-json-patch)
   - [Implicit conversions](#implicit-conversions)
+  - [Conversions to arbitrary types](#arbitrary-types-conversions)
   - [Binary formats (CBOR and MessagePack)](#binary-formats-cbor-and-messagepack)
 - [Supported compilers](#supported-compilers)
 - [License](#license)
@@ -441,6 +442,218 @@ int vi = jn.get<int>();
 
 // etc.
 ```
+### Arbitrary types conversions
+
+Every type can be serialized in JSON, not just STL-containers and scalar types.
+Usually, you would do something along those lines:
+
+```cpp
+namespace ns {
+struct person { std::string name; std::string address; int age; };
+}
+// convert to JSON
+json j;
+ns::person p = createSomeone();
+j["name"] = p.name;
+j["address"] = p.address;
+j["age"] = p.age;
+
+// ...
+
+// convert from JSON
+ns::person p {j["name"].get<std::string>(), j["address"].get<std::string>(), j["age"].get<int>()};
+```
+
+It works, but that's quite a lot of boilerplate.. Hopefully, there's a better way:
+
+```cpp
+ns::person p = createPerson();
+json j = p;
+
+auto p2 = j.get<ns::person>();
+assert(p == p2);
+```
+
+#### Basic usage
+
+To make this work with one of your types, you only need to provide two methods:
+
+```cpp
+using nlohmann::json;
+
+namespace ns {
+void to_json(json& j, person const& p)
+{
+  j = json{{"name", p.name}, {"address", p.address}, {"age", p.age}};
+}
+
+void from_json(json const& j, person& p)
+{
+  p.name = j["name"].get<std::string>();
+  p.address = j["address"].get<std::string>();
+  p.age = j["age"].get<int>();
+}
+} // namespace ns
+```
+
+That's all. When calling the json constructor with your type, your custom `to_json` method will be automatically called.
+Likewise, when calling `get<your_type>()`, the `from_json` method will be called.
+
+Some important things:
+
+* Those methods **MUST** be in your type's namespace, or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined).
+* When using `get<your_type>()`, `your_type` **MUST** be DefaultConstructible and CopyConstructible (There is a way to bypass those requirements described later)
+
+#### How do I convert third-party types?
+
+This requires a bit more advanced technique.
+But first, let's see how this conversion mechanism works:
+
+The library uses **JSON Serializers** to convert types to json.
+The default serializer for `nlohmann::json` is `nlohmann::adl_serializer` (ADL means [Argument-Dependent Lookup](http://en.cppreference.com/w/cpp/language/adl))
+
+It is implemented like this (simplified):
+
+```cpp
+template <typename T>
+struct adl_serializer
+{
+  static void to_json(json& j, const T& value)
+  {
+    // calls the "to_json" method in T's namespace
+  }
+  
+  static void from_json(const json& j, T& value)
+  {
+    // same thing, but with the "from_json" method
+  }
+};
+```
+
+This serializer works fine when you have control over the type's namespace.
+However, what about `boost::optional`, or `std::filesystem::path` (C++17)?
+
+Hijacking the `boost` namespace is pretty bad, and it's illegal to add something other than template specializations to `std`...
+
+To solve this, you need to add a specialization of `adl_serializer` to the `nlohmann` namespace, here's an example:
+
+```cpp
+// partial specialization (full specialization works too)
+namespace nlohmann {
+template <typename T>
+struct adl_serializer<boost::optional<T>>
+{
+  static void to_json(json& j, const boost::optional<T>& opt)
+  {
+    if (opt == boost::none)
+      j = nullptr;
+    else
+      j = *opt; // this will call adl_serializer<T>::to_json, which will find the free function to_json in T's namespace!
+  }
+  
+  static void from_json(const json& j, boost::optional<T>& opt)
+  {
+    if (!j.is_null())
+      opt = j.get<T>(); // same as above, but with adl_serializer<T>::from_json
+  }
+};
+}
+```
+
+#### How can I use `get()` for non-default constructible/non-copyable types?
+
+There is a way, if your type is **MoveConstructible**.
+You will need to specialize the `adl_serializer` as well, but with a special `from_json` overload:
+
+```cpp
+struct move_only_type {
+  move_only_type() = delete;
+  move_only_type(int ii): i(ii) {}
+  move_only_type(const move_only_type&) = delete;
+  move_only_type(move_only_type&&) = default;
+  :
+  int i;
+};
+
+namespace nlohmann {
+template <>
+struct adl_serializer<move_only_type>
+{
+  // note: the return type is no longer 'void', and the method only takes one argument
+  static move_only_type from_json(const json& j)
+  {
+    return {j.get<int>()};
+  }
+  
+  // Here's the catch! You must provide a to_json method!
+  // Otherwise you will not be able to convert move_only_type to json,
+  // since you fully specialized adl_serializer on that type
+  static void to_json(json& j, move_only_type t)
+  {
+    j = t.i;
+  }
+};
+}
+```
+
+#### Can I write my own serializer? (Advanced use)
+
+Yes. You might want to take a look at `unit-udt.cpp` in the test suite, to see a few examples.
+
+If you write your own serializer, you'll need to do a few things:
+
+* use a different `basic_json` alias than nlohmann::json (the last template parameter of basic_json is the JSONSerializer)
+* use your `basic_json` alias (or a template parameter) in all your `to_json`/`from_json` methods
+* use `nlohmann::to_json` and `nlohmann::from_json` when you need ADL
+
+Here is an example, without simplifications, that only accepts types with a size <= 32, and uses ADL.
+
+```cpp
+// You should use void as a second template argument if you don't need compile-time checks on T
+template <typename T, typename SFINAE = typename std::enable_if<sizeof(T) <= 32>::type>
+struct less_than_32_serializer // if someone tries to use a type bigger than 32, the compiler will complain
+{
+  template <typename Json>
+  static void to_json(Json& j, T value)
+  {
+    // we want to use ADL, and call the correct to_json overload
+    using nlohmann::to_json; // this method is called by adl_serializer, this is where the magic happens
+    to_json(j, value);
+  }
+  
+  template <typename Json>
+  static void from_json(const Json& j, T& value)
+  {
+    // same thing here
+    using nlohmann::from_json;
+    from_json(j, value);
+  }
+};
+```
+
+Be **very** careful when reimplementing your serializer, you can stack overflow if you don't pay attention:
+
+```cpp
+template <typename T, void>
+struct bad_serializer
+{
+  template <typename Json>
+  static void to_json(Json& j, const T& value)
+  {
+    // this calls Json::json_serializer<T>::to_json(j, value);
+    // if Json::json_serializer == bad_serializer ... oops!
+    j = value;
+  }
+  
+  template <typename Json>
+  static void to_json(const Json& j, T& value)
+  {
+    // this calls Json::json_serializer<T>::from_json(j, value);
+    // if Json::json_serializer == bad_serializer ... oops!
+    value = j.template get<T>(); // oops!
+  }
+};
+```
 
 ### Binary formats (CBOR and MessagePack)
 

From 3e15b551e01679bca7e27d08d39aaca6774465cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Tue, 17 Jan 2017 10:32:35 +0100
Subject: [PATCH 112/174] run make pretty

---
 src/json.hpp                  | 6492 ++++++++++++++++++---------------
 src/json.hpp.re2c             | 5270 +++++++++++++-------------
 test/src/unit-conversions.cpp |    8 +-
 test/src/unit-noexcept.cpp    |    4 +-
 test/src/unit-regression.cpp  |    2 +-
 test/src/unit-udt.cpp         |  214 +-
 6 files changed, 6274 insertions(+), 5716 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 9c0a8168..fc7b60f2 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -136,15 +136,15 @@ the default value for a given type
 */
 enum class value_t : uint8_t
 {
-  null,            ///< null value
-  object,          ///< object (unordered set of name/value pairs)
-  array,           ///< array (ordered collection of values)
-  string,          ///< string value
-  boolean,         ///< boolean value
-  number_integer,  ///< number value (signed integer)
-  number_unsigned, ///< number value (unsigned integer)
-  number_float,    ///< number value (floating-point)
-  discarded        ///< discarded by the the parser callback function
+    null,            ///< null value
+    object,          ///< object (unordered set of name/value pairs)
+    array,           ///< array (ordered collection of values)
+    string,          ///< string value
+    boolean,         ///< boolean value
+    number_integer,  ///< number value (signed integer)
+    number_unsigned, ///< number value (unsigned integer)
+    number_float,    ///< number value (floating-point)
+    discarded        ///< discarded by the the parser callback function
 };
 
 // alias templates to reduce boilerplate
@@ -168,29 +168,29 @@ using is_unscoped_enum =
 
 namespace detail
 {
-template <typename Json> std::string type_name(const  Json &j)
+template <typename Json> std::string type_name(const  Json& j)
 {
-  switch (j.m_type)
-  {
-  case value_t::null:
-    return "null";
-  case value_t::object:
-    return "object";
-  case value_t::array:
-    return "array";
-  case value_t::string:
-    return "string";
-  case value_t::boolean:
-    return "boolean";
-  case value_t::discarded:
-    return "discarded";
-  default:
-    return "number";
-  }
+    switch (j.m_type)
+    {
+        case value_t::null:
+            return "null";
+        case value_t::object:
+            return "object";
+        case value_t::array:
+            return "array";
+        case value_t::string:
+            return "string";
+        case value_t::boolean:
+            return "boolean";
+        case value_t::discarded:
+            return "discarded";
+        default:
+            return "number";
+    }
 }
 
 // dispatch utility (taken from ranges-v3)
-template <unsigned N> struct priority_tag : priority_tag<N - 1> {};
+template <unsigned N> struct priority_tag : priority_tag < N - 1 > {};
 
 template <> struct priority_tag<0> {};
 
@@ -201,120 +201,120 @@ template <value_t> struct external_constructor;
 template <>
 struct external_constructor<value_t::boolean>
 {
-  template <typename Json>
-  static void construct(Json &j, typename Json::boolean_t b) noexcept
-  {
-    j.m_type = value_t::boolean;
-    j.m_value = b;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, typename Json::boolean_t b) noexcept
+    {
+        j.m_type = value_t::boolean;
+        j.m_value = b;
+        j.assert_invariant();
+    }
 };
 
 template <>
 struct external_constructor<value_t::string>
 {
-  template <typename Json>
-  static void construct(Json &j, const typename Json::string_t& s)
-  {
-    j.m_type = value_t::string;
-    j.m_value = s;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, const typename Json::string_t& s)
+    {
+        j.m_type = value_t::string;
+        j.m_value = s;
+        j.assert_invariant();
+    }
 };
 
 template <>
 struct external_constructor<value_t::number_float>
 {
-  template <typename Json>
-  static void construct(Json &j, typename Json::number_float_t val) noexcept
-  {
-    // replace infinity and NAN by null
-    if (not std::isfinite(val))
-      j = Json{};
-    else
+    template <typename Json>
+    static void construct(Json& j, typename Json::number_float_t val) noexcept
     {
-      j.m_type = value_t::number_float;
-      j.m_value = val;
+        // replace infinity and NAN by null
+        if (not std::isfinite(val))
+            j = Json{};
+        else
+        {
+            j.m_type = value_t::number_float;
+            j.m_value = val;
+        }
+        j.assert_invariant();
     }
-    j.assert_invariant();
-  }
 };
 
 template <>
 struct external_constructor<value_t::number_unsigned>
 {
-  template <typename Json>
-  static void construct(Json &j, typename Json::number_unsigned_t val) noexcept
-  {
-    j.m_type = value_t::number_unsigned;
-    j.m_value = val;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, typename Json::number_unsigned_t val) noexcept
+    {
+        j.m_type = value_t::number_unsigned;
+        j.m_value = val;
+        j.assert_invariant();
+    }
 };
 
 template <>
 struct external_constructor<value_t::number_integer>
 {
-  template <typename Json>
-  static void construct(Json &j, typename Json::number_integer_t val) noexcept
-  {
-    j.m_type = value_t::number_integer;
-    j.m_value = val;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, typename Json::number_integer_t val) noexcept
+    {
+        j.m_type = value_t::number_integer;
+        j.m_value = val;
+        j.assert_invariant();
+    }
 };
 
 template <>
 struct external_constructor<value_t::array>
 {
-  template <typename Json>
-  static void construct(Json &j, const typename Json::array_t& arr)
-  {
-    j.m_type = value_t::array;
-    j.m_value = arr;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, const typename Json::array_t& arr)
+    {
+        j.m_type = value_t::array;
+        j.m_value = arr;
+        j.assert_invariant();
+    }
 
-  template <typename Json, typename CompatibleArrayType,
-            enable_if_t<not std::is_same<CompatibleArrayType,
-                                         typename Json::array_t>::value,
-                        int> = 0>
-  static void construct(Json &j, const CompatibleArrayType &arr)
-  {
-    using std::begin;
-    using std::end;
-    j.m_type = value_t::array;
-    j.m_value.array =
-        j.template create<typename Json::array_t>(begin(arr), end(arr));
-    j.assert_invariant();
-  }
+    template <typename Json, typename CompatibleArrayType,
+              enable_if_t<not std::is_same<CompatibleArrayType,
+                                           typename Json::array_t>::value,
+                          int> = 0>
+    static void construct(Json& j, const CompatibleArrayType& arr)
+    {
+        using std::begin;
+        using std::end;
+        j.m_type = value_t::array;
+        j.m_value.array =
+            j.template create<typename Json::array_t>(begin(arr), end(arr));
+        j.assert_invariant();
+    }
 };
 
 template <>
 struct external_constructor<value_t::object>
 {
-  template <typename Json>
-  static void construct(Json &j, const typename Json::object_t& obj)
-  {
-    j.m_type = value_t::object;
-    j.m_value = obj;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, const typename Json::object_t& obj)
+    {
+        j.m_type = value_t::object;
+        j.m_value = obj;
+        j.assert_invariant();
+    }
 
-  template <typename Json, typename CompatibleObjectType,
-            enable_if_t<not std::is_same<CompatibleObjectType,
-                                         typename Json::object_t>::value,
-                        int> = 0>
-  static void construct(Json &j, const CompatibleObjectType &obj)
-  {
-    using std::begin;
-    using std::end;
+    template <typename Json, typename CompatibleObjectType,
+              enable_if_t<not std::is_same<CompatibleObjectType,
+                                           typename Json::object_t>::value,
+                          int> = 0>
+    static void construct(Json& j, const CompatibleObjectType& obj)
+    {
+        using std::begin;
+        using std::end;
 
-    j.m_type = value_t::object;
-    j.m_value.object =
-        j.template create<typename Json::object_t>(begin(obj), end(obj));
-    j.assert_invariant();
-  }
+        j.m_type = value_t::object;
+        j.m_value.object =
+            j.template create<typename Json::object_t>(begin(obj), end(obj));
+        j.assert_invariant();
+    }
 };
 
 // Implementation of 2 C++17 constructs: conjunction, negation.
@@ -380,11 +380,11 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 template<class BasicJson, class CompatibleObjectType>
 struct is_compatible_object_type
 {
-    static auto constexpr value = is_compatible_object_type_impl<
-        conjunction<negation<std::is_same<void, CompatibleObjectType>>,
-                    has_mapped_type<CompatibleObjectType>,
-                    has_key_type<CompatibleObjectType>>::value,
-        typename BasicJson::object_t, CompatibleObjectType>::value;
+    static auto constexpr value = is_compatible_object_type_impl <
+                                  conjunction<negation<std::is_same<void, CompatibleObjectType>>,
+                                  has_mapped_type<CompatibleObjectType>,
+                                  has_key_type<CompatibleObjectType>>::value,
+                                  typename BasicJson::object_t, CompatibleObjectType >::value;
 };
 
 template <typename BasicJson, typename T>
@@ -400,17 +400,17 @@ struct is_basic_json_nested_type
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-  // TODO concept Container?
-  // this might not make VS happy
-    static auto constexpr value = 
+    // TODO concept Container?
+    // this might not make VS happy
+    static auto constexpr value =
         conjunction<negation<std::is_same<void, CompatibleArrayType>>,
-                    negation<is_compatible_object_type<
-                        BasicJson, CompatibleArrayType>>,
-                    negation<std::is_constructible<typename BasicJson::string_t,
-                                                   CompatibleArrayType>>,
-                    negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>,
-                    has_value_type<CompatibleArrayType>,
-                    has_iterator<CompatibleArrayType>>::value;
+        negation<is_compatible_object_type<
+        BasicJson, CompatibleArrayType>>,
+        negation<std::is_constructible<typename BasicJson::string_t,
+        CompatibleArrayType>>,
+        negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>,
+        has_value_type<CompatibleArrayType>,
+        has_iterator<CompatibleArrayType>>::value;
 };
 
 template <bool, typename, typename>
@@ -419,7 +419,7 @@ struct is_compatible_integer_type_impl : std::false_type {};
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
 {
-  // is there an assert somewhere on overflows?
+    // is there an assert somewhere on overflows?
     using RealLimits = std::numeric_limits<RealIntegerType>;
     using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>;
 
@@ -433,11 +433,11 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
-  static constexpr auto
-      value = is_compatible_integer_type_impl <
-                  std::is_integral<CompatibleNumberIntegerType>::value and
-              not std::is_same<bool, CompatibleNumberIntegerType>::value,
-      RealIntegerType, CompatibleNumberIntegerType > ::value;
+    static constexpr auto
+    value = is_compatible_integer_type_impl <
+            std::is_integral<CompatibleNumberIntegerType>::value and
+            not std::is_same<bool, CompatibleNumberIntegerType>::value,
+            RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
@@ -461,261 +461,287 @@ struct has_from_json
 template <typename Json, typename T>
 struct has_non_default_from_json
 {
-private:
-  template <
-      typename U,
-      typename = enable_if_t<std::is_same<
-          T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
-  static int detect(U &&);
-  static void detect(...);
+  private:
+    template <
+        typename U,
+        typename = enable_if_t<std::is_same<
+                                   T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value >>
+    static int detect(U&&);
+    static void detect(...);
 
-public:
-  static constexpr bool value = std::is_integral<decltype(detect(
-      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
+  public:
+    static constexpr bool value = std::is_integral<decltype(detect(
+                                      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
 };
 
 // This trait checks if Json::json_serializer<T>::to_json exists
 template <typename Json, typename T>
 struct has_to_json
 {
-private:
-  template <typename U, typename = decltype(uncvref_t<U>::to_json(
-                            std::declval<Json &>(), std::declval<T>()))>
-  static int detect(U &&);
-  static void detect(...);
+  private:
+    template <typename U, typename = decltype(uncvref_t<U>::to_json(
+                  std::declval<Json&>(), std::declval<T>()))>
+    static int detect(U&&);
+    static void detect(...);
 
-public:
-  static constexpr bool value = std::is_integral<decltype(detect(
-      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
+  public:
+    static constexpr bool value = std::is_integral<decltype(detect(
+                                      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
 };
 
 // overloads for basic_json template parameters
 
 template <typename Json, typename ArithmeticType,
           enable_if_t<std::is_arithmetic<ArithmeticType>::value and
-                          not std::is_same<ArithmeticType,
-                                           typename Json::boolean_t>::value,
+                      not std::is_same<ArithmeticType,
+                                       typename Json::boolean_t>::value,
                       int> = 0>
-void get_arithmetic_value(const  Json &j, ArithmeticType &val)
+void get_arithmetic_value(const  Json& j, ArithmeticType& val)
 {
-  // unsigned must be checked first, since is_number_integer() == true for unsigned
-  if (j.is_number_unsigned())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
-  else if (j.is_number_integer())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
-  else if (j.is_number_float())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
-  else
-    throw std::domain_error("type must be number, but is " + type_name(j));
+    // unsigned must be checked first, since is_number_integer() == true for unsigned
+    if (j.is_number_unsigned())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
+    }
+    else if (j.is_number_integer())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
+    }
+    else if (j.is_number_float())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
+    }
+    else
+    {
+        throw std::domain_error("type must be number, but is " + type_name(j));
+    }
 }
 
 template <typename Json>
-void to_json(Json &j, typename Json::boolean_t b) noexcept
+void to_json(Json& j, typename Json::boolean_t b) noexcept
 {
-  external_constructor<value_t::boolean>::construct(j, b);
+    external_constructor<value_t::boolean>::construct(j, b);
 }
 
 template <typename Json, typename CompatibleString,
           enable_if_t<std::is_constructible<typename Json::string_t,
-                                            CompatibleString>::value,
+                      CompatibleString>::value,
                       int> = 0>
-void to_json(Json &j, const CompatibleString &s)
+void to_json(Json& j, const CompatibleString& s)
 {
-  external_constructor<value_t::string>::construct(j, s);
+    external_constructor<value_t::string>::construct(j, s);
 }
 
 template <typename Json, typename FloatType,
           enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
-void to_json(Json &j, FloatType val) noexcept
+void to_json(Json& j, FloatType val) noexcept
 {
-  external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val));
+    external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val));
 }
 
 
 template <
     typename Json, typename CompatibleNumberUnsignedType,
-   enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t,
-                                         CompatibleNumberUnsignedType>::value,
-                int> = 0>
-void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept
+    enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t,
+                CompatibleNumberUnsignedType>::value,
+                int> = 0 >
+void to_json(Json& j, CompatibleNumberUnsignedType val) noexcept
 {
-  external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val));
+    external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val));
 }
 
 template <
     typename Json, typename CompatibleNumberIntegerType,
-   enable_if_t<is_compatible_integer_type<typename Json::number_integer_t,
-                                         CompatibleNumberIntegerType>::value,
-                int> = 0>
-void to_json(Json &j, CompatibleNumberIntegerType val) noexcept
+    enable_if_t<is_compatible_integer_type<typename Json::number_integer_t,
+                CompatibleNumberIntegerType>::value,
+                int> = 0 >
+void to_json(Json& j, CompatibleNumberIntegerType val) noexcept
 {
-  external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val));
+    external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val));
 }
 
 template <typename Json, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void to_json(Json &j, UnscopedEnumType e) noexcept
+void to_json(Json& j, UnscopedEnumType e) noexcept
 {
-  external_constructor<value_t::number_integer>::construct(j, e);
+    external_constructor<value_t::number_integer>::construct(j, e);
 }
 
 template <
     typename Json, typename CompatibleArrayType,
-    enable_if_t<
+    enable_if_t <
         is_compatible_array_type<Json, CompatibleArrayType>::value or
-            std::is_same<typename Json::array_t, CompatibleArrayType>::value,
-        int> = 0>
-void to_json(Json &j, const  CompatibleArrayType &arr)
+        std::is_same<typename Json::array_t, CompatibleArrayType>::value,
+        int > = 0 >
+void to_json(Json& j, const  CompatibleArrayType& arr)
 {
-  external_constructor<value_t::array>::construct(j, arr);
+    external_constructor<value_t::array>::construct(j, arr);
 }
 
 template <
     typename Json, typename CompatibleObjectType,
     enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
-                int> = 0>
-void to_json(Json &j, const  CompatibleObjectType &arr)
+                int> = 0 >
+void to_json(Json& j, const  CompatibleObjectType& arr)
 {
-  external_constructor<value_t::object>::construct(j, arr);
+    external_constructor<value_t::object>::construct(j, arr);
 }
 
 template <typename Json>
-void from_json(const Json & j, typename Json::boolean_t& b)
+void from_json(const Json& j, typename Json::boolean_t& b)
 {
-  if (!j.is_boolean())
-    throw std::domain_error("type must be boolean, but is " + type_name(j));
-  b = *j.template get_ptr<const typename Json::boolean_t*>();
+    if (!j.is_boolean())
+    {
+        throw std::domain_error("type must be boolean, but is " + type_name(j));
+    }
+    b = *j.template get_ptr<const typename Json::boolean_t*>();
 }
 
 template <typename Json>
-void from_json(const Json & j, typename Json::string_t& s)
+void from_json(const Json& j, typename Json::string_t& s)
 {
-  if (!j.is_string())
-    throw std::domain_error("type must be string, but is " + type_name(j));
-  s = *j.template get_ptr<const typename Json::string_t*>();
+    if (!j.is_string())
+    {
+        throw std::domain_error("type must be string, but is " + type_name(j));
+    }
+    s = *j.template get_ptr<const typename Json::string_t*>();
 }
 
 template <typename Json>
-void from_json(const Json & j, typename Json::number_float_t& val)
+void from_json(const Json& j, typename Json::number_float_t& val)
 {
-  get_arithmetic_value(j, val);
+    get_arithmetic_value(j, val);
 }
 
 template <typename Json>
-void from_json(const Json & j, typename Json::number_unsigned_t& val)
+void from_json(const Json& j, typename Json::number_unsigned_t& val)
 {
-  get_arithmetic_value(j, val);
+    get_arithmetic_value(j, val);
 }
 
 template <typename Json>
-void from_json(const Json & j, typename Json::number_integer_t& val)
+void from_json(const Json& j, typename Json::number_integer_t& val)
 {
-  get_arithmetic_value(j, val);
+    get_arithmetic_value(j, val);
 }
 
 template <typename Json, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void from_json(const  Json &j, UnscopedEnumType& e)
+void from_json(const  Json& j, UnscopedEnumType& e)
 {
-  typename std::underlying_type<UnscopedEnumType>::type val = e;
-  get_arithmetic_value(j, val);
-  e = static_cast<UnscopedEnumType>(val);
+    typename std::underlying_type<UnscopedEnumType>::type val = e;
+    get_arithmetic_value(j, val);
+    e = static_cast<UnscopedEnumType>(val);
 }
 
 template <typename Json>
-void from_json(const  Json &j, typename Json::array_t &arr)
+void from_json(const  Json& j, typename Json::array_t& arr)
 {
-  if (!j.is_array())
-    throw std::domain_error("type must be array, but is " + type_name(j));
-  arr = *j.template get_ptr<const typename Json::array_t*>();
+    if (!j.is_array())
+    {
+        throw std::domain_error("type must be array, but is " + type_name(j));
+    }
+    arr = *j.template get_ptr<const typename Json::array_t*>();
 }
 
 // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
 template <typename Json, typename T, typename Allocator>
-void from_json(const Json &j, std::forward_list<T, Allocator>& l)
+void from_json(const Json& j, std::forward_list<T, Allocator>& l)
 {
-  // do not perform the check when user wants to retrieve jsons
-  // (except when it's null.. ?)
-  if (j.is_null())
-      throw std::domain_error("type must be array, but is " + type_name(j));
-  if (not std::is_same<T, Json>::value)
-  {
-    if (!j.is_array())
-      throw std::domain_error("type must be array, but is " + type_name(j));
-  }
-  for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
-    l.push_front(it->template get<T>());
+    // do not perform the check when user wants to retrieve jsons
+    // (except when it's null.. ?)
+    if (j.is_null())
+    {
+        throw std::domain_error("type must be array, but is " + type_name(j));
+    }
+    if (not std::is_same<T, Json>::value)
+    {
+        if (!j.is_array())
+        {
+            throw std::domain_error("type must be array, but is " + type_name(j));
+        }
+    }
+    for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
+    {
+        l.push_front(it->template get<T>());
+    }
 }
 
 template <typename Json, typename CompatibleArrayType>
-void from_json_array_impl(const  Json &j, CompatibleArrayType &arr, priority_tag<0>)
+void from_json_array_impl(const  Json& j, CompatibleArrayType& arr, priority_tag<0>)
 {
-  using std::begin;
-  using std::end;
+    using std::begin;
+    using std::end;
 
-  std::transform(
-      j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json &i)
-      {
+    std::transform(
+        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json & i)
+    {
         // get<Json>() returns *this, this won't call a from_json method when
         // value_type is Json
         return i.template get<typename CompatibleArrayType::value_type>();
-      });
+    });
 }
 
 template <typename Json, typename CompatibleArrayType>
-auto from_json_array_impl(const  Json &j, CompatibleArrayType &arr, priority_tag<1>)
-    -> decltype(
-        arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
-        void())
+auto from_json_array_impl(const  Json& j, CompatibleArrayType& arr, priority_tag<1>)
+-> decltype(
+    arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
+    void())
 {
-  using std::begin;
-  using std::end;
+    using std::begin;
+    using std::end;
 
-  arr.reserve(j.size());
-  std::transform(
-      j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json &i)
-      {
+    arr.reserve(j.size());
+    std::transform(
+        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json & i)
+    {
         // get<Json>() returns *this, this won't call a from_json method when
         // value_type is Json
         return i.template get<typename CompatibleArrayType::value_type>();
-      });
+    });
 }
 
 template <
     typename Json, typename CompatibleArrayType,
     enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and
-                    not std::is_same<typename Json::array_t,
-                                     CompatibleArrayType>::value,
-                int> = 0>
-void from_json(const  Json &j, CompatibleArrayType &arr)
+                not std::is_same<typename Json::array_t,
+                                 CompatibleArrayType>::value,
+                int> = 0 >
+void from_json(const  Json& j, CompatibleArrayType& arr)
 {
-  if (j.is_null())
-      throw std::domain_error("type must be array, but is " + type_name(j));
-  // when T == Json, do not check if value_t is correct
-  if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
-  {
-    if (!j.is_array())
-      throw std::domain_error("type must be array, but is " + type_name(j));
-  }
-  from_json_array_impl(j, arr, priority_tag<1>{});
+    if (j.is_null())
+    {
+        throw std::domain_error("type must be array, but is " + type_name(j));
+    }
+    // when T == Json, do not check if value_t is correct
+    if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
+    {
+        if (!j.is_array())
+        {
+            throw std::domain_error("type must be array, but is " + type_name(j));
+        }
+    }
+    from_json_array_impl(j, arr, priority_tag<1> {});
 }
 
 
 template <
     typename Json, typename CompatibleObjectType,
     enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
-                int> = 0>
-void from_json(const  Json &j, CompatibleObjectType &obj)
+                int> = 0 >
+void from_json(const  Json& j, CompatibleObjectType& obj)
 {
-  if (!j.is_object())
-    throw std::domain_error("type must be object, but is " + type_name(j));
+    if (!j.is_object())
+    {
+        throw std::domain_error("type must be object, but is " + type_name(j));
+    }
 
-  auto inner_object = j.template get_ptr<const typename Json::object_t*>();
-  using std::begin;
-  using std::end;
-  // we could avoid the assignment, but this might require a for loop, which
-  // might be less efficient than the container constructor for some containers (would it?)
-  obj = CompatibleObjectType(begin(*inner_object), end(*inner_object));
+    auto inner_object = j.template get_ptr<const typename Json::object_t*>();
+    using std::begin;
+    using std::end;
+    // we could avoid the assignment, but this might require a for loop, which
+    // might be less efficient than the container constructor for some containers (would it?)
+    obj = CompatibleObjectType(begin(*inner_object), end(*inner_object));
 }
 
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
@@ -724,25 +750,35 @@ void from_json(const  Json &j, CompatibleObjectType &obj)
 // in case of a custom BooleanType which is not an arithmetic type?
 template <
     typename Json, typename ArithmeticType,
-    enable_if_t<
+    enable_if_t <
         std::is_arithmetic<ArithmeticType>::value and
-            not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and
-            not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and
-            not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
-            not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
-        int> = 0>
-void from_json(const  Json &j, ArithmeticType &val)
+        not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and
+        not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and
+        not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
+        not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
+        int > = 0 >
+void from_json(const  Json& j, ArithmeticType& val)
 {
-  if (j.is_number_unsigned())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
-  else if (j.is_number_integer())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
-  else if (j.is_number_float())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
-  else if (j.is_boolean())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>());
-  else
-    throw std::domain_error("type must be number, but is " + type_name(j));
+    if (j.is_number_unsigned())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
+    }
+    else if (j.is_number_integer())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
+    }
+    else if (j.is_number_float())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
+    }
+    else if (j.is_boolean())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>());
+    }
+    else
+    {
+        throw std::domain_error("type must be number, but is " + type_name(j));
+    }
 }
 
 struct to_json_fn
@@ -762,39 +798,39 @@ struct to_json_fn
         static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called");
     }
 
-public:
-  template <typename Json, typename T>
-  void operator()(Json &j, T &&val) const
-      noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1>{})))
-  {
-      return call(j, std::forward<T>(val), priority_tag<1>{});
-  }
+  public:
+    template <typename Json, typename T>
+    void operator()(Json& j, T&& val) const
+    noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {})))
+    {
+        return call(j, std::forward<T>(val), priority_tag<1> {});
+    }
 };
 
 struct from_json_fn
 {
-private:
-  template <typename Json, typename T>
-  auto call(const  Json &j, T &val, priority_tag<1>) const
-      noexcept(noexcept(from_json(j, val)))
-          -> decltype(from_json(j, val), void())
-  {
-    return from_json(j, val);
-  }
+  private:
+    template <typename Json, typename T>
+    auto call(const  Json& j, T& val, priority_tag<1>) const
+    noexcept(noexcept(from_json(j, val)))
+    -> decltype(from_json(j, val), void())
+    {
+        return from_json(j, val);
+    }
 
-  template <typename Json, typename T>
-  void call(const Json &, T&, priority_tag<0>) const noexcept
-  {
-      static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called");
-  }
+    template <typename Json, typename T>
+    void call(const Json&, T&, priority_tag<0>) const noexcept
+    {
+        static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called");
+    }
 
-public:
-  template <typename Json, typename T>
-  void operator()(const  Json &j, T &val) const
-      noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1>{})))
-  {
-      return call(j, val, priority_tag<1>{});
-  }
+  public:
+    template <typename Json, typename T>
+    void operator()(const  Json& j, T& val) const
+    noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {})))
+    {
+        return call(j, val, priority_tag<1> {});
+    }
 };
 
 // taken from ranges-v3
@@ -830,8 +866,8 @@ struct DecimalSeparator : std::numpunct<char>
 
 inline namespace
 {
-constexpr const auto & to_json = detail::static_const<detail::to_json_fn>::value;
-constexpr const auto & from_json = detail::static_const<detail::from_json_fn>::value;
+constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value;
+constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value;
 }
 
 // default JSONSerializer template argument, doesn't care about template argument
@@ -846,10 +882,10 @@ struct adl_serializer
     }
 
     template <typename Json, typename T>
-    static void to_json(Json &j, T &&val) noexcept(
+    static void to_json(Json& j, T&& val) noexcept(
         noexcept(::nlohmann::to_json(j, std::forward<T>(val))))
     {
-      ::nlohmann::to_json(j, std::forward<T>(val));
+        ::nlohmann::to_json(j, std::forward<T>(val));
     }
 };
 
@@ -947,7 +983,7 @@ class basic_json
 {
   private:
     template <::nlohmann::value_t> friend struct detail::external_constructor;
-    template <typename Json> friend std::string detail::type_name(const  Json &);
+    template <typename Json> friend std::string detail::type_name(const  Json&);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -1849,15 +1885,15 @@ class basic_json
     */
     template <typename T, typename U = uncvref_t<T>,
               enable_if_t<not std::is_base_of<std::istream, U>::value and
-                              not std::is_same<U, basic_json_t>::value and
-                              not detail::is_basic_json_nested_type<
-                                  basic_json_t, U>::value and
-                              detail::has_to_json<basic_json, U>::value,
+                          not std::is_same<U, basic_json_t>::value and
+                          not detail::is_basic_json_nested_type<
+                              basic_json_t, U>::value and
+                          detail::has_to_json<basic_json, U>::value,
                           int> = 0>
-    basic_json(T &&val) noexcept(noexcept(JSONSerializer<U>::to_json(
-        std::declval<basic_json_t &>(), std::forward<T>(val))))
+    basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json(
+            std::declval<basic_json_t&>(), std::forward<T>(val))))
     {
-      JSONSerializer<U>::to_json(*this, std::forward<T>(val));
+        JSONSerializer<U>::to_json(*this, std::forward<T>(val));
     }
 
     /*!
@@ -2013,7 +2049,7 @@ class basic_json
     @since version 1.0.0
     */
     static basic_json array(std::initializer_list<basic_json> init =
-                            std::initializer_list<basic_json>())
+                                std::initializer_list<basic_json>())
     {
         return basic_json(init, false, value_t::array);
     }
@@ -2053,7 +2089,7 @@ class basic_json
     @since version 1.0.0
     */
     static basic_json object(std::initializer_list<basic_json> init =
-                             std::initializer_list<basic_json>())
+                                 std::initializer_list<basic_json>())
     {
         return basic_json(init, false, value_t::object);
     }
@@ -2394,7 +2430,7 @@ class basic_json
         std::is_nothrow_move_assignable<value_t>::value and
         std::is_nothrow_move_constructible<json_value>::value and
         std::is_nothrow_move_assignable<json_value>::value
-                                       )
+    )
     {
         // check that passed value is valid
         other.assert_invariant();
@@ -3020,7 +3056,7 @@ class basic_json
               enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
     basic_json get() const
     {
-      return *this;
+        return *this;
     }
 
     /*!
@@ -3032,7 +3068,7 @@ class basic_json
     - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&)
     - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&);
 
-    @return a value of type U 
+    @return a value of type U
 
     @throw what json_serializer<U> from_json method throws
 
@@ -3040,27 +3076,27 @@ class basic_json
     */
     template <
         typename T,
-                 typename U = uncvref_t<T>,
-        enable_if_t<
+        typename U = uncvref_t<T>,
+        enable_if_t <
             not std::is_same<basic_json_t, U>::value and
-                detail::has_from_json<basic_json_t, U>::value and
-                not detail::has_non_default_from_json<basic_json_t,
-                                                      U>::value,
-            int> = 0>
+            detail::has_from_json<basic_json_t, U>::value and
+            not detail::has_non_default_from_json<basic_json_t,
+                    U>::value,
+            int > = 0 >
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
     // static assert ?
     // i know there is a special behaviour for boolean_t* and such
     auto get() const noexcept(noexcept(JSONSerializer<U>::from_json(
-        std::declval<const basic_json_t &>(), std::declval<U &>())))
-        -> U
+                                           std::declval<const basic_json_t&>(), std::declval<U&>())))
+    -> U
     {
-      static_assert(std::is_default_constructible<U>::value and
-                        std::is_copy_constructible<U>::value,
-                    "Types must be DefaultConstructible and "
-                    "CopyConstructible when used with get");
-      U ret;
-      JSONSerializer<U>::from_json(*this, ret);
-      return ret;
+        static_assert(std::is_default_constructible<U>::value and
+        std::is_copy_constructible<U>::value,
+        "Types must be DefaultConstructible and "
+        "CopyConstructible when used with get");
+        U ret;
+        JSONSerializer<U>::from_json(*this, ret);
+        return ret;
     }
 
     /*!
@@ -3072,7 +3108,7 @@ class basic_json
     - U is not @ref basic_json
     - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&);
 
-    @return a value of type U 
+    @return a value of type U
 
     @throw what json_serializer<U> from_json method throws
 
@@ -3081,12 +3117,12 @@ class basic_json
     template <
         typename T,
         enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                        detail::has_non_default_from_json<basic_json_t,
-                                                          uncvref_t<T>>::value,
-                    int> = 0>
-    uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t &>())))
+                    detail::has_non_default_from_json<basic_json_t,
+                            uncvref_t<T>>::value,
+                    int> = 0 >
+    uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
-      return JSONSerializer<T>::from_json(*this);
+        return JSONSerializer<T>::from_json(*this);
     }
 
     /*!
@@ -3168,8 +3204,8 @@ class basic_json
     {
         // get the type of the PointerType (remove pointer and const)
         using pointee_t = typename std::remove_const<typename
-                std::remove_pointer<typename
-                                    std::remove_const<PointerType>::type>::type>::type;
+                          std::remove_pointer<typename
+                          std::remove_const<PointerType>::type>::type>::type;
         // make sure the type matches the allowed types
         static_assert(
             std::is_same<object_t, pointee_t>::value
@@ -3196,8 +3232,8 @@ class basic_json
     {
         // get the type of the PointerType (remove pointer and const)
         using pointee_t = typename std::remove_const<typename
-                std::remove_pointer<typename
-                                    std::remove_const<PointerType>::type>::type>::type;
+                          std::remove_pointer<typename
+                          std::remove_const<PointerType>::type>::type>::type;
         // make sure the type matches the allowed types
         static_assert(
             std::is_same<object_t, pointee_t>::value
@@ -4250,14 +4286,14 @@ class basic_json
             case value_t::object:
             {
                 result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator,
-                        last.m_it.object_iterator);
+                                              last.m_it.object_iterator);
                 break;
             }
 
             case value_t::array:
             {
                 result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator,
-                        last.m_it.array_iterator);
+                                             last.m_it.array_iterator);
                 break;
             }
 
@@ -5474,9 +5510,9 @@ class basic_json
         // insert to array and return iterator
         iterator result(this);
         result.m_it.array_iterator = m_value.array->insert(
-            pos.m_it.array_iterator,
-            first.m_it.array_iterator,
-            last.m_it.array_iterator);
+                                         pos.m_it.array_iterator,
+                                         first.m_it.array_iterator,
+                                         last.m_it.array_iterator);
         return result;
     }
 
@@ -5546,7 +5582,7 @@ class basic_json
         std::is_nothrow_move_assignable<value_t>::value and
         std::is_nothrow_move_constructible<json_value>::value and
         std::is_nothrow_move_assignable<json_value>::value
-                                       )
+    )
     {
         std::swap(m_type, other.m_type);
         std::swap(m_value, other.m_value);
@@ -7871,7 +7907,10 @@ class basic_json
 
     @since version 1.0.0
     */
-    std::string type_name() const { return detail::type_name(*this); }
+    std::string type_name() const
+    {
+        return detail::type_name(*this);
+    }
 
   private:
     /*!
@@ -8086,13 +8125,13 @@ class basic_json
                         o << (pretty_print ? ",\n" : ",");
                     }
                     o << string_t(new_indent, ' ') << "\""
-                                                    << escape_string(i->first) << "\":"
-                                                            << (pretty_print ? " " : "");
-                                                            i->second.dump(o, pretty_print, indent_step, new_indent);
+                      << escape_string(i->first) << "\":"
+                      << (pretty_print ? " " : "");
+                    i->second.dump(o, pretty_print, indent_step, new_indent);
                 }
 
-                                                        // decrease indentation
-                                                        if (pretty_print)
+                // decrease indentation
+                if (pretty_print)
                 {
                     new_indent -= indent_step;
                     o << "\n";
@@ -8137,16 +8176,16 @@ class basic_json
                 }
 
                 o << string_t(new_indent, ' ') << "]";
-                   return;
+                return;
             }
 
-               case value_t::string:
+            case value_t::string:
             {
                 o << string_t("\"") << escape_string(*m_value.string) << "\"";
-                                     return;
+                return;
             }
 
-                                 case value_t::boolean:
+            case value_t::boolean:
             {
                 o << (m_value.boolean ? "true" : "false");
                 return;
@@ -8220,126 +8259,126 @@ class basic_json
     */
     class primitive_iterator_t
     {
-        public:
+      public:
 
         difference_type get_value() const noexcept
-    {
-        return m_it;
-    }
-    /// set iterator to a defined beginning
-    void set_begin() noexcept
-    {
-        m_it = begin_value;
-    }
+        {
+            return m_it;
+        }
+        /// set iterator to a defined beginning
+        void set_begin() noexcept
+        {
+            m_it = begin_value;
+        }
 
-    /// set iterator to a defined past the end
-    void set_end() noexcept
-    {
-        m_it = end_value;
-    }
+        /// set iterator to a defined past the end
+        void set_end() noexcept
+        {
+            m_it = end_value;
+        }
 
-    /// return whether the iterator can be dereferenced
-    constexpr bool is_begin() const noexcept
-    {
-        return (m_it == begin_value);
-    }
+        /// return whether the iterator can be dereferenced
+        constexpr bool is_begin() const noexcept
+        {
+            return (m_it == begin_value);
+        }
 
-    /// return whether the iterator is at end
-    constexpr bool is_end() const noexcept
-    {
-        return (m_it == end_value);
-    }
+        /// return whether the iterator is at end
+        constexpr bool is_end() const noexcept
+        {
+            return (m_it == end_value);
+        }
 
-    friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it == rhs.m_it;
-    }
+        friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it == rhs.m_it;
+        }
 
-    friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return !(lhs == rhs);
-    }
+        friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return !(lhs == rhs);
+        }
 
-    friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it < rhs.m_it;
-    }
+        friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it < rhs.m_it;
+        }
 
-    friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it <= rhs.m_it;
-    }
+        friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it <= rhs.m_it;
+        }
 
-    friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it > rhs.m_it;
-    }
+        friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it > rhs.m_it;
+        }
 
-    friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it >= rhs.m_it;
-    }
+        friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it >= rhs.m_it;
+        }
 
-    primitive_iterator_t operator+(difference_type i)
-    {
-        auto result = *this;
-        result += i;
-        return result;
-    }
+        primitive_iterator_t operator+(difference_type i)
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
 
-    friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it - rhs.m_it;
-    }
+        friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it - rhs.m_it;
+        }
 
-    friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it)
-    {
-        return os << it.m_it;
-    }
+        friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it)
+        {
+            return os << it.m_it;
+        }
 
-    primitive_iterator_t& operator++()
-    {
-        ++m_it;
-        return *this;
-    }
+        primitive_iterator_t& operator++()
+        {
+            ++m_it;
+            return *this;
+        }
 
-    primitive_iterator_t& operator++(int)
-    {
-        m_it++;
-        return *this;
-    }
+        primitive_iterator_t& operator++(int)
+        {
+            m_it++;
+            return *this;
+        }
 
-    primitive_iterator_t& operator--()
-    {
-        --m_it;
-        return *this;
-    }
+        primitive_iterator_t& operator--()
+        {
+            --m_it;
+            return *this;
+        }
 
-    primitive_iterator_t& operator--(int)
-    {
-        m_it--;
-        return *this;
-    }
+        primitive_iterator_t& operator--(int)
+        {
+            m_it--;
+            return *this;
+        }
 
-    primitive_iterator_t& operator+=(difference_type n)
-    {
-        m_it += n;
-        return *this;
-    }
+        primitive_iterator_t& operator+=(difference_type n)
+        {
+            m_it += n;
+            return *this;
+        }
 
-    primitive_iterator_t& operator-=(difference_type n)
-    {
-        m_it -= n;
-        return *this;
-    }
+        primitive_iterator_t& operator-=(difference_type n)
+        {
+            m_it -= n;
+            return *this;
+        }
 
-    private:
-    static constexpr difference_type begin_value = 0;
-    static constexpr difference_type end_value = begin_value + 1;
+      private:
+        static constexpr difference_type begin_value = 0;
+        static constexpr difference_type end_value = begin_value + 1;
 
-    /// iterator as signed integer type
-    difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
-                                              };
+        /// iterator as signed integer type
+        difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
+    };
 
     /*!
     @brief an iterator value
@@ -8359,104 +8398,104 @@ class basic_json
 
         /// create an uninitialized internal_iterator
         internal_iterator() noexcept
-        : object_iterator(), array_iterator(), primitive_iterator()
-    {}
+            : object_iterator(), array_iterator(), primitive_iterator()
+        {}
     };
 
     /// proxy class for the iterator_wrapper functions
     template<typename IteratorType>
     class iteration_proxy
     {
-        private:
+      private:
         /// helper class for iteration
         class iteration_proxy_internal
         {
-            private:
+          private:
             /// the iterator
             IteratorType anchor;
             /// an index for arrays (used to create key names)
             size_t array_index = 0;
 
-            public:
+          public:
             explicit iteration_proxy_internal(IteratorType it) noexcept
-            : anchor(it)
-    {}
+                : anchor(it)
+            {}
 
-    /// dereference operator (needed for range-based for)
-    iteration_proxy_internal& operator*()
-    {
-        return *this;
-    }
-
-    /// increment operator (needed for range-based for)
-    iteration_proxy_internal& operator++()
-    {
-        ++anchor;
-        ++array_index;
-
-        return *this;
-    }
-
-    /// inequality operator (needed for range-based for)
-    bool operator!= (const iteration_proxy_internal& o) const
-    {
-        return anchor != o.anchor;
-    }
-
-    /// return key of the iterator
-    typename basic_json::string_t key() const
-    {
-        assert(anchor.m_object != nullptr);
-
-        switch (anchor.m_object->type())
-        {
-            // use integer array index as key
-            case value_t::array:
+            /// dereference operator (needed for range-based for)
+            iteration_proxy_internal& operator*()
             {
-                return std::to_string(array_index);
+                return *this;
             }
 
-            // use key from the object
-            case value_t::object:
+            /// increment operator (needed for range-based for)
+            iteration_proxy_internal& operator++()
             {
-                return anchor.key();
+                ++anchor;
+                ++array_index;
+
+                return *this;
             }
 
-            // use an empty key for all primitive types
-            default:
+            /// inequality operator (needed for range-based for)
+            bool operator!= (const iteration_proxy_internal& o) const
             {
-                return "";
+                return anchor != o.anchor;
             }
-        }
-    }
 
-    /// return value of the iterator
-    typename IteratorType::reference value() const
-    {
-        return anchor.value();
-    }
+            /// return key of the iterator
+            typename basic_json::string_t key() const
+            {
+                assert(anchor.m_object != nullptr);
+
+                switch (anchor.m_object->type())
+                {
+                    // use integer array index as key
+                    case value_t::array:
+                    {
+                        return std::to_string(array_index);
+                    }
+
+                    // use key from the object
+                    case value_t::object:
+                    {
+                        return anchor.key();
+                    }
+
+                    // use an empty key for all primitive types
+                    default:
+                    {
+                        return "";
+                    }
+                }
+            }
+
+            /// return value of the iterator
+            typename IteratorType::reference value() const
+            {
+                return anchor.value();
+            }
         };
 
-    /// the container to iterate
-    typename IteratorType::reference container;
+        /// the container to iterate
+        typename IteratorType::reference container;
 
-    public:
-    /// construct iteration proxy from a container
-    explicit iteration_proxy(typename IteratorType::reference cont)
-    : container(cont)
-    {}
+      public:
+        /// construct iteration proxy from a container
+        explicit iteration_proxy(typename IteratorType::reference cont)
+            : container(cont)
+        {}
 
-    /// return iterator begin (needed for range-based for)
-    iteration_proxy_internal begin() noexcept
-    {
-        return iteration_proxy_internal(container.begin());
-    }
+        /// return iterator begin (needed for range-based for)
+        iteration_proxy_internal begin() noexcept
+        {
+            return iteration_proxy_internal(container.begin());
+        }
 
-    /// return iterator end (needed for range-based for)
-    iteration_proxy_internal end() noexcept
-    {
-        return iteration_proxy_internal(container.end());
-    }
+        /// return iterator end (needed for range-based for)
+        iteration_proxy_internal end() noexcept
+        {
+            return iteration_proxy_internal(container.end());
+        }
     };
 
   public:
@@ -8480,7 +8519,7 @@ class basic_json
     @since version 1.0.0, simplified in version 2.0.9
     */
     template<typename U>
-  class iter_impl : public std::iterator<std::random_access_iterator_tag, U>
+    class iter_impl : public std::iterator<std::random_access_iterator_tag, U>
     {
         /// allow basic_json to access private members
         friend class basic_json;
@@ -8490,19 +8529,19 @@ class basic_json
                       or std::is_same<U, const basic_json>::value,
                       "iter_impl only accepts (const) basic_json");
 
-        public:
+      public:
         /// the type of the values when the iterator is dereferenced
         using value_type = typename basic_json::value_type;
         /// a type to represent differences between iterators
         using difference_type = typename basic_json::difference_type;
         /// defines a pointer to the type iterated over (value_type)
         using pointer = typename std::conditional<std::is_const<U>::value,
-                typename basic_json::const_pointer,
-                typename basic_json::pointer>::type;
+              typename basic_json::const_pointer,
+              typename basic_json::pointer>::type;
         /// defines a reference to the type iterated over (value_type)
         using reference = typename std::conditional<std::is_const<U>::value,
-                typename basic_json::const_reference,
-                typename basic_json::reference>::type;
+              typename basic_json::const_reference,
+              typename basic_json::reference>::type;
         /// the category of the iterator
         using iterator_category = std::bidirectional_iterator_tag;
 
@@ -8516,566 +8555,566 @@ class basic_json
         @post The iterator is initialized; i.e. `m_object != nullptr`.
         */
         explicit iter_impl(pointer object) noexcept
-        : m_object(object)
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
+            : m_object(object)
         {
-            case basic_json::value_t::object:
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
             {
-                m_it.object_iterator = typename object_t::iterator();
-                break;
-            }
-
-            case basic_json::value_t::array:
-            {
-                m_it.array_iterator = typename array_t::iterator();
-                break;
-            }
-
-            default:
-            {
-                m_it.primitive_iterator = primitive_iterator_t();
-                break;
-            }
-        }
-    }
-
-    /*
-    Use operator `const_iterator` instead of `const_iterator(const iterator&
-    other) noexcept` to avoid two class definitions for @ref iterator and
-    @ref const_iterator.
-
-    This function is only called if this class is an @ref iterator. If this
-    class is a @ref const_iterator this function is not called.
-    */
-    operator const_iterator() const
-    {
-        const_iterator ret;
-
-        if (m_object)
-        {
-            ret.m_object = m_object;
-            ret.m_it = m_it;
-        }
-
-        return ret;
-    }
-
-    /*!
-    @brief copy constructor
-    @param[in] other  iterator to copy from
-    @note It is not checked whether @a other is initialized.
-    */
-    iter_impl(const iter_impl& other) noexcept
-    : m_object(other.m_object), m_it(other.m_it)
-    {}
-
-    /*!
-    @brief copy assignment
-    @param[in,out] other  iterator to copy from
-    @note It is not checked whether @a other is initialized.
-    */
-    iter_impl& operator=(iter_impl other) noexcept(
-        std::is_nothrow_move_constructible<pointer>::value and
-        std::is_nothrow_move_assignable<pointer>::value and
-        std::is_nothrow_move_constructible<internal_iterator>::value and
-        std::is_nothrow_move_assignable<internal_iterator>::value
-                                       )
-    {
-        std::swap(m_object, other.m_object);
-        std::swap(m_it, other.m_it);
-        return *this;
-    }
-
-    private:
-    /*!
-    @brief set the iterator to the first value
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    void set_begin() noexcept
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                m_it.object_iterator = m_object->m_value.object->begin();
-                break;
-            }
-
-            case basic_json::value_t::array:
-            {
-                m_it.array_iterator = m_object->m_value.array->begin();
-                break;
-            }
-
-            case basic_json::value_t::null:
-            {
-                // set to end so begin()==end() is true: null is empty
-                m_it.primitive_iterator.set_end();
-                break;
-            }
-
-            default:
-            {
-                m_it.primitive_iterator.set_begin();
-                break;
-            }
-        }
-    }
-
-    /*!
-    @brief set the iterator past the last value
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    void set_end() noexcept
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                m_it.object_iterator = m_object->m_value.object->end();
-                break;
-            }
-
-            case basic_json::value_t::array:
-            {
-                m_it.array_iterator = m_object->m_value.array->end();
-                break;
-            }
-
-            default:
-            {
-                m_it.primitive_iterator.set_end();
-                break;
-            }
-        }
-    }
-
-    public:
-    /*!
-    @brief return a reference to the value pointed to by the iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    reference operator*() const
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                assert(m_it.object_iterator != m_object->m_value.object->end());
-                return m_it.object_iterator->second;
-            }
-
-            case basic_json::value_t::array:
-            {
-                assert(m_it.array_iterator != m_object->m_value.array->end());
-                return *m_it.array_iterator;
-            }
-
-            case basic_json::value_t::null:
-            {
-                    JSON_THROW(std::out_of_range("cannot get value"));
-            }
-
-            default:
-            {
-                if (m_it.primitive_iterator.is_begin())
+                case basic_json::value_t::object:
                 {
-                    return *m_object;
+                    m_it.object_iterator = typename object_t::iterator();
+                    break;
                 }
 
-                    JSON_THROW(std::out_of_range("cannot get value"));
-            }
-        }
-    }
-
-    /*!
-    @brief dereference the iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    pointer operator->() const
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                assert(m_it.object_iterator != m_object->m_value.object->end());
-                return &(m_it.object_iterator->second);
-            }
-
-            case basic_json::value_t::array:
-            {
-                assert(m_it.array_iterator != m_object->m_value.array->end());
-                return &*m_it.array_iterator;
-            }
-
-            default:
-            {
-                if (m_it.primitive_iterator.is_begin())
+                case basic_json::value_t::array:
                 {
-                    return m_object;
+                    m_it.array_iterator = typename array_t::iterator();
+                    break;
                 }
 
+                default:
+                {
+                    m_it.primitive_iterator = primitive_iterator_t();
+                    break;
+                }
+            }
+        }
+
+        /*
+        Use operator `const_iterator` instead of `const_iterator(const iterator&
+        other) noexcept` to avoid two class definitions for @ref iterator and
+        @ref const_iterator.
+
+        This function is only called if this class is an @ref iterator. If this
+        class is a @ref const_iterator this function is not called.
+        */
+        operator const_iterator() const
+        {
+            const_iterator ret;
+
+            if (m_object)
+            {
+                ret.m_object = m_object;
+                ret.m_it = m_it;
+            }
+
+            return ret;
+        }
+
+        /*!
+        @brief copy constructor
+        @param[in] other  iterator to copy from
+        @note It is not checked whether @a other is initialized.
+        */
+        iter_impl(const iter_impl& other) noexcept
+            : m_object(other.m_object), m_it(other.m_it)
+        {}
+
+        /*!
+        @brief copy assignment
+        @param[in,out] other  iterator to copy from
+        @note It is not checked whether @a other is initialized.
+        */
+        iter_impl& operator=(iter_impl other) noexcept(
+            std::is_nothrow_move_constructible<pointer>::value and
+            std::is_nothrow_move_assignable<pointer>::value and
+            std::is_nothrow_move_constructible<internal_iterator>::value and
+            std::is_nothrow_move_assignable<internal_iterator>::value
+        )
+        {
+            std::swap(m_object, other.m_object);
+            std::swap(m_it, other.m_it);
+            return *this;
+        }
+
+      private:
+        /*!
+        @brief set the iterator to the first value
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        void set_begin() noexcept
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    m_it.object_iterator = m_object->m_value.object->begin();
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    m_it.array_iterator = m_object->m_value.array->begin();
+                    break;
+                }
+
+                case basic_json::value_t::null:
+                {
+                    // set to end so begin()==end() is true: null is empty
+                    m_it.primitive_iterator.set_end();
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator.set_begin();
+                    break;
+                }
+            }
+        }
+
+        /*!
+        @brief set the iterator past the last value
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        void set_end() noexcept
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    m_it.object_iterator = m_object->m_value.object->end();
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    m_it.array_iterator = m_object->m_value.array->end();
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator.set_end();
+                    break;
+                }
+            }
+        }
+
+      public:
+        /*!
+        @brief return a reference to the value pointed to by the iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        reference operator*() const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    assert(m_it.object_iterator != m_object->m_value.object->end());
+                    return m_it.object_iterator->second;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    assert(m_it.array_iterator != m_object->m_value.array->end());
+                    return *m_it.array_iterator;
+                }
+
+                case basic_json::value_t::null:
+                {
                     JSON_THROW(std::out_of_range("cannot get value"));
-            }
-        }
-    }
+                }
 
-    /*!
-    @brief post-increment (it++)
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl operator++(int)
-    {
-        auto result = *this;
-        ++(*this);
-        return result;
-    }
+                default:
+                {
+                    if (m_it.primitive_iterator.is_begin())
+                    {
+                        return *m_object;
+                    }
 
-    /*!
-    @brief pre-increment (++it)
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl& operator++()
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                std::advance(m_it.object_iterator, 1);
-                break;
-            }
-
-            case basic_json::value_t::array:
-            {
-                std::advance(m_it.array_iterator, 1);
-                break;
-            }
-
-            default:
-            {
-                ++m_it.primitive_iterator;
-                break;
+                    JSON_THROW(std::out_of_range("cannot get value"));
+                }
             }
         }
 
-        return *this;
-    }
-
-    /*!
-    @brief post-decrement (it--)
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl operator--(int)
-    {
-        auto result = *this;
-        --(*this);
-        return result;
-    }
-
-    /*!
-    @brief pre-decrement (--it)
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl& operator--()
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
+        /*!
+        @brief dereference the iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        pointer operator->() const
         {
-            case basic_json::value_t::object:
-            {
-                std::advance(m_it.object_iterator, -1);
-                break;
-            }
+            assert(m_object != nullptr);
 
-            case basic_json::value_t::array:
+            switch (m_object->m_type)
             {
-                std::advance(m_it.array_iterator, -1);
-                break;
-            }
+                case basic_json::value_t::object:
+                {
+                    assert(m_it.object_iterator != m_object->m_value.object->end());
+                    return &(m_it.object_iterator->second);
+                }
 
-            default:
-            {
-                --m_it.primitive_iterator;
-                break;
+                case basic_json::value_t::array:
+                {
+                    assert(m_it.array_iterator != m_object->m_value.array->end());
+                    return &*m_it.array_iterator;
+                }
+
+                default:
+                {
+                    if (m_it.primitive_iterator.is_begin())
+                    {
+                        return m_object;
+                    }
+
+                    JSON_THROW(std::out_of_range("cannot get value"));
+                }
             }
         }
 
-        return *this;
-    }
-
-    /*!
-    @brief  comparison: equal
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator==(const iter_impl& other) const
-    {
-        // if objects are not the same, the comparison is undefined
-        if (m_object != other.m_object)
+        /*!
+        @brief post-increment (it++)
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl operator++(int)
         {
+            auto result = *this;
+            ++(*this);
+            return result;
+        }
+
+        /*!
+        @brief pre-increment (++it)
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl& operator++()
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    std::advance(m_it.object_iterator, 1);
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    std::advance(m_it.array_iterator, 1);
+                    break;
+                }
+
+                default:
+                {
+                    ++m_it.primitive_iterator;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /*!
+        @brief post-decrement (it--)
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl operator--(int)
+        {
+            auto result = *this;
+            --(*this);
+            return result;
+        }
+
+        /*!
+        @brief pre-decrement (--it)
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl& operator--()
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    std::advance(m_it.object_iterator, -1);
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    std::advance(m_it.array_iterator, -1);
+                    break;
+                }
+
+                default:
+                {
+                    --m_it.primitive_iterator;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /*!
+        @brief  comparison: equal
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator==(const iter_impl& other) const
+        {
+            // if objects are not the same, the comparison is undefined
+            if (m_object != other.m_object)
+            {
                 JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
-        }
-
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                return (m_it.object_iterator == other.m_it.object_iterator);
             }
 
-            case basic_json::value_t::array:
-            {
-                return (m_it.array_iterator == other.m_it.array_iterator);
-            }
+            assert(m_object != nullptr);
 
-            default:
+            switch (m_object->m_type)
             {
-                return (m_it.primitive_iterator == other.m_it.primitive_iterator);
+                case basic_json::value_t::object:
+                {
+                    return (m_it.object_iterator == other.m_it.object_iterator);
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return (m_it.array_iterator == other.m_it.array_iterator);
+                }
+
+                default:
+                {
+                    return (m_it.primitive_iterator == other.m_it.primitive_iterator);
+                }
             }
         }
-    }
 
-    /*!
-    @brief  comparison: not equal
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator!=(const iter_impl& other) const
-    {
-        return not operator==(other);
-    }
-
-    /*!
-    @brief  comparison: smaller
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator<(const iter_impl& other) const
-    {
-        // if objects are not the same, the comparison is undefined
-        if (m_object != other.m_object)
+        /*!
+        @brief  comparison: not equal
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator!=(const iter_impl& other) const
         {
+            return not operator==(other);
+        }
+
+        /*!
+        @brief  comparison: smaller
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator<(const iter_impl& other) const
+        {
+            // if objects are not the same, the comparison is undefined
+            if (m_object != other.m_object)
+            {
                 JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
-        }
+            }
 
-        assert(m_object != nullptr);
+            assert(m_object != nullptr);
 
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
+            switch (m_object->m_type)
             {
+                case basic_json::value_t::object:
+                {
                     JSON_THROW(std::domain_error("cannot compare order of object iterators"));
-            }
-
-            case basic_json::value_t::array:
-            {
-                return (m_it.array_iterator < other.m_it.array_iterator);
-            }
-
-            default:
-            {
-                return (m_it.primitive_iterator < other.m_it.primitive_iterator);
-            }
-        }
-    }
-
-    /*!
-    @brief  comparison: less than or equal
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator<=(const iter_impl& other) const
-    {
-        return not other.operator < (*this);
-    }
-
-    /*!
-    @brief  comparison: greater than
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator>(const iter_impl& other) const
-    {
-        return not operator<=(other);
-    }
-
-    /*!
-    @brief  comparison: greater than or equal
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator>=(const iter_impl& other) const
-    {
-        return not operator<(other);
-    }
-
-    /*!
-    @brief  add to iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl& operator+=(difference_type i)
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
-            }
-
-            case basic_json::value_t::array:
-            {
-                std::advance(m_it.array_iterator, i);
-                break;
-            }
-
-            default:
-            {
-                m_it.primitive_iterator += i;
-                break;
-            }
-        }
-
-        return *this;
-    }
-
-    /*!
-    @brief  subtract from iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl& operator-=(difference_type i)
-    {
-        return operator+=(-i);
-    }
-
-    /*!
-    @brief  add to iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl operator+(difference_type i)
-    {
-        auto result = *this;
-        result += i;
-        return result;
-    }
-
-    /*!
-    @brief  subtract from iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl operator-(difference_type i)
-    {
-        auto result = *this;
-        result -= i;
-        return result;
-    }
-
-    /*!
-    @brief  return difference
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    difference_type operator-(const iter_impl& other) const
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
-            }
-
-            case basic_json::value_t::array:
-            {
-                return m_it.array_iterator - other.m_it.array_iterator;
-            }
-
-            default:
-            {
-                return m_it.primitive_iterator - other.m_it.primitive_iterator;
-            }
-        }
-    }
-
-    /*!
-    @brief  access to successor
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    reference operator[](difference_type n) const
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                    JSON_THROW(std::domain_error("cannot use operator[] for object iterators"));
-            }
-
-            case basic_json::value_t::array:
-            {
-                return *std::next(m_it.array_iterator, n);
-            }
-
-            case basic_json::value_t::null:
-            {
-                    JSON_THROW(std::out_of_range("cannot get value"));
-            }
-
-            default:
-            {
-                if (m_it.primitive_iterator.get_value() == -n)
-                {
-                    return *m_object;
                 }
 
-                    JSON_THROW(std::out_of_range("cannot get value"));
+                case basic_json::value_t::array:
+                {
+                    return (m_it.array_iterator < other.m_it.array_iterator);
+                }
+
+                default:
+                {
+                    return (m_it.primitive_iterator < other.m_it.primitive_iterator);
+                }
             }
         }
-    }
 
-    /*!
-    @brief  return the key of an object iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    typename object_t::key_type key() const
-    {
-        assert(m_object != nullptr);
-
-        if (m_object->is_object())
+        /*!
+        @brief  comparison: less than or equal
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator<=(const iter_impl& other) const
         {
-            return m_it.object_iterator->first;
+            return not other.operator < (*this);
         }
 
+        /*!
+        @brief  comparison: greater than
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator>(const iter_impl& other) const
+        {
+            return not operator<=(other);
+        }
+
+        /*!
+        @brief  comparison: greater than or equal
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator>=(const iter_impl& other) const
+        {
+            return not operator<(other);
+        }
+
+        /*!
+        @brief  add to iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl& operator+=(difference_type i)
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
+                }
+
+                case basic_json::value_t::array:
+                {
+                    std::advance(m_it.array_iterator, i);
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator += i;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /*!
+        @brief  subtract from iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl& operator-=(difference_type i)
+        {
+            return operator+=(-i);
+        }
+
+        /*!
+        @brief  add to iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl operator+(difference_type i)
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
+
+        /*!
+        @brief  subtract from iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl operator-(difference_type i)
+        {
+            auto result = *this;
+            result -= i;
+            return result;
+        }
+
+        /*!
+        @brief  return difference
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        difference_type operator-(const iter_impl& other) const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return m_it.array_iterator - other.m_it.array_iterator;
+                }
+
+                default:
+                {
+                    return m_it.primitive_iterator - other.m_it.primitive_iterator;
+                }
+            }
+        }
+
+        /*!
+        @brief  access to successor
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        reference operator[](difference_type n) const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    JSON_THROW(std::domain_error("cannot use operator[] for object iterators"));
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return *std::next(m_it.array_iterator, n);
+                }
+
+                case basic_json::value_t::null:
+                {
+                    JSON_THROW(std::out_of_range("cannot get value"));
+                }
+
+                default:
+                {
+                    if (m_it.primitive_iterator.get_value() == -n)
+                    {
+                        return *m_object;
+                    }
+
+                    JSON_THROW(std::out_of_range("cannot get value"));
+                }
+            }
+        }
+
+        /*!
+        @brief  return the key of an object iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        typename object_t::key_type key() const
+        {
+            assert(m_object != nullptr);
+
+            if (m_object->is_object())
+            {
+                return m_it.object_iterator->first;
+            }
+
             JSON_THROW(std::domain_error("cannot use key() for non-object iterators"));
-    }
+        }
 
-    /*!
-    @brief  return the value of an iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    reference value() const
-    {
-        return operator*();
-    }
+        /*!
+        @brief  return the value of an iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        reference value() const
+        {
+            return operator*();
+        }
 
-    private:
-    /// associated JSON instance
-    pointer m_object = nullptr;
-    /// the actual iterator of the associated instance
-    internal_iterator m_it = internal_iterator();
-                       };
+      private:
+        /// associated JSON instance
+        pointer m_object = nullptr;
+        /// the actual iterator of the associated instance
+        internal_iterator m_it = internal_iterator();
+    };
 
     /*!
     @brief a template for a reverse iterator class
@@ -9095,9 +9134,9 @@ class basic_json
     @since version 1.0.0
     */
     template<typename Base>
-  class json_reverse_iterator : public std::reverse_iterator<Base>
+    class json_reverse_iterator : public std::reverse_iterator<Base>
     {
-        public:
+      public:
         /// shortcut to the reverse iterator adaptor
         using base_iterator = std::reverse_iterator<Base>;
         /// the reference type for the pointed-to element
@@ -9105,89 +9144,89 @@ class basic_json
 
         /// create reverse iterator from iterator
         json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept
-        : base_iterator(it)
-    {}
+            : base_iterator(it)
+        {}
 
-    /// create reverse iterator from base class
-    json_reverse_iterator(const base_iterator& it) noexcept
-    : base_iterator(it)
-    {}
+        /// create reverse iterator from base class
+        json_reverse_iterator(const base_iterator& it) noexcept
+            : base_iterator(it)
+        {}
 
-    /// post-increment (it++)
-    json_reverse_iterator operator++(int)
-    {
-        return base_iterator::operator++(1);
-    }
+        /// post-increment (it++)
+        json_reverse_iterator operator++(int)
+        {
+            return base_iterator::operator++(1);
+        }
 
-    /// pre-increment (++it)
-    json_reverse_iterator& operator++()
-    {
-        base_iterator::operator++();
-        return *this;
-    }
+        /// pre-increment (++it)
+        json_reverse_iterator& operator++()
+        {
+            base_iterator::operator++();
+            return *this;
+        }
 
-    /// post-decrement (it--)
-    json_reverse_iterator operator--(int)
-    {
-        return base_iterator::operator--(1);
-    }
+        /// post-decrement (it--)
+        json_reverse_iterator operator--(int)
+        {
+            return base_iterator::operator--(1);
+        }
 
-    /// pre-decrement (--it)
-    json_reverse_iterator& operator--()
-    {
-        base_iterator::operator--();
-        return *this;
-    }
+        /// pre-decrement (--it)
+        json_reverse_iterator& operator--()
+        {
+            base_iterator::operator--();
+            return *this;
+        }
 
-    /// add to iterator
-    json_reverse_iterator& operator+=(difference_type i)
-    {
-        base_iterator::operator+=(i);
-        return *this;
-    }
+        /// add to iterator
+        json_reverse_iterator& operator+=(difference_type i)
+        {
+            base_iterator::operator+=(i);
+            return *this;
+        }
 
-    /// add to iterator
-    json_reverse_iterator operator+(difference_type i) const
-    {
-        auto result = *this;
-        result += i;
-        return result;
-    }
+        /// add to iterator
+        json_reverse_iterator operator+(difference_type i) const
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
 
-    /// subtract from iterator
-    json_reverse_iterator operator-(difference_type i) const
-    {
-        auto result = *this;
-        result -= i;
-        return result;
-    }
+        /// subtract from iterator
+        json_reverse_iterator operator-(difference_type i) const
+        {
+            auto result = *this;
+            result -= i;
+            return result;
+        }
 
-    /// return difference
-    difference_type operator-(const json_reverse_iterator& other) const
-    {
-        return this->base() - other.base();
-    }
+        /// return difference
+        difference_type operator-(const json_reverse_iterator& other) const
+        {
+            return this->base() - other.base();
+        }
 
-    /// access to successor
-    reference operator[](difference_type n) const
-    {
-        return *(this->operator+(n));
-    }
+        /// access to successor
+        reference operator[](difference_type n) const
+        {
+            return *(this->operator+(n));
+        }
 
-    /// return the key of an object iterator
-    typename object_t::key_type key() const
-    {
-        auto it = --this->base();
-        return it.key();
-    }
+        /// return the key of an object iterator
+        typename object_t::key_type key() const
+        {
+            auto it = --this->base();
+            return it.key();
+        }
 
-    /// return the value of an iterator
-    reference value() const
-    {
-        auto it = --this->base();
-        return it.operator * ();
-    }
-                                                   };
+        /// return the value of an iterator
+        reference value() const
+        {
+            auto it = --this->base();
+            return it.operator * ();
+        }
+    };
 
 
   private:
@@ -9204,1133 +9243,1611 @@ class basic_json
     */
     class lexer
     {
-        public:
+      public:
         /// token types for the parser
         enum class token_type
-    {
-        uninitialized,   ///< indicating the scanner is uninitialized
-        literal_true,    ///< the `true` literal
-        literal_false,   ///< the `false` literal
-        literal_null,    ///< the `null` literal
-        value_string,    ///< a string -- use get_string() for actual value
-        value_number,    ///< a number -- use get_number() for actual value
-        begin_array,     ///< the character for array begin `[`
-        begin_object,    ///< the character for object begin `{`
-        end_array,       ///< the character for array end `]`
-        end_object,      ///< the character for object end `}`
-        name_separator,  ///< the name separator `:`
-        value_separator, ///< the value separator `,`
-        parse_error,     ///< indicating a parse error
-        end_of_input     ///< indicating the end of the input buffer
-    };
-
-    /// the char type to use in the lexer
-    using lexer_char_t = unsigned char;
-
-    /// a lexer from a buffer with given length
-    lexer(const lexer_char_t* buff, const size_t len) noexcept
-    : m_content(buff)
-    {
-        assert(m_content != nullptr);
-        m_start = m_cursor = m_content;
-        m_limit = m_content + len;
-    }
-
-    /// a lexer from an input stream
-    explicit lexer(std::istream& s)
-    : m_stream(&s), m_line_buffer()
-    {
-        // immediately abort if stream is erroneous
-        if (s.fail())
         {
-                JSON_THROW(std::invalid_argument("stream error"));
-        }
-
-        // fill buffer
-        fill_line_buffer();
-
-        // skip UTF-8 byte-order mark
-        if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF")
-        {
-            m_line_buffer[0] = ' ';
-            m_line_buffer[1] = ' ';
-            m_line_buffer[2] = ' ';
-        }
-    }
-
-    // switch off unwanted functions (due to pointer members)
-    lexer() = delete;
-    lexer(const lexer&) = delete;
-    lexer operator=(const lexer&) = delete;
-
-    /*!
-    @brief create a string from one or two Unicode code points
-
-    There are two cases: (1) @a codepoint1 is in the Basic Multilingual
-    Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2)
-    @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to
-    represent a code point above U+FFFF.
-
-    @param[in] codepoint1  the code point (can be high surrogate)
-    @param[in] codepoint2  the code point (can be low surrogate or 0)
-
-    @return string representation of the code point; the length of the
-    result string is between 1 and 4 characters.
-
-    @throw std::out_of_range if code point is > 0x10ffff; example: `"code
-    points above 0x10FFFF are invalid"`
-    @throw std::invalid_argument if the low surrogate is invalid; example:
-    `""missing or wrong low surrogate""`
-
-    @complexity Constant.
-
-    @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code>
-    */
-    static string_t to_unicode(const std::size_t codepoint1,
-                               const std::size_t codepoint2 = 0)
-    {
-        // calculate the code point from the given code points
-        std::size_t codepoint = codepoint1;
-
-        // check if codepoint1 is a high surrogate
-        if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
-        {
-            // check if codepoint2 is a low surrogate
-            if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
-            {
-                codepoint =
-                // high surrogate occupies the most significant 22 bits
-                (codepoint1 << 10)
-                 // low surrogate occupies the least significant 15 bits
-                 + codepoint2
-                 // there is still the 0xD800, 0xDC00 and 0x10000 noise
-                 // in the result so we have to subtract with:
-                 // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00
-                 - 0x35FDC00;
-            }
-            else
-            {
-                    JSON_THROW(std::invalid_argument("missing or wrong low surrogate"));
-            }
-        }
-
-        string_t result;
-
-        if (codepoint < 0x80)
-        {
-            // 1-byte characters: 0xxxxxxx (ASCII)
-            result.append(1, static_cast<typename string_t::value_type>(codepoint));
-        }
-        else if (codepoint <= 0x7ff)
-        {
-            // 2-byte characters: 110xxxxx 10xxxxxx
-            result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-        }
-        else if (codepoint <= 0xffff)
-        {
-            // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx
-            result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-        }
-        else if (codepoint <= 0x10ffff)
-        {
-            // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
-            result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-        }
-        else
-        {
-                JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid"));
-        }
-
-        return result;
-    }
-
-    /// return name of values of type token_type (only used for errors)
-    static std::string token_type_name(const token_type t)
-    {
-        switch (t)
-        {
-            case token_type::uninitialized:
-                return "<uninitialized>";
-            case token_type::literal_true:
-                return "true literal";
-            case token_type::literal_false:
-                return "false literal";
-            case token_type::literal_null:
-                return "null literal";
-            case token_type::value_string:
-                return "string literal";
-            case token_type::value_number:
-                return "number literal";
-            case token_type::begin_array:
-                return "'['";
-            case token_type::begin_object:
-                return "'{'";
-            case token_type::end_array:
-                return "']'";
-            case token_type::end_object:
-                return "'}'";
-            case token_type::name_separator:
-                return "':'";
-            case token_type::value_separator:
-                return "','";
-            case token_type::parse_error:
-                return "<parse error>";
-            case token_type::end_of_input:
-                return "end of input";
-            default:
-            {
-                // catch non-enum values
-                return "unknown token"; // LCOV_EXCL_LINE
-            }
-        }
-    }
-
-    /*!
-    This function implements a scanner for JSON. It is specified using
-    regular expressions that try to follow RFC 7159 as close as possible.
-    These regular expressions are then translated into a minimized
-    deterministic finite automaton (DFA) by the tool
-    [re2c](http://re2c.org). As a result, the translated code for this
-    function consists of a large block of code with `goto` jumps.
-
-    @return the class of the next token read from the buffer
-
-    @complexity Linear in the length of the input.\n
-
-    Proposition: The loop below will always terminate for finite input.\n
-
-    Proof (by contradiction): Assume a finite input. To loop forever, the
-    loop must never hit code with a `break` statement. The only code
-    snippets without a `break` statement are the continue statements for
-    whitespace and byte-order-marks. To loop forever, the input must be an
-    infinite sequence of whitespace or byte-order-marks. This contradicts
-    the assumption of finite input, q.e.d.
-    */
-    token_type scan()
-    {
-        while (true)
-        {
-            // pointer for backtracking information
-            m_marker = nullptr;
-
-            // remember the begin of the token
-            m_start = m_cursor;
-            assert(m_start != nullptr);
-
-            
-    {
-        lexer_char_t yych;
-        unsigned int yyaccept = 0;
-        static const unsigned char yybm[] = {
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,  32,  32,   0,   0,  32,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-            160, 128,   0, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            192, 192, 192, 192, 192, 192, 192, 192, 
-            192, 192, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128,   0, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
+            uninitialized,   ///< indicating the scanner is uninitialized
+            literal_true,    ///< the `true` literal
+            literal_false,   ///< the `false` literal
+            literal_null,    ///< the `null` literal
+            value_string,    ///< a string -- use get_string() for actual value
+            value_number,    ///< a number -- use get_number() for actual value
+            begin_array,     ///< the character for array begin `[`
+            begin_object,    ///< the character for object begin `{`
+            end_array,       ///< the character for array end `]`
+            end_object,      ///< the character for object end `}`
+            name_separator,  ///< the name separator `:`
+            value_separator, ///< the value separator `,`
+            parse_error,     ///< indicating a parse error
+            end_of_input     ///< indicating the end of the input buffer
         };
-        if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yybm[0+yych] & 32) {
-            goto basic_json_parser_6;
-        }
-        if (yych <= '[') {
-            if (yych <= '-') {
-                if (yych <= '"') {
-                    if (yych <= 0x00) goto basic_json_parser_2;
-                    if (yych <= '!') goto basic_json_parser_4;
-                    goto basic_json_parser_9;
-                } else {
-                    if (yych <= '+') goto basic_json_parser_4;
-                    if (yych <= ',') goto basic_json_parser_10;
-                    goto basic_json_parser_12;
-                }
-            } else {
-                if (yych <= '9') {
-                    if (yych <= '/') goto basic_json_parser_4;
-                    if (yych <= '0') goto basic_json_parser_13;
-                    goto basic_json_parser_15;
-                } else {
-                    if (yych <= ':') goto basic_json_parser_17;
-                    if (yych <= 'Z') goto basic_json_parser_4;
-                    goto basic_json_parser_19;
-                }
-            }
-        } else {
-            if (yych <= 'n') {
-                if (yych <= 'e') {
-                    if (yych == ']') goto basic_json_parser_21;
-                    goto basic_json_parser_4;
-                } else {
-                    if (yych <= 'f') goto basic_json_parser_23;
-                    if (yych <= 'm') goto basic_json_parser_4;
-                    goto basic_json_parser_24;
-                }
-            } else {
-                if (yych <= 'z') {
-                    if (yych == 't') goto basic_json_parser_25;
-                    goto basic_json_parser_4;
-                } else {
-                    if (yych <= '{') goto basic_json_parser_26;
-                    if (yych == '}') goto basic_json_parser_28;
-                    goto basic_json_parser_4;
-                }
-            }
-        }
-basic_json_parser_2:
-        ++m_cursor;
-        { last_token_type = token_type::end_of_input; break; }
-basic_json_parser_4:
-        ++m_cursor;
-basic_json_parser_5:
-        { last_token_type = token_type::parse_error; break; }
-basic_json_parser_6:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yybm[0+yych] & 32) {
-            goto basic_json_parser_6;
-        }
-        { continue; }
-basic_json_parser_9:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych <= 0x1F) goto basic_json_parser_5;
-        if (yych <= 0x7F) goto basic_json_parser_31;
-        if (yych <= 0xC1) goto basic_json_parser_5;
-        if (yych <= 0xF4) goto basic_json_parser_31;
-        goto basic_json_parser_5;
-basic_json_parser_10:
-        ++m_cursor;
-        { last_token_type = token_type::value_separator; break; }
-basic_json_parser_12:
-        yych = *++m_cursor;
-        if (yych <= '/') goto basic_json_parser_5;
-        if (yych <= '0') goto basic_json_parser_13;
-        if (yych <= '9') goto basic_json_parser_15;
-        goto basic_json_parser_5;
-basic_json_parser_13:
-        yyaccept = 1;
-        yych = *(m_marker = ++m_cursor);
-        if (yych <= 'D') {
-            if (yych == '.') goto basic_json_parser_43;
-        } else {
-            if (yych <= 'E') goto basic_json_parser_44;
-            if (yych == 'e') goto basic_json_parser_44;
-        }
-basic_json_parser_14:
-        { last_token_type = token_type::value_number; break; }
-basic_json_parser_15:
-        yyaccept = 1;
-        m_marker = ++m_cursor;
-        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yybm[0+yych] & 64) {
-            goto basic_json_parser_15;
-        }
-        if (yych <= 'D') {
-            if (yych == '.') goto basic_json_parser_43;
-            goto basic_json_parser_14;
-        } else {
-            if (yych <= 'E') goto basic_json_parser_44;
-            if (yych == 'e') goto basic_json_parser_44;
-            goto basic_json_parser_14;
-        }
-basic_json_parser_17:
-        ++m_cursor;
-        { last_token_type = token_type::name_separator; break; }
-basic_json_parser_19:
-        ++m_cursor;
-        { last_token_type = token_type::begin_array; break; }
-basic_json_parser_21:
-        ++m_cursor;
-        { last_token_type = token_type::end_array; break; }
-basic_json_parser_23:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych == 'a') goto basic_json_parser_45;
-        goto basic_json_parser_5;
-basic_json_parser_24:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych == 'u') goto basic_json_parser_46;
-        goto basic_json_parser_5;
-basic_json_parser_25:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych == 'r') goto basic_json_parser_47;
-        goto basic_json_parser_5;
-basic_json_parser_26:
-        ++m_cursor;
-        { last_token_type = token_type::begin_object; break; }
-basic_json_parser_28:
-        ++m_cursor;
-        { last_token_type = token_type::end_object; break; }
-basic_json_parser_30:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-basic_json_parser_31:
-        if (yybm[0+yych] & 128) {
-            goto basic_json_parser_30;
-        }
-        if (yych <= 0xE0) {
-            if (yych <= '\\') {
-                if (yych <= 0x1F) goto basic_json_parser_32;
-                if (yych <= '"') goto basic_json_parser_33;
-                goto basic_json_parser_35;
-            } else {
-                if (yych <= 0xC1) goto basic_json_parser_32;
-                if (yych <= 0xDF) goto basic_json_parser_36;
-                goto basic_json_parser_37;
-            }
-        } else {
-            if (yych <= 0xEF) {
-                if (yych == 0xED) goto basic_json_parser_39;
-                goto basic_json_parser_38;
-            } else {
-                if (yych <= 0xF0) goto basic_json_parser_40;
-                if (yych <= 0xF3) goto basic_json_parser_41;
-                if (yych <= 0xF4) goto basic_json_parser_42;
-            }
-        }
-basic_json_parser_32:
-        m_cursor = m_marker;
-        if (yyaccept == 0) {
-            goto basic_json_parser_5;
-        } else {
-            goto basic_json_parser_14;
-        }
-basic_json_parser_33:
-        ++m_cursor;
-        { last_token_type = token_type::value_string; break; }
-basic_json_parser_35:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 'e') {
-            if (yych <= '/') {
-                if (yych == '"') goto basic_json_parser_30;
-                if (yych <= '.') goto basic_json_parser_32;
-                goto basic_json_parser_30;
-            } else {
-                if (yych <= '\\') {
-                    if (yych <= '[') goto basic_json_parser_32;
-                    goto basic_json_parser_30;
-                } else {
-                    if (yych == 'b') goto basic_json_parser_30;
-                    goto basic_json_parser_32;
-                }
-            }
-        } else {
-            if (yych <= 'q') {
-                if (yych <= 'f') goto basic_json_parser_30;
-                if (yych == 'n') goto basic_json_parser_30;
-                goto basic_json_parser_32;
-            } else {
-                if (yych <= 's') {
-                    if (yych <= 'r') goto basic_json_parser_30;
-                    goto basic_json_parser_32;
-                } else {
-                    if (yych <= 't') goto basic_json_parser_30;
-                    if (yych <= 'u') goto basic_json_parser_48;
-                    goto basic_json_parser_32;
-                }
-            }
-        }
-basic_json_parser_36:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_30;
-        goto basic_json_parser_32;
-basic_json_parser_37:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x9F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_36;
-        goto basic_json_parser_32;
-basic_json_parser_38:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_36;
-        goto basic_json_parser_32;
-basic_json_parser_39:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0x9F) goto basic_json_parser_36;
-        goto basic_json_parser_32;
-basic_json_parser_40:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x8F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_38;
-        goto basic_json_parser_32;
-basic_json_parser_41:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_38;
-        goto basic_json_parser_32;
-basic_json_parser_42:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0x8F) goto basic_json_parser_38;
-        goto basic_json_parser_32;
-basic_json_parser_43:
-        yych = *++m_cursor;
-        if (yych <= '/') goto basic_json_parser_32;
-        if (yych <= '9') goto basic_json_parser_49;
-        goto basic_json_parser_32;
-basic_json_parser_44:
-        yych = *++m_cursor;
-        if (yych <= ',') {
-            if (yych == '+') goto basic_json_parser_51;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= '-') goto basic_json_parser_51;
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_52;
-            goto basic_json_parser_32;
-        }
-basic_json_parser_45:
-        yych = *++m_cursor;
-        if (yych == 'l') goto basic_json_parser_54;
-        goto basic_json_parser_32;
-basic_json_parser_46:
-        yych = *++m_cursor;
-        if (yych == 'l') goto basic_json_parser_55;
-        goto basic_json_parser_32;
-basic_json_parser_47:
-        yych = *++m_cursor;
-        if (yych == 'u') goto basic_json_parser_56;
-        goto basic_json_parser_32;
-basic_json_parser_48:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_57;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_57;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_57;
-            goto basic_json_parser_32;
-        }
-basic_json_parser_49:
-        yyaccept = 1;
-        m_marker = ++m_cursor;
-        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 'D') {
-            if (yych <= '/') goto basic_json_parser_14;
-            if (yych <= '9') goto basic_json_parser_49;
-            goto basic_json_parser_14;
-        } else {
-            if (yych <= 'E') goto basic_json_parser_44;
-            if (yych == 'e') goto basic_json_parser_44;
-            goto basic_json_parser_14;
-        }
-basic_json_parser_51:
-        yych = *++m_cursor;
-        if (yych <= '/') goto basic_json_parser_32;
-        if (yych >= ':') goto basic_json_parser_32;
-basic_json_parser_52:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '/') goto basic_json_parser_14;
-        if (yych <= '9') goto basic_json_parser_52;
-        goto basic_json_parser_14;
-basic_json_parser_54:
-        yych = *++m_cursor;
-        if (yych == 's') goto basic_json_parser_58;
-        goto basic_json_parser_32;
-basic_json_parser_55:
-        yych = *++m_cursor;
-        if (yych == 'l') goto basic_json_parser_59;
-        goto basic_json_parser_32;
-basic_json_parser_56:
-        yych = *++m_cursor;
-        if (yych == 'e') goto basic_json_parser_61;
-        goto basic_json_parser_32;
-basic_json_parser_57:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_63;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_63;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_63;
-            goto basic_json_parser_32;
-        }
-basic_json_parser_58:
-        yych = *++m_cursor;
-        if (yych == 'e') goto basic_json_parser_64;
-        goto basic_json_parser_32;
-basic_json_parser_59:
-        ++m_cursor;
-        { last_token_type = token_type::literal_null; break; }
-basic_json_parser_61:
-        ++m_cursor;
-        { last_token_type = token_type::literal_true; break; }
-basic_json_parser_63:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_66;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_66;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_66;
-            goto basic_json_parser_32;
-        }
-basic_json_parser_64:
-        ++m_cursor;
-        { last_token_type = token_type::literal_false; break; }
-basic_json_parser_66:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_30;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_30;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_30;
-            goto basic_json_parser_32;
-        }
-    }
 
-        }
+        /// the char type to use in the lexer
+        using lexer_char_t = unsigned char;
 
-        return last_token_type;
-    }
-
-    /*!
-    @brief append data from the stream to the line buffer
-
-    This function is called by the scan() function when the end of the
-    buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be
-    incremented without leaving the limits of the line buffer. Note re2c
-    decides when to call this function.
-
-    If the lexer reads from contiguous storage, there is no trailing null
-    byte. Therefore, this function must make sure to add these padding
-    null bytes.
-
-    If the lexer reads from an input stream, this function reads the next
-    line of the input.
-
-    @pre
-        p p p p p p u u u u u x . . . . . .
-        ^           ^       ^   ^
-        m_content   m_start |   m_limit
-                            m_cursor
-
-    @post
-        u u u u u x x x x x x x . . . . . .
-        ^       ^               ^
-        |       m_cursor        m_limit
-        m_start
-        m_content
-    */
-    void fill_line_buffer(size_t n = 0)
-    {
-        // if line buffer is used, m_content points to its data
-        assert(m_line_buffer.empty()
-               or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()));
-
-        // if line buffer is used, m_limit is set past the end of its data
-        assert(m_line_buffer.empty()
-               or m_limit == m_content + m_line_buffer.size());
-
-        // pointer relationships
-        assert(m_content <= m_start);
-        assert(m_start <= m_cursor);
-        assert(m_cursor <= m_limit);
-        assert(m_marker == nullptr or m_marker  <= m_limit);
-
-        // number of processed characters (p)
-            const auto num_processed_chars = static_cast<size_t>(m_start - m_content);
-        // offset for m_marker wrt. to m_start
-        const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start;
-        // number of unprocessed characters (u)
-        const auto offset_cursor = m_cursor - m_start;
-
-        // no stream is used or end of file is reached
-        if (m_stream == nullptr or m_stream->eof())
+        /// a lexer from a buffer with given length
+        lexer(const lexer_char_t* buff, const size_t len) noexcept
+            : m_content(buff)
         {
-            // m_start may or may not be pointing into m_line_buffer at
-            // this point. We trust the standand library to do the right
-            // thing. See http://stackoverflow.com/q/28142011/266378
-            m_line_buffer.assign(m_start, m_limit);
+            assert(m_content != nullptr);
+            m_start = m_cursor = m_content;
+            m_limit = m_content + len;
+        }
 
-            // append n characters to make sure that there is sufficient
-            // space between m_cursor and m_limit
-            m_line_buffer.append(1, '\x00');
-            if (n > 0)
+        /// a lexer from an input stream
+        explicit lexer(std::istream& s)
+            : m_stream(&s), m_line_buffer()
+        {
+            // immediately abort if stream is erroneous
+            if (s.fail())
             {
-                m_line_buffer.append(n - 1, '\x01');
+                JSON_THROW(std::invalid_argument("stream error"));
+            }
+
+            // fill buffer
+            fill_line_buffer();
+
+            // skip UTF-8 byte-order mark
+            if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF")
+            {
+                m_line_buffer[0] = ' ';
+                m_line_buffer[1] = ' ';
+                m_line_buffer[2] = ' ';
             }
         }
-        else
+
+        // switch off unwanted functions (due to pointer members)
+        lexer() = delete;
+        lexer(const lexer&) = delete;
+        lexer operator=(const lexer&) = delete;
+
+        /*!
+        @brief create a string from one or two Unicode code points
+
+        There are two cases: (1) @a codepoint1 is in the Basic Multilingual
+        Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2)
+        @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to
+        represent a code point above U+FFFF.
+
+        @param[in] codepoint1  the code point (can be high surrogate)
+        @param[in] codepoint2  the code point (can be low surrogate or 0)
+
+        @return string representation of the code point; the length of the
+        result string is between 1 and 4 characters.
+
+        @throw std::out_of_range if code point is > 0x10ffff; example: `"code
+        points above 0x10FFFF are invalid"`
+        @throw std::invalid_argument if the low surrogate is invalid; example:
+        `""missing or wrong low surrogate""`
+
+        @complexity Constant.
+
+        @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code>
+        */
+        static string_t to_unicode(const std::size_t codepoint1,
+                                   const std::size_t codepoint2 = 0)
         {
-            // delete processed characters from line buffer
-            m_line_buffer.erase(0, num_processed_chars);
-            // read next line from input stream
-            m_line_buffer_tmp.clear();
-            std::getline(*m_stream, m_line_buffer_tmp, '\n');
+            // calculate the code point from the given code points
+            std::size_t codepoint = codepoint1;
 
-            // add line with newline symbol to the line buffer
-            m_line_buffer += m_line_buffer_tmp;
-            m_line_buffer.push_back('\n');
-        }
-
-        // set pointers
-        m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data());
-        assert(m_content != nullptr);
-        m_start  = m_content;
-        m_marker = m_start + offset_marker;
-        m_cursor = m_start + offset_cursor;
-        m_limit  = m_start + m_line_buffer.size();
-    }
-
-    /// return string representation of last read token
-    string_t get_token_string() const
-    {
-        assert(m_start != nullptr);
-        return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
-                        static_cast<size_t>(m_cursor - m_start));
-    }
-
-    /*!
-    @brief return string value for string tokens
-
-    The function iterates the characters between the opening and closing
-    quotes of the string value. The complete string is the range
-    [m_start,m_cursor). Consequently, we iterate from m_start+1 to
-    m_cursor-1.
-
-    We differentiate two cases:
-
-    1. Escaped characters. In this case, a new character is constructed
-       according to the nature of the escape. Some escapes create new
-       characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied
-       as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape
-       `"\\uxxxx"` need special care. In this case, to_unicode takes care
-       of the construction of the values.
-    2. Unescaped characters are copied as is.
-
-    @pre `m_cursor - m_start >= 2`, meaning the length of the last token
-    is at least 2 bytes which is trivially true for any string (which
-    consists of at least two quotes).
-
-        " c1 c2 c3 ... "
-        ^                ^
-        m_start          m_cursor
-
-    @complexity Linear in the length of the string.\n
-
-    Lemma: The loop body will always terminate.\n
-
-    Proof (by contradiction): Assume the loop body does not terminate. As
-    the loop body does not contain another loop, one of the called
-    functions must never return. The called functions are `std::strtoul`
-    and to_unicode. Neither function can loop forever, so the loop body
-    will never loop forever which contradicts the assumption that the loop
-    body does not terminate, q.e.d.\n
-
-    Lemma: The loop condition for the for loop is eventually false.\n
-
-    Proof (by contradiction): Assume the loop does not terminate. Due to
-    the above lemma, this can only be due to a tautological loop
-    condition; that is, the loop condition i < m_cursor - 1 must always be
-    true. Let x be the change of i for any loop iteration. Then
-    m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This
-    can be rephrased to m_cursor - m_start - 2 > x. With the
-    precondition, we x <= 0, meaning that the loop condition holds
-    indefinitly if i is always decreased. However, observe that the value
-    of i is strictly increasing with each iteration, as it is incremented
-    by 1 in the iteration expression and never decremented inside the loop
-    body. Hence, the loop condition will eventually be false which
-    contradicts the assumption that the loop condition is a tautology,
-    q.e.d.
-
-    @return string value of current token without opening and closing
-    quotes
-    @throw std::out_of_range if to_unicode fails
-    */
-    string_t get_string() const
-    {
-        assert(m_cursor - m_start >= 2);
-
-        string_t result;
-        result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
-
-        // iterate the result between the quotes
-        for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
-        {
-            // find next escape character
-            auto e = std::find(i, m_cursor - 1, '\\');
-            if (e != i)
+            // check if codepoint1 is a high surrogate
+            if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
             {
-                // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705
-                for (auto k = i; k < e; k++)
+                // check if codepoint2 is a low surrogate
+                if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
                 {
-                    result.push_back(static_cast<typename string_t::value_type>(*k));
-                }
-                i = e - 1; // -1 because of ++i
-            }
-            else
-            {
-                // processing escaped character
-                // read next character
-                ++i;
-
-                switch (*i)
-                {
-                    // the default escapes
-                    case 't':
-                    {
-                        result += "\t";
-                        break;
-                    }
-                    case 'b':
-                    {
-                        result += "\b";
-                        break;
-                    }
-                    case 'f':
-                    {
-                        result += "\f";
-                        break;
-                    }
-                    case 'n':
-                    {
-                        result += "\n";
-                        break;
-                    }
-                    case 'r':
-                    {
-                        result += "\r";
-                        break;
-                    }
-                    case '\\':
-                    {
-                        result += "\\";
-                        break;
-                    }
-                    case '/':
-                    {
-                        result += "/";
-                        break;
-                    }
-                    case '"':
-                    {
-                        result += "\"";
-                        break;
-                    }
-
-                    // unicode
-                    case 'u':
-                    {
-                        // get code xxxx from uxxxx
-                        auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
-                                                      4).c_str(), nullptr, 16);
-
-                        // check if codepoint is a high surrogate
-                        if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
-                        {
-                            // make sure there is a subsequent unicode
-                            if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
-                            {
-                                    JSON_THROW(std::invalid_argument("missing low surrogate"));
-                            }
-
-                            // get code yyyy from uxxxx\uyyyy
-                            auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
-                                                           (i + 7), 4).c_str(), nullptr, 16);
-                            result += to_unicode(codepoint, codepoint2);
-                            // skip the next 10 characters (xxxx\uyyyy)
-                            i += 10;
-                        }
-                        else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF)
-                        {
-                            // we found a lone low surrogate
-                                JSON_THROW(std::invalid_argument("missing high surrogate"));
-                        }
-                        else
-                        {
-                            // add unicode character(s)
-                            result += to_unicode(codepoint);
-                            // skip the next four characters (xxxx)
-                            i += 4;
-                        }
-                        break;
-                    }
-                }
-            }
-        }
-
-        return result;
-    }
-
-    /*!
-    @brief parse floating point number
-
-    This function (and its overloads) serves to select the most approprate
-    standard floating point number parsing function based on the type
-    supplied via the first parameter.  Set this to @a
-    static_cast<number_float_t*>(nullptr).
-
-    @param[in,out] endptr recieves a pointer to the first character after
-    the number
-
-    @return the floating point number
-    */
-    long double str_to_float_t(long double* /* type */, char** endptr) const
-    {
-        return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-    }
-
-    /*!
-    @brief parse floating point number
-
-    This function (and its overloads) serves to select the most approprate
-    standard floating point number parsing function based on the type
-    supplied via the first parameter.  Set this to @a
-    static_cast<number_float_t*>(nullptr).
-
-    @param[in,out] endptr  recieves a pointer to the first character after
-    the number
-
-    @return the floating point number
-    */
-    double str_to_float_t(double* /* type */, char** endptr) const
-    {
-        return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-    }
-
-    /*!
-    @brief parse floating point number
-
-    This function (and its overloads) serves to select the most approprate
-    standard floating point number parsing function based on the type
-    supplied via the first parameter.  Set this to @a
-    static_cast<number_float_t*>(nullptr).
-
-    @param[in,out] endptr  recieves a pointer to the first character after
-    the number
-
-    @return the floating point number
-    */
-    float str_to_float_t(float* /* type */, char** endptr) const
-    {
-        return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-    }
-
-    /*!
-    @brief return number value for number tokens
-
-    This function translates the last token into the most appropriate
-    number type (either integer, unsigned integer or floating point),
-    which is passed back to the caller via the result parameter.
-
-    This function parses the integer component up to the radix point or
-    exponent while collecting information about the 'floating point
-    representation', which it stores in the result parameter. If there is
-    no radix point or exponent, and the number can fit into a @ref
-    number_integer_t or @ref number_unsigned_t then it sets the result
-    parameter accordingly.
-
-    If the number is a floating point number the number is then parsed
-    using @a std:strtod (or @a std:strtof or @a std::strtold).
-
-    @param[out] result  @ref basic_json object to receive the number, or
-    NAN if the conversion read past the current token. The latter case
-    needs to be treated by the caller function.
-    */
-    void get_number(basic_json& result) const
-    {
-        assert(m_start != nullptr);
-
-        const lexer::lexer_char_t* curptr = m_start;
-
-        // accumulate the integer conversion result (unsigned for now)
-        number_unsigned_t value = 0;
-
-        // maximum absolute value of the relevant integer type
-        number_unsigned_t max;
-
-        // temporarily store the type to avoid unecessary bitfield access
-        value_t type;
-
-        // look for sign
-        if (*curptr == '-')
-        {
-            type = value_t::number_integer;
-            max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1;
-            curptr++;
-        }
-        else
-        {
-            type = value_t::number_unsigned;
-            max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)());
-        }
-
-        // count the significant figures
-        for (; curptr < m_cursor; curptr++)
-        {
-            // quickly skip tests if a digit
-            if (*curptr < '0' || *curptr > '9')
-            {
-                if (*curptr == '.')
-                {
-                    // don't count '.' but change to float
-                    type = value_t::number_float;
-                    continue;
-                }
-                // assume exponent (if not then will fail parse): change to
-                // float, stop counting and record exponent details
-                type = value_t::number_float;
-                break;
-            }
-
-            // skip if definitely not an integer
-            if (type != value_t::number_float)
-            {
-                auto digit = static_cast<number_unsigned_t>(*curptr - '0');
-
-                // overflow if value * 10 + digit > max, move terms around
-                // to avoid overflow in intermediate values
-                if (value > (max - digit) / 10)
-                {
-                    // overflow
-                    type = value_t::number_float;
+                    codepoint =
+                        // high surrogate occupies the most significant 22 bits
+                        (codepoint1 << 10)
+                        // low surrogate occupies the least significant 15 bits
+                        + codepoint2
+                        // there is still the 0xD800, 0xDC00 and 0x10000 noise
+                        // in the result so we have to subtract with:
+                        // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00
+                        - 0x35FDC00;
                 }
                 else
                 {
-                    // no overflow
-                    value = value * 10 + digit;
+                    JSON_THROW(std::invalid_argument("missing or wrong low surrogate"));
+                }
+            }
+
+            string_t result;
+
+            if (codepoint < 0x80)
+            {
+                // 1-byte characters: 0xxxxxxx (ASCII)
+                result.append(1, static_cast<typename string_t::value_type>(codepoint));
+            }
+            else if (codepoint <= 0x7ff)
+            {
+                // 2-byte characters: 110xxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else if (codepoint <= 0xffff)
+            {
+                // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else if (codepoint <= 0x10ffff)
+            {
+                // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else
+            {
+                JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid"));
+            }
+
+            return result;
+        }
+
+        /// return name of values of type token_type (only used for errors)
+        static std::string token_type_name(const token_type t)
+        {
+            switch (t)
+            {
+                case token_type::uninitialized:
+                    return "<uninitialized>";
+                case token_type::literal_true:
+                    return "true literal";
+                case token_type::literal_false:
+                    return "false literal";
+                case token_type::literal_null:
+                    return "null literal";
+                case token_type::value_string:
+                    return "string literal";
+                case token_type::value_number:
+                    return "number literal";
+                case token_type::begin_array:
+                    return "'['";
+                case token_type::begin_object:
+                    return "'{'";
+                case token_type::end_array:
+                    return "']'";
+                case token_type::end_object:
+                    return "'}'";
+                case token_type::name_separator:
+                    return "':'";
+                case token_type::value_separator:
+                    return "','";
+                case token_type::parse_error:
+                    return "<parse error>";
+                case token_type::end_of_input:
+                    return "end of input";
+                default:
+                {
+                    // catch non-enum values
+                    return "unknown token"; // LCOV_EXCL_LINE
                 }
             }
         }
 
-        // save the value (if not a float)
-        if (type == value_t::number_unsigned)
-        {
-            result.m_value.number_unsigned = value;
-        }
-        else if (type == value_t::number_integer)
-        {
-            // invariant: if we parsed a '-', the absolute value is between
-            // 0 (we allow -0) and max == -INT64_MIN
-            assert(value >= 0);
-            assert(value <= max);
+        /*!
+        This function implements a scanner for JSON. It is specified using
+        regular expressions that try to follow RFC 7159 as close as possible.
+        These regular expressions are then translated into a minimized
+        deterministic finite automaton (DFA) by the tool
+        [re2c](http://re2c.org). As a result, the translated code for this
+        function consists of a large block of code with `goto` jumps.
 
-            if (value == max)
+        @return the class of the next token read from the buffer
+
+        @complexity Linear in the length of the input.\n
+
+        Proposition: The loop below will always terminate for finite input.\n
+
+        Proof (by contradiction): Assume a finite input. To loop forever, the
+        loop must never hit code with a `break` statement. The only code
+        snippets without a `break` statement are the continue statements for
+        whitespace and byte-order-marks. To loop forever, the input must be an
+        infinite sequence of whitespace or byte-order-marks. This contradicts
+        the assumption of finite input, q.e.d.
+        */
+        token_type scan()
+        {
+            while (true)
             {
-                // we cannot simply negate value (== max == -INT64_MIN),
-                // see https://github.com/nlohmann/json/issues/389
-                result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN);
+                // pointer for backtracking information
+                m_marker = nullptr;
+
+                // remember the begin of the token
+                m_start = m_cursor;
+                assert(m_start != nullptr);
+
+
+                {
+                    lexer_char_t yych;
+                    unsigned int yyaccept = 0;
+                    static const unsigned char yybm[] =
+                    {
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,  32,  32,   0,   0,  32,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        160, 128,   0, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        192, 192, 192, 192, 192, 192, 192, 192,
+                        192, 192, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128,   0, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                    };
+                    if ((m_limit - m_cursor) < 5)
+                    {
+                        fill_line_buffer(5);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yybm[0 + yych] & 32)
+                    {
+                        goto basic_json_parser_6;
+                    }
+                    if (yych <= '[')
+                    {
+                        if (yych <= '-')
+                        {
+                            if (yych <= '"')
+                            {
+                                if (yych <= 0x00)
+                                {
+                                    goto basic_json_parser_2;
+                                }
+                                if (yych <= '!')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                goto basic_json_parser_9;
+                            }
+                            else
+                            {
+                                if (yych <= '+')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                if (yych <= ',')
+                                {
+                                    goto basic_json_parser_10;
+                                }
+                                goto basic_json_parser_12;
+                            }
+                        }
+                        else
+                        {
+                            if (yych <= '9')
+                            {
+                                if (yych <= '/')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                if (yych <= '0')
+                                {
+                                    goto basic_json_parser_13;
+                                }
+                                goto basic_json_parser_15;
+                            }
+                            else
+                            {
+                                if (yych <= ':')
+                                {
+                                    goto basic_json_parser_17;
+                                }
+                                if (yych <= 'Z')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                goto basic_json_parser_19;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'n')
+                        {
+                            if (yych <= 'e')
+                            {
+                                if (yych == ']')
+                                {
+                                    goto basic_json_parser_21;
+                                }
+                                goto basic_json_parser_4;
+                            }
+                            else
+                            {
+                                if (yych <= 'f')
+                                {
+                                    goto basic_json_parser_23;
+                                }
+                                if (yych <= 'm')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                goto basic_json_parser_24;
+                            }
+                        }
+                        else
+                        {
+                            if (yych <= 'z')
+                            {
+                                if (yych == 't')
+                                {
+                                    goto basic_json_parser_25;
+                                }
+                                goto basic_json_parser_4;
+                            }
+                            else
+                            {
+                                if (yych <= '{')
+                                {
+                                    goto basic_json_parser_26;
+                                }
+                                if (yych == '}')
+                                {
+                                    goto basic_json_parser_28;
+                                }
+                                goto basic_json_parser_4;
+                            }
+                        }
+                    }
+basic_json_parser_2:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::end_of_input;
+                        break;
+                    }
+basic_json_parser_4:
+                    ++m_cursor;
+basic_json_parser_5:
+                    {
+                        last_token_type = token_type::parse_error;
+                        break;
+                    }
+basic_json_parser_6:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yybm[0 + yych] & 32)
+                    {
+                        goto basic_json_parser_6;
+                    }
+                    {
+                        continue;
+                    }
+basic_json_parser_9:
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych <= 0x1F)
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_31;
+                    }
+                    if (yych <= 0xC1)
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    if (yych <= 0xF4)
+                    {
+                        goto basic_json_parser_31;
+                    }
+                    goto basic_json_parser_5;
+basic_json_parser_10:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::value_separator;
+                        break;
+                    }
+basic_json_parser_12:
+                    yych = *++m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    if (yych <= '0')
+                    {
+                        goto basic_json_parser_13;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_15;
+                    }
+                    goto basic_json_parser_5;
+basic_json_parser_13:
+                    yyaccept = 1;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych <= 'D')
+                    {
+                        if (yych == '.')
+                        {
+                            goto basic_json_parser_43;
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        if (yych == 'e')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                    }
+basic_json_parser_14:
+                    {
+                        last_token_type = token_type::value_number;
+                        break;
+                    }
+basic_json_parser_15:
+                    yyaccept = 1;
+                    m_marker = ++m_cursor;
+                    if ((m_limit - m_cursor) < 3)
+                    {
+                        fill_line_buffer(3);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yybm[0 + yych] & 64)
+                    {
+                        goto basic_json_parser_15;
+                    }
+                    if (yych <= 'D')
+                    {
+                        if (yych == '.')
+                        {
+                            goto basic_json_parser_43;
+                        }
+                        goto basic_json_parser_14;
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        if (yych == 'e')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        goto basic_json_parser_14;
+                    }
+basic_json_parser_17:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::name_separator;
+                        break;
+                    }
+basic_json_parser_19:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::begin_array;
+                        break;
+                    }
+basic_json_parser_21:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::end_array;
+                        break;
+                    }
+basic_json_parser_23:
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych == 'a')
+                    {
+                        goto basic_json_parser_45;
+                    }
+                    goto basic_json_parser_5;
+basic_json_parser_24:
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych == 'u')
+                    {
+                        goto basic_json_parser_46;
+                    }
+                    goto basic_json_parser_5;
+basic_json_parser_25:
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych == 'r')
+                    {
+                        goto basic_json_parser_47;
+                    }
+                    goto basic_json_parser_5;
+basic_json_parser_26:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::begin_object;
+                        break;
+                    }
+basic_json_parser_28:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::end_object;
+                        break;
+                    }
+basic_json_parser_30:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+basic_json_parser_31:
+                    if (yybm[0 + yych] & 128)
+                    {
+                        goto basic_json_parser_30;
+                    }
+                    if (yych <= 0xE0)
+                    {
+                        if (yych <= '\\')
+                        {
+                            if (yych <= 0x1F)
+                            {
+                                goto basic_json_parser_32;
+                            }
+                            if (yych <= '"')
+                            {
+                                goto basic_json_parser_33;
+                            }
+                            goto basic_json_parser_35;
+                        }
+                        else
+                        {
+                            if (yych <= 0xC1)
+                            {
+                                goto basic_json_parser_32;
+                            }
+                            if (yych <= 0xDF)
+                            {
+                                goto basic_json_parser_36;
+                            }
+                            goto basic_json_parser_37;
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 0xEF)
+                        {
+                            if (yych == 0xED)
+                            {
+                                goto basic_json_parser_39;
+                            }
+                            goto basic_json_parser_38;
+                        }
+                        else
+                        {
+                            if (yych <= 0xF0)
+                            {
+                                goto basic_json_parser_40;
+                            }
+                            if (yych <= 0xF3)
+                            {
+                                goto basic_json_parser_41;
+                            }
+                            if (yych <= 0xF4)
+                            {
+                                goto basic_json_parser_42;
+                            }
+                        }
+                    }
+basic_json_parser_32:
+                    m_cursor = m_marker;
+                    if (yyaccept == 0)
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    else
+                    {
+                        goto basic_json_parser_14;
+                    }
+basic_json_parser_33:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::value_string;
+                        break;
+                    }
+basic_json_parser_35:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 'e')
+                    {
+                        if (yych <= '/')
+                        {
+                            if (yych == '"')
+                            {
+                                goto basic_json_parser_30;
+                            }
+                            if (yych <= '.')
+                            {
+                                goto basic_json_parser_32;
+                            }
+                            goto basic_json_parser_30;
+                        }
+                        else
+                        {
+                            if (yych <= '\\')
+                            {
+                                if (yych <= '[')
+                                {
+                                    goto basic_json_parser_32;
+                                }
+                                goto basic_json_parser_30;
+                            }
+                            else
+                            {
+                                if (yych == 'b')
+                                {
+                                    goto basic_json_parser_30;
+                                }
+                                goto basic_json_parser_32;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'q')
+                        {
+                            if (yych <= 'f')
+                            {
+                                goto basic_json_parser_30;
+                            }
+                            if (yych == 'n')
+                            {
+                                goto basic_json_parser_30;
+                            }
+                            goto basic_json_parser_32;
+                        }
+                        else
+                        {
+                            if (yych <= 's')
+                            {
+                                if (yych <= 'r')
+                                {
+                                    goto basic_json_parser_30;
+                                }
+                                goto basic_json_parser_32;
+                            }
+                            else
+                            {
+                                if (yych <= 't')
+                                {
+                                    goto basic_json_parser_30;
+                                }
+                                if (yych <= 'u')
+                                {
+                                    goto basic_json_parser_48;
+                                }
+                                goto basic_json_parser_32;
+                            }
+                        }
+                    }
+basic_json_parser_36:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_30;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_37:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x9F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_36;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_38:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_36;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_39:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0x9F)
+                    {
+                        goto basic_json_parser_36;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_40:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x8F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_41:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_42:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0x8F)
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_43:
+                    yych = *++m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_49;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_44:
+                    yych = *++m_cursor;
+                    if (yych <= ',')
+                    {
+                        if (yych == '+')
+                        {
+                            goto basic_json_parser_51;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= '-')
+                        {
+                            goto basic_json_parser_51;
+                        }
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_52;
+                        }
+                        goto basic_json_parser_32;
+                    }
+basic_json_parser_45:
+                    yych = *++m_cursor;
+                    if (yych == 'l')
+                    {
+                        goto basic_json_parser_54;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_46:
+                    yych = *++m_cursor;
+                    if (yych == 'l')
+                    {
+                        goto basic_json_parser_55;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_47:
+                    yych = *++m_cursor;
+                    if (yych == 'u')
+                    {
+                        goto basic_json_parser_56;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_48:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_57;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_57;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_57;
+                        }
+                        goto basic_json_parser_32;
+                    }
+basic_json_parser_49:
+                    yyaccept = 1;
+                    m_marker = ++m_cursor;
+                    if ((m_limit - m_cursor) < 3)
+                    {
+                        fill_line_buffer(3);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 'D')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_14;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_49;
+                        }
+                        goto basic_json_parser_14;
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        if (yych == 'e')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        goto basic_json_parser_14;
+                    }
+basic_json_parser_51:
+                    yych = *++m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych >= ':')
+                    {
+                        goto basic_json_parser_32;
+                    }
+basic_json_parser_52:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_14;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_52;
+                    }
+                    goto basic_json_parser_14;
+basic_json_parser_54:
+                    yych = *++m_cursor;
+                    if (yych == 's')
+                    {
+                        goto basic_json_parser_58;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_55:
+                    yych = *++m_cursor;
+                    if (yych == 'l')
+                    {
+                        goto basic_json_parser_59;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_56:
+                    yych = *++m_cursor;
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_61;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_57:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_63;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_63;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_63;
+                        }
+                        goto basic_json_parser_32;
+                    }
+basic_json_parser_58:
+                    yych = *++m_cursor;
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_64;
+                    }
+                    goto basic_json_parser_32;
+basic_json_parser_59:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::literal_null;
+                        break;
+                    }
+basic_json_parser_61:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::literal_true;
+                        break;
+                    }
+basic_json_parser_63:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_66;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_66;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_66;
+                        }
+                        goto basic_json_parser_32;
+                    }
+basic_json_parser_64:
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::literal_false;
+                        break;
+                    }
+basic_json_parser_66:
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                }
+
+            }
+
+            return last_token_type;
+        }
+
+        /*!
+        @brief append data from the stream to the line buffer
+
+        This function is called by the scan() function when the end of the
+        buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be
+        incremented without leaving the limits of the line buffer. Note re2c
+        decides when to call this function.
+
+        If the lexer reads from contiguous storage, there is no trailing null
+        byte. Therefore, this function must make sure to add these padding
+        null bytes.
+
+        If the lexer reads from an input stream, this function reads the next
+        line of the input.
+
+        @pre
+            p p p p p p u u u u u x . . . . . .
+            ^           ^       ^   ^
+            m_content   m_start |   m_limit
+                                m_cursor
+
+        @post
+            u u u u u x x x x x x x . . . . . .
+            ^       ^               ^
+            |       m_cursor        m_limit
+            m_start
+            m_content
+        */
+        void fill_line_buffer(size_t n = 0)
+        {
+            // if line buffer is used, m_content points to its data
+            assert(m_line_buffer.empty()
+                   or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()));
+
+            // if line buffer is used, m_limit is set past the end of its data
+            assert(m_line_buffer.empty()
+                   or m_limit == m_content + m_line_buffer.size());
+
+            // pointer relationships
+            assert(m_content <= m_start);
+            assert(m_start <= m_cursor);
+            assert(m_cursor <= m_limit);
+            assert(m_marker == nullptr or m_marker  <= m_limit);
+
+            // number of processed characters (p)
+            const auto num_processed_chars = static_cast<size_t>(m_start - m_content);
+            // offset for m_marker wrt. to m_start
+            const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start;
+            // number of unprocessed characters (u)
+            const auto offset_cursor = m_cursor - m_start;
+
+            // no stream is used or end of file is reached
+            if (m_stream == nullptr or m_stream->eof())
+            {
+                // m_start may or may not be pointing into m_line_buffer at
+                // this point. We trust the standand library to do the right
+                // thing. See http://stackoverflow.com/q/28142011/266378
+                m_line_buffer.assign(m_start, m_limit);
+
+                // append n characters to make sure that there is sufficient
+                // space between m_cursor and m_limit
+                m_line_buffer.append(1, '\x00');
+                if (n > 0)
+                {
+                    m_line_buffer.append(n - 1, '\x01');
+                }
             }
             else
             {
-                // all other values can be negated safely
-                result.m_value.number_integer = -static_cast<number_integer_t>(value);
+                // delete processed characters from line buffer
+                m_line_buffer.erase(0, num_processed_chars);
+                // read next line from input stream
+                m_line_buffer_tmp.clear();
+                std::getline(*m_stream, m_line_buffer_tmp, '\n');
+
+                // add line with newline symbol to the line buffer
+                m_line_buffer += m_line_buffer_tmp;
+                m_line_buffer.push_back('\n');
             }
+
+            // set pointers
+            m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data());
+            assert(m_content != nullptr);
+            m_start  = m_content;
+            m_marker = m_start + offset_marker;
+            m_cursor = m_start + offset_cursor;
+            m_limit  = m_start + m_line_buffer.size();
         }
-        else
+
+        /// return string representation of last read token
+        string_t get_token_string() const
         {
-            // parse with strtod
+            assert(m_start != nullptr);
+            return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
+                            static_cast<size_t>(m_cursor - m_start));
+        }
+
+        /*!
+        @brief return string value for string tokens
+
+        The function iterates the characters between the opening and closing
+        quotes of the string value. The complete string is the range
+        [m_start,m_cursor). Consequently, we iterate from m_start+1 to
+        m_cursor-1.
+
+        We differentiate two cases:
+
+        1. Escaped characters. In this case, a new character is constructed
+           according to the nature of the escape. Some escapes create new
+           characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied
+           as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape
+           `"\\uxxxx"` need special care. In this case, to_unicode takes care
+           of the construction of the values.
+        2. Unescaped characters are copied as is.
+
+        @pre `m_cursor - m_start >= 2`, meaning the length of the last token
+        is at least 2 bytes which is trivially true for any string (which
+        consists of at least two quotes).
+
+            " c1 c2 c3 ... "
+            ^                ^
+            m_start          m_cursor
+
+        @complexity Linear in the length of the string.\n
+
+        Lemma: The loop body will always terminate.\n
+
+        Proof (by contradiction): Assume the loop body does not terminate. As
+        the loop body does not contain another loop, one of the called
+        functions must never return. The called functions are `std::strtoul`
+        and to_unicode. Neither function can loop forever, so the loop body
+        will never loop forever which contradicts the assumption that the loop
+        body does not terminate, q.e.d.\n
+
+        Lemma: The loop condition for the for loop is eventually false.\n
+
+        Proof (by contradiction): Assume the loop does not terminate. Due to
+        the above lemma, this can only be due to a tautological loop
+        condition; that is, the loop condition i < m_cursor - 1 must always be
+        true. Let x be the change of i for any loop iteration. Then
+        m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This
+        can be rephrased to m_cursor - m_start - 2 > x. With the
+        precondition, we x <= 0, meaning that the loop condition holds
+        indefinitly if i is always decreased. However, observe that the value
+        of i is strictly increasing with each iteration, as it is incremented
+        by 1 in the iteration expression and never decremented inside the loop
+        body. Hence, the loop condition will eventually be false which
+        contradicts the assumption that the loop condition is a tautology,
+        q.e.d.
+
+        @return string value of current token without opening and closing
+        quotes
+        @throw std::out_of_range if to_unicode fails
+        */
+        string_t get_string() const
+        {
+            assert(m_cursor - m_start >= 2);
+
+            string_t result;
+            result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
+
+            // iterate the result between the quotes
+            for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
+            {
+                // find next escape character
+                auto e = std::find(i, m_cursor - 1, '\\');
+                if (e != i)
+                {
+                    // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705
+                    for (auto k = i; k < e; k++)
+                    {
+                        result.push_back(static_cast<typename string_t::value_type>(*k));
+                    }
+                    i = e - 1; // -1 because of ++i
+                }
+                else
+                {
+                    // processing escaped character
+                    // read next character
+                    ++i;
+
+                    switch (*i)
+                    {
+                        // the default escapes
+                        case 't':
+                        {
+                            result += "\t";
+                            break;
+                        }
+                        case 'b':
+                        {
+                            result += "\b";
+                            break;
+                        }
+                        case 'f':
+                        {
+                            result += "\f";
+                            break;
+                        }
+                        case 'n':
+                        {
+                            result += "\n";
+                            break;
+                        }
+                        case 'r':
+                        {
+                            result += "\r";
+                            break;
+                        }
+                        case '\\':
+                        {
+                            result += "\\";
+                            break;
+                        }
+                        case '/':
+                        {
+                            result += "/";
+                            break;
+                        }
+                        case '"':
+                        {
+                            result += "\"";
+                            break;
+                        }
+
+                        // unicode
+                        case 'u':
+                        {
+                            // get code xxxx from uxxxx
+                            auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
+                                                          4).c_str(), nullptr, 16);
+
+                            // check if codepoint is a high surrogate
+                            if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
+                            {
+                                // make sure there is a subsequent unicode
+                                if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
+                                {
+                                    JSON_THROW(std::invalid_argument("missing low surrogate"));
+                                }
+
+                                // get code yyyy from uxxxx\uyyyy
+                                auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
+                                                               (i + 7), 4).c_str(), nullptr, 16);
+                                result += to_unicode(codepoint, codepoint2);
+                                // skip the next 10 characters (xxxx\uyyyy)
+                                i += 10;
+                            }
+                            else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF)
+                            {
+                                // we found a lone low surrogate
+                                JSON_THROW(std::invalid_argument("missing high surrogate"));
+                            }
+                            else
+                            {
+                                // add unicode character(s)
+                                result += to_unicode(codepoint);
+                                // skip the next four characters (xxxx)
+                                i += 4;
+                            }
+                            break;
+                        }
+                    }
+                }
+            }
+
+            return result;
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in,out] endptr recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+        */
+        long double str_to_float_t(long double* /* type */, char** endptr) const
+        {
+            return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in,out] endptr  recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+        */
+        double str_to_float_t(double* /* type */, char** endptr) const
+        {
+            return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in,out] endptr  recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+        */
+        float str_to_float_t(float* /* type */, char** endptr) const
+        {
+            return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief return number value for number tokens
+
+        This function translates the last token into the most appropriate
+        number type (either integer, unsigned integer or floating point),
+        which is passed back to the caller via the result parameter.
+
+        This function parses the integer component up to the radix point or
+        exponent while collecting information about the 'floating point
+        representation', which it stores in the result parameter. If there is
+        no radix point or exponent, and the number can fit into a @ref
+        number_integer_t or @ref number_unsigned_t then it sets the result
+        parameter accordingly.
+
+        If the number is a floating point number the number is then parsed
+        using @a std:strtod (or @a std:strtof or @a std::strtold).
+
+        @param[out] result  @ref basic_json object to receive the number, or
+        NAN if the conversion read past the current token. The latter case
+        needs to be treated by the caller function.
+        */
+        void get_number(basic_json& result) const
+        {
+            assert(m_start != nullptr);
+
+            const lexer::lexer_char_t* curptr = m_start;
+
+            // accumulate the integer conversion result (unsigned for now)
+            number_unsigned_t value = 0;
+
+            // maximum absolute value of the relevant integer type
+            number_unsigned_t max;
+
+            // temporarily store the type to avoid unecessary bitfield access
+            value_t type;
+
+            // look for sign
+            if (*curptr == '-')
+            {
+                type = value_t::number_integer;
+                max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1;
+                curptr++;
+            }
+            else
+            {
+                type = value_t::number_unsigned;
+                max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)());
+            }
+
+            // count the significant figures
+            for (; curptr < m_cursor; curptr++)
+            {
+                // quickly skip tests if a digit
+                if (*curptr < '0' || *curptr > '9')
+                {
+                    if (*curptr == '.')
+                    {
+                        // don't count '.' but change to float
+                        type = value_t::number_float;
+                        continue;
+                    }
+                    // assume exponent (if not then will fail parse): change to
+                    // float, stop counting and record exponent details
+                    type = value_t::number_float;
+                    break;
+                }
+
+                // skip if definitely not an integer
+                if (type != value_t::number_float)
+                {
+                    auto digit = static_cast<number_unsigned_t>(*curptr - '0');
+
+                    // overflow if value * 10 + digit > max, move terms around
+                    // to avoid overflow in intermediate values
+                    if (value > (max - digit) / 10)
+                    {
+                        // overflow
+                        type = value_t::number_float;
+                    }
+                    else
+                    {
+                        // no overflow
+                        value = value * 10 + digit;
+                    }
+                }
+            }
+
+            // save the value (if not a float)
+            if (type == value_t::number_unsigned)
+            {
+                result.m_value.number_unsigned = value;
+            }
+            else if (type == value_t::number_integer)
+            {
+                // invariant: if we parsed a '-', the absolute value is between
+                // 0 (we allow -0) and max == -INT64_MIN
+                assert(value >= 0);
+                assert(value <= max);
+
+                if (value == max)
+                {
+                    // we cannot simply negate value (== max == -INT64_MIN),
+                    // see https://github.com/nlohmann/json/issues/389
+                    result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN);
+                }
+                else
+                {
+                    // all other values can be negated safely
+                    result.m_value.number_integer = -static_cast<number_integer_t>(value);
+                }
+            }
+            else
+            {
+                // parse with strtod
                 result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr);
 
-            // replace infinity and NAN by null
-            if (not std::isfinite(result.m_value.number_float))
-            {
-                type = value_t::null;
-                result.m_value = basic_json::json_value();
+                // replace infinity and NAN by null
+                if (not std::isfinite(result.m_value.number_float))
+                {
+                    type = value_t::null;
+                    result.m_value = basic_json::json_value();
+                }
             }
+
+            // save the type
+            result.m_type = type;
         }
 
-        // save the type
-        result.m_type = type;
-    }
-
-    private:
-    /// optional input stream
-    std::istream* m_stream = nullptr;
-    /// line buffer buffer for m_stream
-    string_t m_line_buffer {};
-    /// used for filling m_line_buffer
-    string_t m_line_buffer_tmp {};
-    /// the buffer pointer
-    const lexer_char_t* m_content = nullptr;
-    /// pointer to the beginning of the current symbol
-    const lexer_char_t* m_start = nullptr;
-    /// pointer for backtracking information
-    const lexer_char_t* m_marker = nullptr;
-    /// pointer to the current symbol
-    const lexer_char_t* m_cursor = nullptr;
-    /// pointer to the end of the buffer
-    const lexer_char_t* m_limit = nullptr;
-    /// the last token type
-    token_type last_token_type = token_type::end_of_input;
-                                                };
+      private:
+        /// optional input stream
+        std::istream* m_stream = nullptr;
+        /// line buffer buffer for m_stream
+        string_t m_line_buffer {};
+        /// used for filling m_line_buffer
+        string_t m_line_buffer_tmp {};
+        /// the buffer pointer
+        const lexer_char_t* m_content = nullptr;
+        /// pointer to the beginning of the current symbol
+        const lexer_char_t* m_start = nullptr;
+        /// pointer for backtracking information
+        const lexer_char_t* m_marker = nullptr;
+        /// pointer to the current symbol
+        const lexer_char_t* m_cursor = nullptr;
+        /// pointer to the end of the buffer
+        const lexer_char_t* m_limit = nullptr;
+        /// the last token type
+        token_type last_token_type = token_type::end_of_input;
+    };
 
     /*!
     @brief syntax analysis
@@ -10339,282 +10856,282 @@ basic_json_parser_66:
     */
     class parser
     {
-        public:
+      public:
         /// a parser reading from a string literal
         parser(const char* buff, const parser_callback_t cb = nullptr)
-        : callback(cb),
-        m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff))
-    {}
+            : callback(cb),
+              m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff))
+        {}
 
-    /// a parser reading from an input stream
-    parser(std::istream& is, const parser_callback_t cb = nullptr)
-    : callback(cb), m_lexer(is)
-    {}
+        /// a parser reading from an input stream
+        parser(std::istream& is, const parser_callback_t cb = nullptr)
+            : callback(cb), m_lexer(is)
+        {}
 
-    /// a parser reading from an iterator range with contiguous storage
-    template<class IteratorType, typename std::enable_if<
-                 std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value
-                 , int>::type
-             = 0>
-    parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr)
-    : callback(cb),
-    m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)),
-            static_cast<size_t>(std::distance(first, last)))
-    {}
+        /// a parser reading from an iterator range with contiguous storage
+        template<class IteratorType, typename std::enable_if<
+                     std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value
+                     , int>::type
+                 = 0>
+        parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr)
+            : callback(cb),
+              m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)),
+                      static_cast<size_t>(std::distance(first, last)))
+        {}
 
-    /// public parser interface
-    basic_json parse()
-    {
-        // read first token
-        get_token();
-
-        basic_json result = parse_internal(true);
-        result.assert_invariant();
-
-        expect(lexer::token_type::end_of_input);
-
-        // return parser result and replace it with null in case the
-        // top-level value was discarded by the callback function
-        return result.is_discarded() ? basic_json() : std::move(result);
-    }
-
-    private:
-    /// the actual parser
-    basic_json parse_internal(bool keep)
-    {
-        auto result = basic_json(value_t::discarded);
-
-        switch (last_token)
+        /// public parser interface
+        basic_json parse()
         {
-            case lexer::token_type::begin_object:
+            // read first token
+            get_token();
+
+            basic_json result = parse_internal(true);
+            result.assert_invariant();
+
+            expect(lexer::token_type::end_of_input);
+
+            // return parser result and replace it with null in case the
+            // top-level value was discarded by the callback function
+            return result.is_discarded() ? basic_json() : std::move(result);
+        }
+
+      private:
+        /// the actual parser
+        basic_json parse_internal(bool keep)
+        {
+            auto result = basic_json(value_t::discarded);
+
+            switch (last_token)
             {
-                if (keep and (not callback
-                              or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0)))
+                case lexer::token_type::begin_object:
                 {
-                    // explicitly set result to object to cope with {}
-                    result.m_type = value_t::object;
-                    result.m_value = value_t::object;
-                }
+                    if (keep and (not callback
+                                  or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0)))
+                    {
+                        // explicitly set result to object to cope with {}
+                        result.m_type = value_t::object;
+                        result.m_value = value_t::object;
+                    }
 
-                // read next token
-                get_token();
+                    // read next token
+                    get_token();
 
-                // closing } -> we are done
-                if (last_token == lexer::token_type::end_object)
-                {
+                    // closing } -> we are done
+                    if (last_token == lexer::token_type::end_object)
+                    {
+                        get_token();
+                        if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
+                        {
+                            result = basic_json(value_t::discarded);
+                        }
+                        return result;
+                    }
+
+                    // no comma is expected here
+                    unexpect(lexer::token_type::value_separator);
+
+                    // otherwise: parse key-value pairs
+                    do
+                    {
+                        // ugly, but could be fixed with loop reorganization
+                        if (last_token == lexer::token_type::value_separator)
+                        {
+                            get_token();
+                        }
+
+                        // store key
+                        expect(lexer::token_type::value_string);
+                        const auto key = m_lexer.get_string();
+
+                        bool keep_tag = false;
+                        if (keep)
+                        {
+                            if (callback)
+                            {
+                                basic_json k(key);
+                                keep_tag = callback(depth, parse_event_t::key, k);
+                            }
+                            else
+                            {
+                                keep_tag = true;
+                            }
+                        }
+
+                        // parse separator (:)
+                        get_token();
+                        expect(lexer::token_type::name_separator);
+
+                        // parse and add value
+                        get_token();
+                        auto value = parse_internal(keep);
+                        if (keep and keep_tag and not value.is_discarded())
+                        {
+                            result[key] = std::move(value);
+                        }
+                    }
+                    while (last_token == lexer::token_type::value_separator);
+
+                    // closing }
+                    expect(lexer::token_type::end_object);
                     get_token();
                     if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
                     {
                         result = basic_json(value_t::discarded);
                     }
+
                     return result;
                 }
 
-                // no comma is expected here
-                unexpect(lexer::token_type::value_separator);
-
-                // otherwise: parse key-value pairs
-                do
+                case lexer::token_type::begin_array:
                 {
-                    // ugly, but could be fixed with loop reorganization
-                    if (last_token == lexer::token_type::value_separator)
+                    if (keep and (not callback
+                                  or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0)))
+                    {
+                        // explicitly set result to object to cope with []
+                        result.m_type = value_t::array;
+                        result.m_value = value_t::array;
+                    }
+
+                    // read next token
+                    get_token();
+
+                    // closing ] -> we are done
+                    if (last_token == lexer::token_type::end_array)
                     {
                         get_token();
+                        if (callback and not callback(--depth, parse_event_t::array_end, result))
+                        {
+                            result = basic_json(value_t::discarded);
+                        }
+                        return result;
                     }
 
-                    // store key
-                    expect(lexer::token_type::value_string);
-                    const auto key = m_lexer.get_string();
+                    // no comma is expected here
+                    unexpect(lexer::token_type::value_separator);
 
-                    bool keep_tag = false;
-                    if (keep)
+                    // otherwise: parse values
+                    do
                     {
-                        if (callback)
+                        // ugly, but could be fixed with loop reorganization
+                        if (last_token == lexer::token_type::value_separator)
                         {
-                            basic_json k(key);
-                            keep_tag = callback(depth, parse_event_t::key, k);
+                            get_token();
                         }
-                        else
+
+                        // parse value
+                        auto value = parse_internal(keep);
+                        if (keep and not value.is_discarded())
                         {
-                            keep_tag = true;
+                            result.push_back(std::move(value));
                         }
                     }
+                    while (last_token == lexer::token_type::value_separator);
 
-                    // parse separator (:)
+                    // closing ]
+                    expect(lexer::token_type::end_array);
                     get_token();
-                    expect(lexer::token_type::name_separator);
-
-                    // parse and add value
-                    get_token();
-                    auto value = parse_internal(keep);
-                    if (keep and keep_tag and not value.is_discarded())
-                    {
-                        result[key] = std::move(value);
-                    }
-                }
-                while (last_token == lexer::token_type::value_separator);
-
-                // closing }
-                expect(lexer::token_type::end_object);
-                get_token();
-                if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
-                {
-                    result = basic_json(value_t::discarded);
-                }
-
-                return result;
-            }
-
-            case lexer::token_type::begin_array:
-            {
-                if (keep and (not callback
-                              or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0)))
-                {
-                    // explicitly set result to object to cope with []
-                    result.m_type = value_t::array;
-                    result.m_value = value_t::array;
-                }
-
-                // read next token
-                get_token();
-
-                // closing ] -> we are done
-                if (last_token == lexer::token_type::end_array)
-                {
-                    get_token();
-                    if (callback and not callback(--depth, parse_event_t::array_end, result))
+                    if (keep and callback and not callback(--depth, parse_event_t::array_end, result))
                     {
                         result = basic_json(value_t::discarded);
                     }
+
                     return result;
                 }
 
-                // no comma is expected here
-                unexpect(lexer::token_type::value_separator);
-
-                // otherwise: parse values
-                do
+                case lexer::token_type::literal_null:
                 {
-                    // ugly, but could be fixed with loop reorganization
-                    if (last_token == lexer::token_type::value_separator)
-                    {
-                        get_token();
-                    }
-
-                    // parse value
-                    auto value = parse_internal(keep);
-                    if (keep and not value.is_discarded())
-                    {
-                        result.push_back(std::move(value));
-                    }
-                }
-                while (last_token == lexer::token_type::value_separator);
-
-                // closing ]
-                expect(lexer::token_type::end_array);
-                get_token();
-                if (keep and callback and not callback(--depth, parse_event_t::array_end, result))
-                {
-                    result = basic_json(value_t::discarded);
+                    get_token();
+                    result.m_type = value_t::null;
+                    break;
                 }
 
-                return result;
+                case lexer::token_type::value_string:
+                {
+                    const auto s = m_lexer.get_string();
+                    get_token();
+                    result = basic_json(s);
+                    break;
+                }
+
+                case lexer::token_type::literal_true:
+                {
+                    get_token();
+                    result.m_type = value_t::boolean;
+                    result.m_value = true;
+                    break;
+                }
+
+                case lexer::token_type::literal_false:
+                {
+                    get_token();
+                    result.m_type = value_t::boolean;
+                    result.m_value = false;
+                    break;
+                }
+
+                case lexer::token_type::value_number:
+                {
+                    m_lexer.get_number(result);
+                    get_token();
+                    break;
+                }
+
+                default:
+                {
+                    // the last token was unexpected
+                    unexpect(last_token);
+                }
             }
 
-            case lexer::token_type::literal_null:
+            if (keep and callback and not callback(depth, parse_event_t::value, result))
             {
-                get_token();
-                result.m_type = value_t::null;
-                break;
-            }
-
-            case lexer::token_type::value_string:
-            {
-                const auto s = m_lexer.get_string();
-                get_token();
-                result = basic_json(s);
-                break;
-            }
-
-            case lexer::token_type::literal_true:
-            {
-                get_token();
-                result.m_type = value_t::boolean;
-                result.m_value = true;
-                break;
-            }
-
-            case lexer::token_type::literal_false:
-            {
-                get_token();
-                result.m_type = value_t::boolean;
-                result.m_value = false;
-                break;
-            }
-
-            case lexer::token_type::value_number:
-            {
-                m_lexer.get_number(result);
-                get_token();
-                break;
-            }
-
-            default:
-            {
-                // the last token was unexpected
-                unexpect(last_token);
+                result = basic_json(value_t::discarded);
             }
+            return result;
         }
 
-        if (keep and callback and not callback(depth, parse_event_t::value, result))
+        /// get next token from lexer
+        typename lexer::token_type get_token()
         {
-            result = basic_json(value_t::discarded);
+            last_token = m_lexer.scan();
+            return last_token;
         }
-        return result;
-    }
 
-    /// get next token from lexer
-    typename lexer::token_type get_token()
-    {
-        last_token = m_lexer.scan();
-        return last_token;
-    }
-
-    void expect(typename lexer::token_type t) const
-    {
-        if (t != last_token)
+        void expect(typename lexer::token_type t) const
         {
-            std::string error_msg = "parse error - unexpected ";
-            error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
-                          "'") :
-                          lexer::token_type_name(last_token));
-            error_msg += "; expected " + lexer::token_type_name(t);
+            if (t != last_token)
+            {
+                std::string error_msg = "parse error - unexpected ";
+                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
+                              "'") :
+                              lexer::token_type_name(last_token));
+                error_msg += "; expected " + lexer::token_type_name(t);
                 JSON_THROW(std::invalid_argument(error_msg));
+            }
         }
-    }
 
-    void unexpect(typename lexer::token_type t) const
-    {
-        if (t == last_token)
+        void unexpect(typename lexer::token_type t) const
         {
-            std::string error_msg = "parse error - unexpected ";
-            error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
-                          "'") :
-                          lexer::token_type_name(last_token));
+            if (t == last_token)
+            {
+                std::string error_msg = "parse error - unexpected ";
+                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
+                              "'") :
+                              lexer::token_type_name(last_token));
                 JSON_THROW(std::invalid_argument(error_msg));
+            }
         }
-    }
 
-    private:
-    /// current level of recursion
-    int depth = 0;
-    /// callback function
-    const parser_callback_t callback = nullptr;
-    /// the type of the last read token
-    typename lexer::token_type last_token = lexer::token_type::uninitialized;
-    /// the lexer
-    lexer m_lexer;
-                            };
+      private:
+        /// current level of recursion
+        int depth = 0;
+        /// callback function
+        const parser_callback_t callback = nullptr;
+        /// the type of the last read token
+        typename lexer::token_type last_token = lexer::token_type::uninitialized;
+        /// the lexer
+        lexer m_lexer;
+    };
 
   public:
     /*!
@@ -10633,7 +11150,7 @@ basic_json_parser_66:
         /// allow basic_json to access private members
         friend class basic_json;
 
-        public:
+      public:
         /*!
         @brief create JSON pointer
 
@@ -10657,573 +11174,573 @@ basic_json_parser_66:
         @since version 2.0.0
         */
         explicit json_pointer(const std::string& s = "")
-        : reference_tokens(split(s))
-    {}
+            : reference_tokens(split(s))
+        {}
 
-    /*!
-    @brief return a string representation of the JSON pointer
+        /*!
+        @brief return a string representation of the JSON pointer
 
-    @invariant For each JSON pointer `ptr`, it holds:
-    @code {.cpp}
-    ptr == json_pointer(ptr.to_string());
-    @endcode
+        @invariant For each JSON pointer `ptr`, it holds:
+        @code {.cpp}
+        ptr == json_pointer(ptr.to_string());
+        @endcode
 
-    @return a string representation of the JSON pointer
+        @return a string representation of the JSON pointer
 
-    @liveexample{The example shows the result of `to_string`.,
-    json_pointer__to_string}
+        @liveexample{The example shows the result of `to_string`.,
+        json_pointer__to_string}
 
-    @since version 2.0.0
-    */
-    std::string to_string() const noexcept
-    {
-        return std::accumulate(reference_tokens.begin(),
-                               reference_tokens.end(), std::string{},
-                               [](const std::string & a, const std::string & b)
+        @since version 2.0.0
+        */
+        std::string to_string() const noexcept
         {
-            return a + "/" + escape(b);
-        });
-    }
+            return std::accumulate(reference_tokens.begin(),
+                                   reference_tokens.end(), std::string{},
+                                   [](const std::string & a, const std::string & b)
+            {
+                return a + "/" + escape(b);
+            });
+        }
 
-    /// @copydoc to_string()
-    operator std::string() const
-    {
-        return to_string();
-    }
-
-    private:
-    /// remove and return last reference pointer
-    std::string pop_back()
-    {
-        if (is_root())
+        /// @copydoc to_string()
+        operator std::string() const
         {
+            return to_string();
+        }
+
+      private:
+        /// remove and return last reference pointer
+        std::string pop_back()
+        {
+            if (is_root())
+            {
                 JSON_THROW(std::domain_error("JSON pointer has no parent"));
+            }
+
+            auto last = reference_tokens.back();
+            reference_tokens.pop_back();
+            return last;
         }
 
-        auto last = reference_tokens.back();
-        reference_tokens.pop_back();
-        return last;
-    }
-
-    /// return whether pointer points to the root document
-    bool is_root() const
-    {
-        return reference_tokens.empty();
-    }
-
-    json_pointer top() const
-    {
-        if (is_root())
+        /// return whether pointer points to the root document
+        bool is_root() const
         {
+            return reference_tokens.empty();
+        }
+
+        json_pointer top() const
+        {
+            if (is_root())
+            {
                 JSON_THROW(std::domain_error("JSON pointer has no parent"));
-        }
-
-        json_pointer result = *this;
-        result.reference_tokens = {reference_tokens[0]};
-        return result;
-    }
-
-    /*!
-    @brief create and return a reference to the pointed to value
-
-    @complexity Linear in the number of reference tokens.
-    */
-    reference get_and_create(reference j) const
-    {
-        pointer result = &j;
-
-        // in case no reference tokens exist, return a reference to the
-        // JSON value j which will be overwritten by a primitive value
-        for (const auto& reference_token : reference_tokens)
-        {
-            switch (result->m_type)
-            {
-                case value_t::null:
-                {
-                    if (reference_token == "0")
-                    {
-                        // start a new array if reference token is 0
-                        result = &result->operator[](0);
-                    }
-                    else
-                    {
-                        // start a new object otherwise
-                        result = &result->operator[](reference_token);
-                    }
-                    break;
-                }
-
-                case value_t::object:
-                {
-                    // create an entry in the object
-                    result = &result->operator[](reference_token);
-                    break;
-                }
-
-                case value_t::array:
-                {
-                    // create an entry in the array
-                    result = &result->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                    break;
-                }
-
-                /*
-                The following code is only reached if there exists a
-                reference token _and_ the current value is primitive. In
-                this case, we have an error situation, because primitive
-                values may only occur as single value; that is, with an
-                empty list of reference tokens.
-                */
-                default:
-                {
-                        JSON_THROW(std::domain_error("invalid value to unflatten"));
-                }
-            }
-        }
-
-        return *result;
-    }
-
-    /*!
-    @brief return a reference to the pointed to value
-
-    @note This version does not throw if a value is not present, but tries
-    to create nested values instead. For instance, calling this function
-    with pointer `"/this/that"` on a null value is equivalent to calling
-    `operator[]("this").operator[]("that")` on that value, effectively
-    changing the null value to an object.
-
-    @param[in] ptr  a JSON value
-
-    @return reference to the JSON value pointed to by the JSON pointer
-
-    @complexity Linear in the length of the JSON pointer.
-
-    @throw std::out_of_range      if the JSON pointer can not be resolved
-    @throw std::domain_error      if an array index begins with '0'
-    @throw std::invalid_argument  if an array index was not a number
-    */
-    reference get_unchecked(pointer ptr) const
-    {
-        for (const auto& reference_token : reference_tokens)
-        {
-            // convert null values to arrays or objects before continuing
-            if (ptr->m_type == value_t::null)
-            {
-                // check if reference token is a number
-                const bool nums = std::all_of(reference_token.begin(),
-                                              reference_token.end(),
-                                              [](const char x)
-                {
-                    return std::isdigit(x);
-                });
-
-                // change value to array for numbers or "-" or to object
-                // otherwise
-                if (nums or reference_token == "-")
-                {
-                    *ptr = value_t::array;
-                }
-                else
-                {
-                    *ptr = value_t::object;
-                }
             }
 
-            switch (ptr->m_type)
-            {
-                case value_t::object:
-                {
-                    // use unchecked object access
-                    ptr = &ptr->operator[](reference_token);
-                    break;
-                }
-
-                case value_t::array:
-                {
-                    // error condition (cf. RFC 6901, Sect. 4)
-                    if (reference_token.size() > 1 and reference_token[0] == '0')
-                    {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                    }
-
-                    if (reference_token == "-")
-                    {
-                        // explicityly treat "-" as index beyond the end
-                        ptr = &ptr->operator[](ptr->m_value.array->size());
-                    }
-                    else
-                    {
-                        // convert array index to number; unchecked access
-                        ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                    }
-                    break;
-                }
-
-                default:
-                {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                }
-            }
-        }
-
-        return *ptr;
-    }
-
-    reference get_checked(pointer ptr) const
-    {
-        for (const auto& reference_token : reference_tokens)
-        {
-            switch (ptr->m_type)
-            {
-                case value_t::object:
-                {
-                    // note: at performs range check
-                    ptr = &ptr->at(reference_token);
-                    break;
-                }
-
-                case value_t::array:
-                {
-                    if (reference_token == "-")
-                    {
-                        // "-" always fails the range check
-                        throw std::out_of_range("array index '-' (" +
-                                                std::to_string(ptr->m_value.array->size()) +
-                                                ") is out of range");
-                    }
-
-                    // error condition (cf. RFC 6901, Sect. 4)
-                    if (reference_token.size() > 1 and reference_token[0] == '0')
-                    {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                    }
-
-                    // note: at performs range check
-                    ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
-                    break;
-                }
-
-                default:
-                {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                }
-            }
-        }
-
-        return *ptr;
-    }
-
-    /*!
-    @brief return a const reference to the pointed to value
-
-    @param[in] ptr  a JSON value
-
-    @return const reference to the JSON value pointed to by the JSON
-            pointer
-    */
-    const_reference get_unchecked(const_pointer ptr) const
-    {
-        for (const auto& reference_token : reference_tokens)
-        {
-            switch (ptr->m_type)
-            {
-                case value_t::object:
-                {
-                    // use unchecked object access
-                    ptr = &ptr->operator[](reference_token);
-                    break;
-                }
-
-                case value_t::array:
-                {
-                    if (reference_token == "-")
-                    {
-                        // "-" cannot be used for const access
-                        throw std::out_of_range("array index '-' (" +
-                                                std::to_string(ptr->m_value.array->size()) +
-                                                ") is out of range");
-                    }
-
-                    // error condition (cf. RFC 6901, Sect. 4)
-                    if (reference_token.size() > 1 and reference_token[0] == '0')
-                    {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                    }
-
-                    // use unchecked array access
-                    ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                    break;
-                }
-
-                default:
-                {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                }
-            }
-        }
-
-        return *ptr;
-    }
-
-    const_reference get_checked(const_pointer ptr) const
-    {
-        for (const auto& reference_token : reference_tokens)
-        {
-            switch (ptr->m_type)
-            {
-                case value_t::object:
-                {
-                    // note: at performs range check
-                    ptr = &ptr->at(reference_token);
-                    break;
-                }
-
-                case value_t::array:
-                {
-                    if (reference_token == "-")
-                    {
-                        // "-" always fails the range check
-                        throw std::out_of_range("array index '-' (" +
-                                                std::to_string(ptr->m_value.array->size()) +
-                                                ") is out of range");
-                    }
-
-                    // error condition (cf. RFC 6901, Sect. 4)
-                    if (reference_token.size() > 1 and reference_token[0] == '0')
-                    {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                    }
-
-                    // note: at performs range check
-                    ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
-                    break;
-                }
-
-                default:
-                {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                }
-            }
-        }
-
-        return *ptr;
-    }
-
-    /// split the string input to reference tokens
-    static std::vector<std::string> split(const std::string& reference_string)
-    {
-        std::vector<std::string> result;
-
-        // special case: empty reference string -> no reference tokens
-        if (reference_string.empty())
-        {
+            json_pointer result = *this;
+            result.reference_tokens = {reference_tokens[0]};
             return result;
         }
 
-        // check if nonempty reference string begins with slash
-        if (reference_string[0] != '/')
+        /*!
+        @brief create and return a reference to the pointed to value
+
+        @complexity Linear in the number of reference tokens.
+        */
+        reference get_and_create(reference j) const
         {
+            pointer result = &j;
+
+            // in case no reference tokens exist, return a reference to the
+            // JSON value j which will be overwritten by a primitive value
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (result->m_type)
+                {
+                    case value_t::null:
+                    {
+                        if (reference_token == "0")
+                        {
+                            // start a new array if reference token is 0
+                            result = &result->operator[](0);
+                        }
+                        else
+                        {
+                            // start a new object otherwise
+                            result = &result->operator[](reference_token);
+                        }
+                        break;
+                    }
+
+                    case value_t::object:
+                    {
+                        // create an entry in the object
+                        result = &result->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        // create an entry in the array
+                        result = &result->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    /*
+                    The following code is only reached if there exists a
+                    reference token _and_ the current value is primitive. In
+                    this case, we have an error situation, because primitive
+                    values may only occur as single value; that is, with an
+                    empty list of reference tokens.
+                    */
+                    default:
+                    {
+                        JSON_THROW(std::domain_error("invalid value to unflatten"));
+                    }
+                }
+            }
+
+            return *result;
+        }
+
+        /*!
+        @brief return a reference to the pointed to value
+
+        @note This version does not throw if a value is not present, but tries
+        to create nested values instead. For instance, calling this function
+        with pointer `"/this/that"` on a null value is equivalent to calling
+        `operator[]("this").operator[]("that")` on that value, effectively
+        changing the null value to an object.
+
+        @param[in] ptr  a JSON value
+
+        @return reference to the JSON value pointed to by the JSON pointer
+
+        @complexity Linear in the length of the JSON pointer.
+
+        @throw std::out_of_range      if the JSON pointer can not be resolved
+        @throw std::domain_error      if an array index begins with '0'
+        @throw std::invalid_argument  if an array index was not a number
+        */
+        reference get_unchecked(pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                // convert null values to arrays or objects before continuing
+                if (ptr->m_type == value_t::null)
+                {
+                    // check if reference token is a number
+                    const bool nums = std::all_of(reference_token.begin(),
+                                                  reference_token.end(),
+                                                  [](const char x)
+                    {
+                        return std::isdigit(x);
+                    });
+
+                    // change value to array for numbers or "-" or to object
+                    // otherwise
+                    if (nums or reference_token == "-")
+                    {
+                        *ptr = value_t::array;
+                    }
+                    else
+                    {
+                        *ptr = value_t::object;
+                    }
+                }
+
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // use unchecked object access
+                        ptr = &ptr->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                        }
+
+                        if (reference_token == "-")
+                        {
+                            // explicityly treat "-" as index beyond the end
+                            ptr = &ptr->operator[](ptr->m_value.array->size());
+                        }
+                        else
+                        {
+                            // convert array index to number; unchecked access
+                            ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        }
+                        break;
+                    }
+
+                    default:
+                    {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        reference get_checked(pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // note: at performs range check
+                        ptr = &ptr->at(reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" always fails the range check
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                        }
+
+                        // note: at performs range check
+                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        /*!
+        @brief return a const reference to the pointed to value
+
+        @param[in] ptr  a JSON value
+
+        @return const reference to the JSON value pointed to by the JSON
+                pointer
+        */
+        const_reference get_unchecked(const_pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // use unchecked object access
+                        ptr = &ptr->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" cannot be used for const access
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                        }
+
+                        // use unchecked array access
+                        ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        const_reference get_checked(const_pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // note: at performs range check
+                        ptr = &ptr->at(reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" always fails the range check
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                        }
+
+                        // note: at performs range check
+                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        /// split the string input to reference tokens
+        static std::vector<std::string> split(const std::string& reference_string)
+        {
+            std::vector<std::string> result;
+
+            // special case: empty reference string -> no reference tokens
+            if (reference_string.empty())
+            {
+                return result;
+            }
+
+            // check if nonempty reference string begins with slash
+            if (reference_string[0] != '/')
+            {
                 JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'"));
-        }
+            }
 
-        // extract the reference tokens:
-        // - slash: position of the last read slash (or end of string)
-        // - start: position after the previous slash
-        for (
-            // search for the first slash after the first character
+            // extract the reference tokens:
+            // - slash: position of the last read slash (or end of string)
+            // - start: position after the previous slash
+            for (
+                // search for the first slash after the first character
                 size_t slash = reference_string.find_first_of('/', 1),
-            // set the beginning of the first reference token
-            start = 1;
-            // we can stop if start == string::npos+1 = 0
-            start != 0;
-            // set the beginning of the next reference token
-            // (will eventually be 0 if slash == std::string::npos)
-            start = slash + 1,
-            // find next slash
+                // set the beginning of the first reference token
+                start = 1;
+                // we can stop if start == string::npos+1 = 0
+                start != 0;
+                // set the beginning of the next reference token
+                // (will eventually be 0 if slash == std::string::npos)
+                start = slash + 1,
+                // find next slash
                 slash = reference_string.find_first_of('/', start))
-        {
-            // use the text between the beginning of the reference token
-            // (start) and the last slash (slash).
-            auto reference_token = reference_string.substr(start, slash - start);
+            {
+                // use the text between the beginning of the reference token
+                // (start) and the last slash (slash).
+                auto reference_token = reference_string.substr(start, slash - start);
 
-            // check reference tokens are properly escaped
+                // check reference tokens are properly escaped
                 for (size_t pos = reference_token.find_first_of('~');
-                    pos != std::string::npos;
+                        pos != std::string::npos;
                         pos = reference_token.find_first_of('~', pos + 1))
-            {
-                assert(reference_token[pos] == '~');
-
-                // ~ must be followed by 0 or 1
-                if (pos == reference_token.size() - 1 or
-                        (reference_token[pos + 1] != '0' and
-                         reference_token[pos + 1] != '1'))
                 {
+                    assert(reference_token[pos] == '~');
+
+                    // ~ must be followed by 0 or 1
+                    if (pos == reference_token.size() - 1 or
+                            (reference_token[pos + 1] != '0' and
+                             reference_token[pos + 1] != '1'))
+                    {
                         JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'"));
-                }
-            }
-
-            // finally, store the reference token
-            unescape(reference_token);
-            result.push_back(reference_token);
-        }
-
-        return result;
-    }
-
-    private:
-    /*!
-    @brief replace all occurrences of a substring by another string
-
-    @param[in,out] s  the string to manipulate; changed so that all
-                      occurrences of @a f are replaced with @a t
-    @param[in]     f  the substring to replace with @a t
-    @param[in]     t  the string to replace @a f
-
-    @pre The search string @a f must not be empty.
-
-    @since version 2.0.0
-    */
-    static void replace_substring(std::string& s,
-                                  const std::string& f,
-                                  const std::string& t)
-    {
-        assert(not f.empty());
-
-        for (
-            size_t pos = s.find(f);         // find first occurrence of f
-            pos != std::string::npos;       // make sure f was found
-            s.replace(pos, f.size(), t),    // replace with t
-            pos = s.find(f, pos + t.size()) // find next occurrence of f
-        );
-    }
-
-    /// escape tilde and slash
-    static std::string escape(std::string s)
-    {
-        // escape "~"" to "~0" and "/" to "~1"
-        replace_substring(s, "~", "~0");
-        replace_substring(s, "/", "~1");
-        return s;
-    }
-
-    /// unescape tilde and slash
-    static void unescape(std::string& s)
-    {
-        // first transform any occurrence of the sequence '~1' to '/'
-        replace_substring(s, "~1", "/");
-        // then transform any occurrence of the sequence '~0' to '~'
-        replace_substring(s, "~0", "~");
-    }
-
-    /*!
-    @param[in] reference_string  the reference string to the current value
-    @param[in] value             the value to consider
-    @param[in,out] result        the result object to insert values to
-
-    @note Empty objects or arrays are flattened to `null`.
-    */
-    static void flatten(const std::string& reference_string,
-                        const basic_json& value,
-                        basic_json& result)
-    {
-        switch (value.m_type)
-        {
-            case value_t::array:
-            {
-                if (value.m_value.array->empty())
-                {
-                    // flatten empty array as null
-                    result[reference_string] = nullptr;
-                }
-                else
-                {
-                    // iterate array and use index as reference string
-                    for (size_t i = 0; i < value.m_value.array->size(); ++i)
-                    {
-                        flatten(reference_string + "/" + std::to_string(i),
-                                value.m_value.array->operator[](i), result);
                     }
                 }
-                break;
+
+                // finally, store the reference token
+                unescape(reference_token);
+                result.push_back(reference_token);
             }
 
-            case value_t::object:
+            return result;
+        }
+
+      private:
+        /*!
+        @brief replace all occurrences of a substring by another string
+
+        @param[in,out] s  the string to manipulate; changed so that all
+                          occurrences of @a f are replaced with @a t
+        @param[in]     f  the substring to replace with @a t
+        @param[in]     t  the string to replace @a f
+
+        @pre The search string @a f must not be empty.
+
+        @since version 2.0.0
+        */
+        static void replace_substring(std::string& s,
+                                      const std::string& f,
+                                      const std::string& t)
+        {
+            assert(not f.empty());
+
+            for (
+                size_t pos = s.find(f);         // find first occurrence of f
+                pos != std::string::npos;       // make sure f was found
+                s.replace(pos, f.size(), t),    // replace with t
+                pos = s.find(f, pos + t.size()) // find next occurrence of f
+            );
+        }
+
+        /// escape tilde and slash
+        static std::string escape(std::string s)
+        {
+            // escape "~"" to "~0" and "/" to "~1"
+            replace_substring(s, "~", "~0");
+            replace_substring(s, "/", "~1");
+            return s;
+        }
+
+        /// unescape tilde and slash
+        static void unescape(std::string& s)
+        {
+            // first transform any occurrence of the sequence '~1' to '/'
+            replace_substring(s, "~1", "/");
+            // then transform any occurrence of the sequence '~0' to '~'
+            replace_substring(s, "~0", "~");
+        }
+
+        /*!
+        @param[in] reference_string  the reference string to the current value
+        @param[in] value             the value to consider
+        @param[in,out] result        the result object to insert values to
+
+        @note Empty objects or arrays are flattened to `null`.
+        */
+        static void flatten(const std::string& reference_string,
+                            const basic_json& value,
+                            basic_json& result)
+        {
+            switch (value.m_type)
             {
-                if (value.m_value.object->empty())
+                case value_t::array:
                 {
-                    // flatten empty object as null
-                    result[reference_string] = nullptr;
-                }
-                else
-                {
-                    // iterate object and use keys as reference string
-                    for (const auto& element : *value.m_value.object)
+                    if (value.m_value.array->empty())
                     {
-                        flatten(reference_string + "/" + escape(element.first),
-                                element.second, result);
+                        // flatten empty array as null
+                        result[reference_string] = nullptr;
                     }
+                    else
+                    {
+                        // iterate array and use index as reference string
+                        for (size_t i = 0; i < value.m_value.array->size(); ++i)
+                        {
+                            flatten(reference_string + "/" + std::to_string(i),
+                                    value.m_value.array->operator[](i), result);
+                        }
+                    }
+                    break;
                 }
-                break;
-            }
 
-            default:
-            {
-                // add primitive value with its reference string
-                result[reference_string] = value;
-                break;
+                case value_t::object:
+                {
+                    if (value.m_value.object->empty())
+                    {
+                        // flatten empty object as null
+                        result[reference_string] = nullptr;
+                    }
+                    else
+                    {
+                        // iterate object and use keys as reference string
+                        for (const auto& element : *value.m_value.object)
+                        {
+                            flatten(reference_string + "/" + escape(element.first),
+                                    element.second, result);
+                        }
+                    }
+                    break;
+                }
+
+                default:
+                {
+                    // add primitive value with its reference string
+                    result[reference_string] = value;
+                    break;
+                }
             }
         }
-    }
 
-    /*!
-    @param[in] value  flattened JSON
+        /*!
+        @param[in] value  flattened JSON
 
-    @return unflattened JSON
-    */
-    static basic_json unflatten(const basic_json& value)
-    {
-        if (not value.is_object())
+        @return unflattened JSON
+        */
+        static basic_json unflatten(const basic_json& value)
         {
+            if (not value.is_object())
+            {
                 JSON_THROW(std::domain_error("only objects can be unflattened"));
-        }
-
-        basic_json result;
-
-        // iterate the JSON object values
-        for (const auto& element : *value.m_value.object)
-        {
-            if (not element.second.is_primitive())
-            {
-                    JSON_THROW(std::domain_error("values in object must be primitive"));
             }
 
-            // assign value to reference pointed to by JSON pointer; Note
-            // that if the JSON pointer is "" (i.e., points to the whole
-            // value), function get_and_create returns a reference to
-            // result itself. An assignment will then create a primitive
-            // value.
-            json_pointer(element.first).get_and_create(result) = element.second;
+            basic_json result;
+
+            // iterate the JSON object values
+            for (const auto& element : *value.m_value.object)
+            {
+                if (not element.second.is_primitive())
+                {
+                    JSON_THROW(std::domain_error("values in object must be primitive"));
+                }
+
+                // assign value to reference pointed to by JSON pointer; Note
+                // that if the JSON pointer is "" (i.e., points to the whole
+                // value), function get_and_create returns a reference to
+                // result itself. An assignment will then create a primitive
+                // value.
+                json_pointer(element.first).get_and_create(result) = element.second;
+            }
+
+            return result;
         }
 
-        return result;
-    }
+      private:
+        friend bool operator==(json_pointer const& lhs,
+                               json_pointer const& rhs) noexcept
+        {
+            return lhs.reference_tokens == rhs.reference_tokens;
+        }
 
-    private:
-    friend bool operator==(json_pointer const &lhs,
-                           json_pointer const &rhs) noexcept
-    {
-      return lhs.reference_tokens == rhs.reference_tokens;
-    }
+        friend bool operator!=(json_pointer const& lhs,
+                               json_pointer const& rhs) noexcept
+        {
+            return !(lhs == rhs);
+        }
 
-    friend bool operator!=(json_pointer const &lhs,
-                           json_pointer const &rhs) noexcept
-    {
-      return !(lhs == rhs);
-    }
-
-    /// the reference tokens
-    std::vector<std::string> reference_tokens {};
+        /// the reference tokens
+        std::vector<std::string> reference_tokens {};
     };
 
     //////////////////////////
@@ -11899,25 +12416,26 @@ Returns an ordering that is similar to Python:
 */
 inline bool operator<(const value_t lhs, const value_t rhs) noexcept
 {
-  static constexpr std::array<uint8_t, 8> order = {{
-      0, // null
-      3, // object
-      4, // array
-      5, // string
-      1, // boolean
-      2, // integer
-      2, // unsigned
-      2, // float
-  }};
+    static constexpr std::array<uint8_t, 8> order = {{
+            0, // null
+            3, // object
+            4, // array
+            5, // string
+            1, // boolean
+            2, // integer
+            2, // unsigned
+            2, // float
+        }
+    };
 
-  // discarded values are not comparable
-  if (lhs == value_t::discarded or rhs == value_t::discarded)
-  {
-    return false;
-  }
+    // discarded values are not comparable
+    if (lhs == value_t::discarded or rhs == value_t::discarded)
+    {
+        return false;
+    }
 
-  return order[static_cast<std::size_t>(lhs)] <
-         order[static_cast<std::size_t>(rhs)];
+    return order[static_cast<std::size_t>(lhs)] <
+           order[static_cast<std::size_t>(rhs)];
 }
 
 /////////////
@@ -11942,38 +12460,38 @@ using json = basic_json<>;
 
 // specialization of std::swap, and std::hash
 namespace std
+{
+/*!
+@brief exchanges the values of two JSON objects
+
+@since version 1.0.0
+*/
+template<>
+inline void swap(nlohmann::json& j1,
+                 nlohmann::json& j2) noexcept(
+                     is_nothrow_move_constructible<nlohmann::json>::value and
+                     is_nothrow_move_assignable<nlohmann::json>::value
+                 )
+{
+    j1.swap(j2);
+}
+
+/// hash value for JSON objects
+template<>
+struct hash<nlohmann::json>
 {
     /*!
-    @brief exchanges the values of two JSON objects
+    @brief return a hash value for a JSON object
 
     @since version 1.0.0
     */
-    template<>
-    inline void swap(nlohmann::json& j1,
-                     nlohmann::json& j2) noexcept(
-                         is_nothrow_move_constructible<nlohmann::json>::value and
-                         is_nothrow_move_assignable<nlohmann::json>::value
-                                                   )
-    {
-        j1.swap(j2);
-    }
-
-    /// hash value for JSON objects
-    template<>
-    struct hash<nlohmann::json>
-    {
-        /*!
-        @brief return a hash value for a JSON object
-
-        @since version 1.0.0
-        */
-        std::size_t operator()(const nlohmann::json& j) const
+    std::size_t operator()(const nlohmann::json& j) const
     {
         // a naive hashing via the string representation
         const auto& h = hash<nlohmann::json::string_t>();
         return h(j.dump());
     }
-                        };
+};
 } // namespace std
 
 /*!
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 8fbff2ad..cbda7ee7 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -136,15 +136,15 @@ the default value for a given type
 */
 enum class value_t : uint8_t
 {
-  null,            ///< null value
-  object,          ///< object (unordered set of name/value pairs)
-  array,           ///< array (ordered collection of values)
-  string,          ///< string value
-  boolean,         ///< boolean value
-  number_integer,  ///< number value (signed integer)
-  number_unsigned, ///< number value (unsigned integer)
-  number_float,    ///< number value (floating-point)
-  discarded        ///< discarded by the the parser callback function
+    null,            ///< null value
+    object,          ///< object (unordered set of name/value pairs)
+    array,           ///< array (ordered collection of values)
+    string,          ///< string value
+    boolean,         ///< boolean value
+    number_integer,  ///< number value (signed integer)
+    number_unsigned, ///< number value (unsigned integer)
+    number_float,    ///< number value (floating-point)
+    discarded        ///< discarded by the the parser callback function
 };
 
 // alias templates to reduce boilerplate
@@ -168,29 +168,29 @@ using is_unscoped_enum =
 
 namespace detail
 {
-template <typename Json> std::string type_name(const  Json &j)
+template <typename Json> std::string type_name(const  Json& j)
 {
-  switch (j.m_type)
-  {
-  case value_t::null:
-    return "null";
-  case value_t::object:
-    return "object";
-  case value_t::array:
-    return "array";
-  case value_t::string:
-    return "string";
-  case value_t::boolean:
-    return "boolean";
-  case value_t::discarded:
-    return "discarded";
-  default:
-    return "number";
-  }
+    switch (j.m_type)
+    {
+        case value_t::null:
+            return "null";
+        case value_t::object:
+            return "object";
+        case value_t::array:
+            return "array";
+        case value_t::string:
+            return "string";
+        case value_t::boolean:
+            return "boolean";
+        case value_t::discarded:
+            return "discarded";
+        default:
+            return "number";
+    }
 }
 
 // dispatch utility (taken from ranges-v3)
-template <unsigned N> struct priority_tag : priority_tag<N - 1> {};
+template <unsigned N> struct priority_tag : priority_tag < N - 1 > {};
 
 template <> struct priority_tag<0> {};
 
@@ -201,120 +201,120 @@ template <value_t> struct external_constructor;
 template <>
 struct external_constructor<value_t::boolean>
 {
-  template <typename Json>
-  static void construct(Json &j, typename Json::boolean_t b) noexcept
-  {
-    j.m_type = value_t::boolean;
-    j.m_value = b;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, typename Json::boolean_t b) noexcept
+    {
+        j.m_type = value_t::boolean;
+        j.m_value = b;
+        j.assert_invariant();
+    }
 };
 
 template <>
 struct external_constructor<value_t::string>
 {
-  template <typename Json>
-  static void construct(Json &j, const typename Json::string_t& s)
-  {
-    j.m_type = value_t::string;
-    j.m_value = s;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, const typename Json::string_t& s)
+    {
+        j.m_type = value_t::string;
+        j.m_value = s;
+        j.assert_invariant();
+    }
 };
 
 template <>
 struct external_constructor<value_t::number_float>
 {
-  template <typename Json>
-  static void construct(Json &j, typename Json::number_float_t val) noexcept
-  {
-    // replace infinity and NAN by null
-    if (not std::isfinite(val))
-      j = Json{};
-    else
+    template <typename Json>
+    static void construct(Json& j, typename Json::number_float_t val) noexcept
     {
-      j.m_type = value_t::number_float;
-      j.m_value = val;
+        // replace infinity and NAN by null
+        if (not std::isfinite(val))
+            j = Json{};
+        else
+        {
+            j.m_type = value_t::number_float;
+            j.m_value = val;
+        }
+        j.assert_invariant();
     }
-    j.assert_invariant();
-  }
 };
 
 template <>
 struct external_constructor<value_t::number_unsigned>
 {
-  template <typename Json>
-  static void construct(Json &j, typename Json::number_unsigned_t val) noexcept
-  {
-    j.m_type = value_t::number_unsigned;
-    j.m_value = val;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, typename Json::number_unsigned_t val) noexcept
+    {
+        j.m_type = value_t::number_unsigned;
+        j.m_value = val;
+        j.assert_invariant();
+    }
 };
 
 template <>
 struct external_constructor<value_t::number_integer>
 {
-  template <typename Json>
-  static void construct(Json &j, typename Json::number_integer_t val) noexcept
-  {
-    j.m_type = value_t::number_integer;
-    j.m_value = val;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, typename Json::number_integer_t val) noexcept
+    {
+        j.m_type = value_t::number_integer;
+        j.m_value = val;
+        j.assert_invariant();
+    }
 };
 
 template <>
 struct external_constructor<value_t::array>
 {
-  template <typename Json>
-  static void construct(Json &j, const typename Json::array_t& arr)
-  {
-    j.m_type = value_t::array;
-    j.m_value = arr;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, const typename Json::array_t& arr)
+    {
+        j.m_type = value_t::array;
+        j.m_value = arr;
+        j.assert_invariant();
+    }
 
-  template <typename Json, typename CompatibleArrayType,
-            enable_if_t<not std::is_same<CompatibleArrayType,
-                                         typename Json::array_t>::value,
-                        int> = 0>
-  static void construct(Json &j, const CompatibleArrayType &arr)
-  {
-    using std::begin;
-    using std::end;
-    j.m_type = value_t::array;
-    j.m_value.array =
-        j.template create<typename Json::array_t>(begin(arr), end(arr));
-    j.assert_invariant();
-  }
+    template <typename Json, typename CompatibleArrayType,
+              enable_if_t<not std::is_same<CompatibleArrayType,
+                                           typename Json::array_t>::value,
+                          int> = 0>
+    static void construct(Json& j, const CompatibleArrayType& arr)
+    {
+        using std::begin;
+        using std::end;
+        j.m_type = value_t::array;
+        j.m_value.array =
+            j.template create<typename Json::array_t>(begin(arr), end(arr));
+        j.assert_invariant();
+    }
 };
 
 template <>
 struct external_constructor<value_t::object>
 {
-  template <typename Json>
-  static void construct(Json &j, const typename Json::object_t& obj)
-  {
-    j.m_type = value_t::object;
-    j.m_value = obj;
-    j.assert_invariant();
-  }
+    template <typename Json>
+    static void construct(Json& j, const typename Json::object_t& obj)
+    {
+        j.m_type = value_t::object;
+        j.m_value = obj;
+        j.assert_invariant();
+    }
 
-  template <typename Json, typename CompatibleObjectType,
-            enable_if_t<not std::is_same<CompatibleObjectType,
-                                         typename Json::object_t>::value,
-                        int> = 0>
-  static void construct(Json &j, const CompatibleObjectType &obj)
-  {
-    using std::begin;
-    using std::end;
+    template <typename Json, typename CompatibleObjectType,
+              enable_if_t<not std::is_same<CompatibleObjectType,
+                                           typename Json::object_t>::value,
+                          int> = 0>
+    static void construct(Json& j, const CompatibleObjectType& obj)
+    {
+        using std::begin;
+        using std::end;
 
-    j.m_type = value_t::object;
-    j.m_value.object =
-        j.template create<typename Json::object_t>(begin(obj), end(obj));
-    j.assert_invariant();
-  }
+        j.m_type = value_t::object;
+        j.m_value.object =
+            j.template create<typename Json::object_t>(begin(obj), end(obj));
+        j.assert_invariant();
+    }
 };
 
 // Implementation of 2 C++17 constructs: conjunction, negation.
@@ -380,11 +380,11 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 template<class BasicJson, class CompatibleObjectType>
 struct is_compatible_object_type
 {
-    static auto constexpr value = is_compatible_object_type_impl<
-        conjunction<negation<std::is_same<void, CompatibleObjectType>>,
-                    has_mapped_type<CompatibleObjectType>,
-                    has_key_type<CompatibleObjectType>>::value,
-        typename BasicJson::object_t, CompatibleObjectType>::value;
+    static auto constexpr value = is_compatible_object_type_impl <
+                                  conjunction<negation<std::is_same<void, CompatibleObjectType>>,
+                                  has_mapped_type<CompatibleObjectType>,
+                                  has_key_type<CompatibleObjectType>>::value,
+                                  typename BasicJson::object_t, CompatibleObjectType >::value;
 };
 
 template <typename BasicJson, typename T>
@@ -400,17 +400,17 @@ struct is_basic_json_nested_type
 template <class BasicJson, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-  // TODO concept Container?
-  // this might not make VS happy
-    static auto constexpr value = 
+    // TODO concept Container?
+    // this might not make VS happy
+    static auto constexpr value =
         conjunction<negation<std::is_same<void, CompatibleArrayType>>,
-                    negation<is_compatible_object_type<
-                        BasicJson, CompatibleArrayType>>,
-                    negation<std::is_constructible<typename BasicJson::string_t,
-                                                   CompatibleArrayType>>,
-                    negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>,
-                    has_value_type<CompatibleArrayType>,
-                    has_iterator<CompatibleArrayType>>::value;
+        negation<is_compatible_object_type<
+        BasicJson, CompatibleArrayType>>,
+        negation<std::is_constructible<typename BasicJson::string_t,
+        CompatibleArrayType>>,
+        negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>,
+        has_value_type<CompatibleArrayType>,
+        has_iterator<CompatibleArrayType>>::value;
 };
 
 template <bool, typename, typename>
@@ -419,7 +419,7 @@ struct is_compatible_integer_type_impl : std::false_type {};
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
 {
-  // is there an assert somewhere on overflows?
+    // is there an assert somewhere on overflows?
     using RealLimits = std::numeric_limits<RealIntegerType>;
     using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>;
 
@@ -433,11 +433,11 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn
 template <typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
-  static constexpr auto
-      value = is_compatible_integer_type_impl <
-                  std::is_integral<CompatibleNumberIntegerType>::value and
-              not std::is_same<bool, CompatibleNumberIntegerType>::value,
-      RealIntegerType, CompatibleNumberIntegerType > ::value;
+    static constexpr auto
+    value = is_compatible_integer_type_impl <
+            std::is_integral<CompatibleNumberIntegerType>::value and
+            not std::is_same<bool, CompatibleNumberIntegerType>::value,
+            RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
@@ -461,261 +461,287 @@ struct has_from_json
 template <typename Json, typename T>
 struct has_non_default_from_json
 {
-private:
-  template <
-      typename U,
-      typename = enable_if_t<std::is_same<
-          T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value>>
-  static int detect(U &&);
-  static void detect(...);
+  private:
+    template <
+        typename U,
+        typename = enable_if_t<std::is_same<
+                                   T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value >>
+    static int detect(U&&);
+    static void detect(...);
 
-public:
-  static constexpr bool value = std::is_integral<decltype(detect(
-      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
+  public:
+    static constexpr bool value = std::is_integral<decltype(detect(
+                                      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
 };
 
 // This trait checks if Json::json_serializer<T>::to_json exists
 template <typename Json, typename T>
 struct has_to_json
 {
-private:
-  template <typename U, typename = decltype(uncvref_t<U>::to_json(
-                            std::declval<Json &>(), std::declval<T>()))>
-  static int detect(U &&);
-  static void detect(...);
+  private:
+    template <typename U, typename = decltype(uncvref_t<U>::to_json(
+                  std::declval<Json&>(), std::declval<T>()))>
+    static int detect(U&&);
+    static void detect(...);
 
-public:
-  static constexpr bool value = std::is_integral<decltype(detect(
-      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
+  public:
+    static constexpr bool value = std::is_integral<decltype(detect(
+                                      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
 };
 
 // overloads for basic_json template parameters
 
 template <typename Json, typename ArithmeticType,
           enable_if_t<std::is_arithmetic<ArithmeticType>::value and
-                          not std::is_same<ArithmeticType,
-                                           typename Json::boolean_t>::value,
+                      not std::is_same<ArithmeticType,
+                                       typename Json::boolean_t>::value,
                       int> = 0>
-void get_arithmetic_value(const  Json &j, ArithmeticType &val)
+void get_arithmetic_value(const  Json& j, ArithmeticType& val)
 {
-  // unsigned must be checked first, since is_number_integer() == true for unsigned
-  if (j.is_number_unsigned())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
-  else if (j.is_number_integer())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
-  else if (j.is_number_float())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
-  else
-    throw std::domain_error("type must be number, but is " + type_name(j));
+    // unsigned must be checked first, since is_number_integer() == true for unsigned
+    if (j.is_number_unsigned())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
+    }
+    else if (j.is_number_integer())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
+    }
+    else if (j.is_number_float())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
+    }
+    else
+    {
+        throw std::domain_error("type must be number, but is " + type_name(j));
+    }
 }
 
 template <typename Json>
-void to_json(Json &j, typename Json::boolean_t b) noexcept
+void to_json(Json& j, typename Json::boolean_t b) noexcept
 {
-  external_constructor<value_t::boolean>::construct(j, b);
+    external_constructor<value_t::boolean>::construct(j, b);
 }
 
 template <typename Json, typename CompatibleString,
           enable_if_t<std::is_constructible<typename Json::string_t,
-                                            CompatibleString>::value,
+                      CompatibleString>::value,
                       int> = 0>
-void to_json(Json &j, const CompatibleString &s)
+void to_json(Json& j, const CompatibleString& s)
 {
-  external_constructor<value_t::string>::construct(j, s);
+    external_constructor<value_t::string>::construct(j, s);
 }
 
 template <typename Json, typename FloatType,
           enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
-void to_json(Json &j, FloatType val) noexcept
+void to_json(Json& j, FloatType val) noexcept
 {
-  external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val));
+    external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val));
 }
 
 
 template <
     typename Json, typename CompatibleNumberUnsignedType,
-   enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t,
-                                         CompatibleNumberUnsignedType>::value,
-                int> = 0>
-void to_json(Json &j, CompatibleNumberUnsignedType val) noexcept
+    enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t,
+                CompatibleNumberUnsignedType>::value,
+                int> = 0 >
+void to_json(Json& j, CompatibleNumberUnsignedType val) noexcept
 {
-  external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val));
+    external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val));
 }
 
 template <
     typename Json, typename CompatibleNumberIntegerType,
-   enable_if_t<is_compatible_integer_type<typename Json::number_integer_t,
-                                         CompatibleNumberIntegerType>::value,
-                int> = 0>
-void to_json(Json &j, CompatibleNumberIntegerType val) noexcept
+    enable_if_t<is_compatible_integer_type<typename Json::number_integer_t,
+                CompatibleNumberIntegerType>::value,
+                int> = 0 >
+void to_json(Json& j, CompatibleNumberIntegerType val) noexcept
 {
-  external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val));
+    external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val));
 }
 
 template <typename Json, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void to_json(Json &j, UnscopedEnumType e) noexcept
+void to_json(Json& j, UnscopedEnumType e) noexcept
 {
-  external_constructor<value_t::number_integer>::construct(j, e);
+    external_constructor<value_t::number_integer>::construct(j, e);
 }
 
 template <
     typename Json, typename CompatibleArrayType,
-    enable_if_t<
+    enable_if_t <
         is_compatible_array_type<Json, CompatibleArrayType>::value or
-            std::is_same<typename Json::array_t, CompatibleArrayType>::value,
-        int> = 0>
-void to_json(Json &j, const  CompatibleArrayType &arr)
+        std::is_same<typename Json::array_t, CompatibleArrayType>::value,
+        int > = 0 >
+void to_json(Json& j, const  CompatibleArrayType& arr)
 {
-  external_constructor<value_t::array>::construct(j, arr);
+    external_constructor<value_t::array>::construct(j, arr);
 }
 
 template <
     typename Json, typename CompatibleObjectType,
     enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
-                int> = 0>
-void to_json(Json &j, const  CompatibleObjectType &arr)
+                int> = 0 >
+void to_json(Json& j, const  CompatibleObjectType& arr)
 {
-  external_constructor<value_t::object>::construct(j, arr);
+    external_constructor<value_t::object>::construct(j, arr);
 }
 
 template <typename Json>
-void from_json(const Json & j, typename Json::boolean_t& b)
+void from_json(const Json& j, typename Json::boolean_t& b)
 {
-  if (!j.is_boolean())
-    throw std::domain_error("type must be boolean, but is " + type_name(j));
-  b = *j.template get_ptr<const typename Json::boolean_t*>();
+    if (!j.is_boolean())
+    {
+        throw std::domain_error("type must be boolean, but is " + type_name(j));
+    }
+    b = *j.template get_ptr<const typename Json::boolean_t*>();
 }
 
 template <typename Json>
-void from_json(const Json & j, typename Json::string_t& s)
+void from_json(const Json& j, typename Json::string_t& s)
 {
-  if (!j.is_string())
-    throw std::domain_error("type must be string, but is " + type_name(j));
-  s = *j.template get_ptr<const typename Json::string_t*>();
+    if (!j.is_string())
+    {
+        throw std::domain_error("type must be string, but is " + type_name(j));
+    }
+    s = *j.template get_ptr<const typename Json::string_t*>();
 }
 
 template <typename Json>
-void from_json(const Json & j, typename Json::number_float_t& val)
+void from_json(const Json& j, typename Json::number_float_t& val)
 {
-  get_arithmetic_value(j, val);
+    get_arithmetic_value(j, val);
 }
 
 template <typename Json>
-void from_json(const Json & j, typename Json::number_unsigned_t& val)
+void from_json(const Json& j, typename Json::number_unsigned_t& val)
 {
-  get_arithmetic_value(j, val);
+    get_arithmetic_value(j, val);
 }
 
 template <typename Json>
-void from_json(const Json & j, typename Json::number_integer_t& val)
+void from_json(const Json& j, typename Json::number_integer_t& val)
 {
-  get_arithmetic_value(j, val);
+    get_arithmetic_value(j, val);
 }
 
 template <typename Json, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void from_json(const  Json &j, UnscopedEnumType& e)
+void from_json(const  Json& j, UnscopedEnumType& e)
 {
-  typename std::underlying_type<UnscopedEnumType>::type val = e;
-  get_arithmetic_value(j, val);
-  e = static_cast<UnscopedEnumType>(val);
+    typename std::underlying_type<UnscopedEnumType>::type val = e;
+    get_arithmetic_value(j, val);
+    e = static_cast<UnscopedEnumType>(val);
 }
 
 template <typename Json>
-void from_json(const  Json &j, typename Json::array_t &arr)
+void from_json(const  Json& j, typename Json::array_t& arr)
 {
-  if (!j.is_array())
-    throw std::domain_error("type must be array, but is " + type_name(j));
-  arr = *j.template get_ptr<const typename Json::array_t*>();
+    if (!j.is_array())
+    {
+        throw std::domain_error("type must be array, but is " + type_name(j));
+    }
+    arr = *j.template get_ptr<const typename Json::array_t*>();
 }
 
 // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
 template <typename Json, typename T, typename Allocator>
-void from_json(const Json &j, std::forward_list<T, Allocator>& l)
+void from_json(const Json& j, std::forward_list<T, Allocator>& l)
 {
-  // do not perform the check when user wants to retrieve jsons
-  // (except when it's null.. ?)
-  if (j.is_null())
-      throw std::domain_error("type must be array, but is " + type_name(j));
-  if (not std::is_same<T, Json>::value)
-  {
-    if (!j.is_array())
-      throw std::domain_error("type must be array, but is " + type_name(j));
-  }
-  for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
-    l.push_front(it->template get<T>());
+    // do not perform the check when user wants to retrieve jsons
+    // (except when it's null.. ?)
+    if (j.is_null())
+    {
+        throw std::domain_error("type must be array, but is " + type_name(j));
+    }
+    if (not std::is_same<T, Json>::value)
+    {
+        if (!j.is_array())
+        {
+            throw std::domain_error("type must be array, but is " + type_name(j));
+        }
+    }
+    for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
+    {
+        l.push_front(it->template get<T>());
+    }
 }
 
 template <typename Json, typename CompatibleArrayType>
-void from_json_array_impl(const  Json &j, CompatibleArrayType &arr, priority_tag<0>)
+void from_json_array_impl(const  Json& j, CompatibleArrayType& arr, priority_tag<0>)
 {
-  using std::begin;
-  using std::end;
+    using std::begin;
+    using std::end;
 
-  std::transform(
-      j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json &i)
-      {
+    std::transform(
+        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json & i)
+    {
         // get<Json>() returns *this, this won't call a from_json method when
         // value_type is Json
         return i.template get<typename CompatibleArrayType::value_type>();
-      });
+    });
 }
 
 template <typename Json, typename CompatibleArrayType>
-auto from_json_array_impl(const  Json &j, CompatibleArrayType &arr, priority_tag<1>)
-    -> decltype(
-        arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
-        void())
+auto from_json_array_impl(const  Json& j, CompatibleArrayType& arr, priority_tag<1>)
+-> decltype(
+    arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
+    void())
 {
-  using std::begin;
-  using std::end;
+    using std::begin;
+    using std::end;
 
-  arr.reserve(j.size());
-  std::transform(
-      j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json &i)
-      {
+    arr.reserve(j.size());
+    std::transform(
+        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json & i)
+    {
         // get<Json>() returns *this, this won't call a from_json method when
         // value_type is Json
         return i.template get<typename CompatibleArrayType::value_type>();
-      });
+    });
 }
 
 template <
     typename Json, typename CompatibleArrayType,
     enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and
-                    not std::is_same<typename Json::array_t,
-                                     CompatibleArrayType>::value,
-                int> = 0>
-void from_json(const  Json &j, CompatibleArrayType &arr)
+                not std::is_same<typename Json::array_t,
+                                 CompatibleArrayType>::value,
+                int> = 0 >
+void from_json(const  Json& j, CompatibleArrayType& arr)
 {
-  if (j.is_null())
-      throw std::domain_error("type must be array, but is " + type_name(j));
-  // when T == Json, do not check if value_t is correct
-  if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
-  {
-    if (!j.is_array())
-      throw std::domain_error("type must be array, but is " + type_name(j));
-  }
-  from_json_array_impl(j, arr, priority_tag<1>{});
+    if (j.is_null())
+    {
+        throw std::domain_error("type must be array, but is " + type_name(j));
+    }
+    // when T == Json, do not check if value_t is correct
+    if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
+    {
+        if (!j.is_array())
+        {
+            throw std::domain_error("type must be array, but is " + type_name(j));
+        }
+    }
+    from_json_array_impl(j, arr, priority_tag<1> {});
 }
 
 
 template <
     typename Json, typename CompatibleObjectType,
     enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
-                int> = 0>
-void from_json(const  Json &j, CompatibleObjectType &obj)
+                int> = 0 >
+void from_json(const  Json& j, CompatibleObjectType& obj)
 {
-  if (!j.is_object())
-    throw std::domain_error("type must be object, but is " + type_name(j));
+    if (!j.is_object())
+    {
+        throw std::domain_error("type must be object, but is " + type_name(j));
+    }
 
-  auto inner_object = j.template get_ptr<const typename Json::object_t*>();
-  using std::begin;
-  using std::end;
-  // we could avoid the assignment, but this might require a for loop, which
-  // might be less efficient than the container constructor for some containers (would it?)
-  obj = CompatibleObjectType(begin(*inner_object), end(*inner_object));
+    auto inner_object = j.template get_ptr<const typename Json::object_t*>();
+    using std::begin;
+    using std::end;
+    // we could avoid the assignment, but this might require a for loop, which
+    // might be less efficient than the container constructor for some containers (would it?)
+    obj = CompatibleObjectType(begin(*inner_object), end(*inner_object));
 }
 
 // overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
@@ -724,25 +750,35 @@ void from_json(const  Json &j, CompatibleObjectType &obj)
 // in case of a custom BooleanType which is not an arithmetic type?
 template <
     typename Json, typename ArithmeticType,
-    enable_if_t<
+    enable_if_t <
         std::is_arithmetic<ArithmeticType>::value and
-            not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and
-            not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and
-            not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
-            not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
-        int> = 0>
-void from_json(const  Json &j, ArithmeticType &val)
+        not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and
+        not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and
+        not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
+        not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
+        int > = 0 >
+void from_json(const  Json& j, ArithmeticType& val)
 {
-  if (j.is_number_unsigned())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
-  else if (j.is_number_integer())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
-  else if (j.is_number_float())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
-  else if (j.is_boolean())
-    val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>());
-  else
-    throw std::domain_error("type must be number, but is " + type_name(j));
+    if (j.is_number_unsigned())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
+    }
+    else if (j.is_number_integer())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
+    }
+    else if (j.is_number_float())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
+    }
+    else if (j.is_boolean())
+    {
+        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>());
+    }
+    else
+    {
+        throw std::domain_error("type must be number, but is " + type_name(j));
+    }
 }
 
 struct to_json_fn
@@ -762,39 +798,39 @@ struct to_json_fn
         static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called");
     }
 
-public:
-  template <typename Json, typename T>
-  void operator()(Json &j, T &&val) const
-      noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1>{})))
-  {
-      return call(j, std::forward<T>(val), priority_tag<1>{});
-  }
+  public:
+    template <typename Json, typename T>
+    void operator()(Json& j, T&& val) const
+    noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {})))
+    {
+        return call(j, std::forward<T>(val), priority_tag<1> {});
+    }
 };
 
 struct from_json_fn
 {
-private:
-  template <typename Json, typename T>
-  auto call(const  Json &j, T &val, priority_tag<1>) const
-      noexcept(noexcept(from_json(j, val)))
-          -> decltype(from_json(j, val), void())
-  {
-    return from_json(j, val);
-  }
+  private:
+    template <typename Json, typename T>
+    auto call(const  Json& j, T& val, priority_tag<1>) const
+    noexcept(noexcept(from_json(j, val)))
+    -> decltype(from_json(j, val), void())
+    {
+        return from_json(j, val);
+    }
 
-  template <typename Json, typename T>
-  void call(const Json &, T&, priority_tag<0>) const noexcept
-  {
-      static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called");
-  }
+    template <typename Json, typename T>
+    void call(const Json&, T&, priority_tag<0>) const noexcept
+    {
+        static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called");
+    }
 
-public:
-  template <typename Json, typename T>
-  void operator()(const  Json &j, T &val) const
-      noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1>{})))
-  {
-      return call(j, val, priority_tag<1>{});
-  }
+  public:
+    template <typename Json, typename T>
+    void operator()(const  Json& j, T& val) const
+    noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {})))
+    {
+        return call(j, val, priority_tag<1> {});
+    }
 };
 
 // taken from ranges-v3
@@ -830,8 +866,8 @@ struct DecimalSeparator : std::numpunct<char>
 
 inline namespace
 {
-constexpr const auto & to_json = detail::static_const<detail::to_json_fn>::value;
-constexpr const auto & from_json = detail::static_const<detail::from_json_fn>::value;
+constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value;
+constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value;
 }
 
 // default JSONSerializer template argument, doesn't care about template argument
@@ -846,10 +882,10 @@ struct adl_serializer
     }
 
     template <typename Json, typename T>
-    static void to_json(Json &j, T &&val) noexcept(
+    static void to_json(Json& j, T&& val) noexcept(
         noexcept(::nlohmann::to_json(j, std::forward<T>(val))))
     {
-      ::nlohmann::to_json(j, std::forward<T>(val));
+        ::nlohmann::to_json(j, std::forward<T>(val));
     }
 };
 
@@ -947,7 +983,7 @@ class basic_json
 {
   private:
     template <::nlohmann::value_t> friend struct detail::external_constructor;
-    template <typename Json> friend std::string detail::type_name(const  Json &);
+    template <typename Json> friend std::string detail::type_name(const  Json&);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -1849,15 +1885,15 @@ class basic_json
     */
     template <typename T, typename U = uncvref_t<T>,
               enable_if_t<not std::is_base_of<std::istream, U>::value and
-                              not std::is_same<U, basic_json_t>::value and
-                              not detail::is_basic_json_nested_type<
-                                  basic_json_t, U>::value and
-                              detail::has_to_json<basic_json, U>::value,
+                          not std::is_same<U, basic_json_t>::value and
+                          not detail::is_basic_json_nested_type<
+                              basic_json_t, U>::value and
+                          detail::has_to_json<basic_json, U>::value,
                           int> = 0>
-    basic_json(T &&val) noexcept(noexcept(JSONSerializer<U>::to_json(
-        std::declval<basic_json_t &>(), std::forward<T>(val))))
+    basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json(
+            std::declval<basic_json_t&>(), std::forward<T>(val))))
     {
-      JSONSerializer<U>::to_json(*this, std::forward<T>(val));
+        JSONSerializer<U>::to_json(*this, std::forward<T>(val));
     }
 
     /*!
@@ -2013,7 +2049,7 @@ class basic_json
     @since version 1.0.0
     */
     static basic_json array(std::initializer_list<basic_json> init =
-                            std::initializer_list<basic_json>())
+                                std::initializer_list<basic_json>())
     {
         return basic_json(init, false, value_t::array);
     }
@@ -2053,7 +2089,7 @@ class basic_json
     @since version 1.0.0
     */
     static basic_json object(std::initializer_list<basic_json> init =
-                             std::initializer_list<basic_json>())
+                                 std::initializer_list<basic_json>())
     {
         return basic_json(init, false, value_t::object);
     }
@@ -2394,7 +2430,7 @@ class basic_json
         std::is_nothrow_move_assignable<value_t>::value and
         std::is_nothrow_move_constructible<json_value>::value and
         std::is_nothrow_move_assignable<json_value>::value
-                                       )
+    )
     {
         // check that passed value is valid
         other.assert_invariant();
@@ -3020,7 +3056,7 @@ class basic_json
               enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
     basic_json get() const
     {
-      return *this;
+        return *this;
     }
 
     /*!
@@ -3032,7 +3068,7 @@ class basic_json
     - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&)
     - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&);
 
-    @return a value of type U 
+    @return a value of type U
 
     @throw what json_serializer<U> from_json method throws
 
@@ -3040,27 +3076,27 @@ class basic_json
     */
     template <
         typename T,
-                 typename U = uncvref_t<T>,
-        enable_if_t<
+        typename U = uncvref_t<T>,
+        enable_if_t <
             not std::is_same<basic_json_t, U>::value and
-                detail::has_from_json<basic_json_t, U>::value and
-                not detail::has_non_default_from_json<basic_json_t,
-                                                      U>::value,
-            int> = 0>
+            detail::has_from_json<basic_json_t, U>::value and
+            not detail::has_non_default_from_json<basic_json_t,
+                    U>::value,
+            int > = 0 >
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
     // static assert ?
     // i know there is a special behaviour for boolean_t* and such
     auto get() const noexcept(noexcept(JSONSerializer<U>::from_json(
-        std::declval<const basic_json_t &>(), std::declval<U &>())))
-        -> U
+                                           std::declval<const basic_json_t&>(), std::declval<U&>())))
+    -> U
     {
-      static_assert(std::is_default_constructible<U>::value and
-                        std::is_copy_constructible<U>::value,
-                    "Types must be DefaultConstructible and "
-                    "CopyConstructible when used with get");
-      U ret;
-      JSONSerializer<U>::from_json(*this, ret);
-      return ret;
+        static_assert(std::is_default_constructible<U>::value and
+        std::is_copy_constructible<U>::value,
+        "Types must be DefaultConstructible and "
+        "CopyConstructible when used with get");
+        U ret;
+        JSONSerializer<U>::from_json(*this, ret);
+        return ret;
     }
 
     /*!
@@ -3072,7 +3108,7 @@ class basic_json
     - U is not @ref basic_json
     - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&);
 
-    @return a value of type U 
+    @return a value of type U
 
     @throw what json_serializer<U> from_json method throws
 
@@ -3081,12 +3117,12 @@ class basic_json
     template <
         typename T,
         enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                        detail::has_non_default_from_json<basic_json_t,
-                                                          uncvref_t<T>>::value,
-                    int> = 0>
-    uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t &>())))
+                    detail::has_non_default_from_json<basic_json_t,
+                            uncvref_t<T>>::value,
+                    int> = 0 >
+    uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
-      return JSONSerializer<T>::from_json(*this);
+        return JSONSerializer<T>::from_json(*this);
     }
 
     /*!
@@ -3168,8 +3204,8 @@ class basic_json
     {
         // get the type of the PointerType (remove pointer and const)
         using pointee_t = typename std::remove_const<typename
-                std::remove_pointer<typename
-                                    std::remove_const<PointerType>::type>::type>::type;
+                          std::remove_pointer<typename
+                          std::remove_const<PointerType>::type>::type>::type;
         // make sure the type matches the allowed types
         static_assert(
             std::is_same<object_t, pointee_t>::value
@@ -3196,8 +3232,8 @@ class basic_json
     {
         // get the type of the PointerType (remove pointer and const)
         using pointee_t = typename std::remove_const<typename
-                std::remove_pointer<typename
-                                    std::remove_const<PointerType>::type>::type>::type;
+                          std::remove_pointer<typename
+                          std::remove_const<PointerType>::type>::type>::type;
         // make sure the type matches the allowed types
         static_assert(
             std::is_same<object_t, pointee_t>::value
@@ -4250,14 +4286,14 @@ class basic_json
             case value_t::object:
             {
                 result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator,
-                        last.m_it.object_iterator);
+                                              last.m_it.object_iterator);
                 break;
             }
 
             case value_t::array:
             {
                 result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator,
-                        last.m_it.array_iterator);
+                                             last.m_it.array_iterator);
                 break;
             }
 
@@ -5474,9 +5510,9 @@ class basic_json
         // insert to array and return iterator
         iterator result(this);
         result.m_it.array_iterator = m_value.array->insert(
-            pos.m_it.array_iterator,
-            first.m_it.array_iterator,
-            last.m_it.array_iterator);
+                                         pos.m_it.array_iterator,
+                                         first.m_it.array_iterator,
+                                         last.m_it.array_iterator);
         return result;
     }
 
@@ -5546,7 +5582,7 @@ class basic_json
         std::is_nothrow_move_assignable<value_t>::value and
         std::is_nothrow_move_constructible<json_value>::value and
         std::is_nothrow_move_assignable<json_value>::value
-                                       )
+    )
     {
         std::swap(m_type, other.m_type);
         std::swap(m_value, other.m_value);
@@ -7871,7 +7907,10 @@ class basic_json
 
     @since version 1.0.0
     */
-    std::string type_name() const { return detail::type_name(*this); }
+    std::string type_name() const
+    {
+        return detail::type_name(*this);
+    }
 
   private:
     /*!
@@ -8086,13 +8125,13 @@ class basic_json
                         o << (pretty_print ? ",\n" : ",");
                     }
                     o << string_t(new_indent, ' ') << "\""
-                                                    << escape_string(i->first) << "\":"
-                                                            << (pretty_print ? " " : "");
-                                                            i->second.dump(o, pretty_print, indent_step, new_indent);
+                      << escape_string(i->first) << "\":"
+                      << (pretty_print ? " " : "");
+                    i->second.dump(o, pretty_print, indent_step, new_indent);
                 }
 
-                                                        // decrease indentation
-                                                        if (pretty_print)
+                // decrease indentation
+                if (pretty_print)
                 {
                     new_indent -= indent_step;
                     o << "\n";
@@ -8137,16 +8176,16 @@ class basic_json
                 }
 
                 o << string_t(new_indent, ' ') << "]";
-                   return;
+                return;
             }
 
-               case value_t::string:
+            case value_t::string:
             {
                 o << string_t("\"") << escape_string(*m_value.string) << "\"";
-                                     return;
+                return;
             }
 
-                                 case value_t::boolean:
+            case value_t::boolean:
             {
                 o << (m_value.boolean ? "true" : "false");
                 return;
@@ -8220,126 +8259,126 @@ class basic_json
     */
     class primitive_iterator_t
     {
-        public:
+      public:
 
         difference_type get_value() const noexcept
-    {
-        return m_it;
-    }
-    /// set iterator to a defined beginning
-    void set_begin() noexcept
-    {
-        m_it = begin_value;
-    }
+        {
+            return m_it;
+        }
+        /// set iterator to a defined beginning
+        void set_begin() noexcept
+        {
+            m_it = begin_value;
+        }
 
-    /// set iterator to a defined past the end
-    void set_end() noexcept
-    {
-        m_it = end_value;
-    }
+        /// set iterator to a defined past the end
+        void set_end() noexcept
+        {
+            m_it = end_value;
+        }
 
-    /// return whether the iterator can be dereferenced
-    constexpr bool is_begin() const noexcept
-    {
-        return (m_it == begin_value);
-    }
+        /// return whether the iterator can be dereferenced
+        constexpr bool is_begin() const noexcept
+        {
+            return (m_it == begin_value);
+        }
 
-    /// return whether the iterator is at end
-    constexpr bool is_end() const noexcept
-    {
-        return (m_it == end_value);
-    }
+        /// return whether the iterator is at end
+        constexpr bool is_end() const noexcept
+        {
+            return (m_it == end_value);
+        }
 
-    friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it == rhs.m_it;
-    }
+        friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it == rhs.m_it;
+        }
 
-    friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return !(lhs == rhs);
-    }
+        friend constexpr bool operator!=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return !(lhs == rhs);
+        }
 
-    friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it < rhs.m_it;
-    }
+        friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it < rhs.m_it;
+        }
 
-    friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it <= rhs.m_it;
-    }
+        friend constexpr bool operator<=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it <= rhs.m_it;
+        }
 
-    friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it > rhs.m_it;
-    }
+        friend constexpr bool operator>(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it > rhs.m_it;
+        }
 
-    friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it >= rhs.m_it;
-    }
+        friend constexpr bool operator>=(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it >= rhs.m_it;
+        }
 
-    primitive_iterator_t operator+(difference_type i)
-    {
-        auto result = *this;
-        result += i;
-        return result;
-    }
+        primitive_iterator_t operator+(difference_type i)
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
 
-    friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
-    {
-        return lhs.m_it - rhs.m_it;
-    }
+        friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
+        {
+            return lhs.m_it - rhs.m_it;
+        }
 
-    friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it)
-    {
-        return os << it.m_it;
-    }
+        friend std::ostream& operator<<(std::ostream& os, primitive_iterator_t it)
+        {
+            return os << it.m_it;
+        }
 
-    primitive_iterator_t& operator++()
-    {
-        ++m_it;
-        return *this;
-    }
+        primitive_iterator_t& operator++()
+        {
+            ++m_it;
+            return *this;
+        }
 
-    primitive_iterator_t& operator++(int)
-    {
-        m_it++;
-        return *this;
-    }
+        primitive_iterator_t& operator++(int)
+        {
+            m_it++;
+            return *this;
+        }
 
-    primitive_iterator_t& operator--()
-    {
-        --m_it;
-        return *this;
-    }
+        primitive_iterator_t& operator--()
+        {
+            --m_it;
+            return *this;
+        }
 
-    primitive_iterator_t& operator--(int)
-    {
-        m_it--;
-        return *this;
-    }
+        primitive_iterator_t& operator--(int)
+        {
+            m_it--;
+            return *this;
+        }
 
-    primitive_iterator_t& operator+=(difference_type n)
-    {
-        m_it += n;
-        return *this;
-    }
+        primitive_iterator_t& operator+=(difference_type n)
+        {
+            m_it += n;
+            return *this;
+        }
 
-    primitive_iterator_t& operator-=(difference_type n)
-    {
-        m_it -= n;
-        return *this;
-    }
+        primitive_iterator_t& operator-=(difference_type n)
+        {
+            m_it -= n;
+            return *this;
+        }
 
-    private:
-    static constexpr difference_type begin_value = 0;
-    static constexpr difference_type end_value = begin_value + 1;
+      private:
+        static constexpr difference_type begin_value = 0;
+        static constexpr difference_type end_value = begin_value + 1;
 
-    /// iterator as signed integer type
-    difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
-                                              };
+        /// iterator as signed integer type
+        difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
+    };
 
     /*!
     @brief an iterator value
@@ -8359,104 +8398,104 @@ class basic_json
 
         /// create an uninitialized internal_iterator
         internal_iterator() noexcept
-        : object_iterator(), array_iterator(), primitive_iterator()
-    {}
+            : object_iterator(), array_iterator(), primitive_iterator()
+        {}
     };
 
     /// proxy class for the iterator_wrapper functions
     template<typename IteratorType>
     class iteration_proxy
     {
-        private:
+      private:
         /// helper class for iteration
         class iteration_proxy_internal
         {
-            private:
+          private:
             /// the iterator
             IteratorType anchor;
             /// an index for arrays (used to create key names)
             size_t array_index = 0;
 
-            public:
+          public:
             explicit iteration_proxy_internal(IteratorType it) noexcept
-            : anchor(it)
-    {}
+                : anchor(it)
+            {}
 
-    /// dereference operator (needed for range-based for)
-    iteration_proxy_internal& operator*()
-    {
-        return *this;
-    }
-
-    /// increment operator (needed for range-based for)
-    iteration_proxy_internal& operator++()
-    {
-        ++anchor;
-        ++array_index;
-
-        return *this;
-    }
-
-    /// inequality operator (needed for range-based for)
-    bool operator!= (const iteration_proxy_internal& o) const
-    {
-        return anchor != o.anchor;
-    }
-
-    /// return key of the iterator
-    typename basic_json::string_t key() const
-    {
-        assert(anchor.m_object != nullptr);
-
-        switch (anchor.m_object->type())
-        {
-            // use integer array index as key
-            case value_t::array:
+            /// dereference operator (needed for range-based for)
+            iteration_proxy_internal& operator*()
             {
-                return std::to_string(array_index);
+                return *this;
             }
 
-            // use key from the object
-            case value_t::object:
+            /// increment operator (needed for range-based for)
+            iteration_proxy_internal& operator++()
             {
-                return anchor.key();
+                ++anchor;
+                ++array_index;
+
+                return *this;
             }
 
-            // use an empty key for all primitive types
-            default:
+            /// inequality operator (needed for range-based for)
+            bool operator!= (const iteration_proxy_internal& o) const
             {
-                return "";
+                return anchor != o.anchor;
             }
-        }
-    }
 
-    /// return value of the iterator
-    typename IteratorType::reference value() const
-    {
-        return anchor.value();
-    }
+            /// return key of the iterator
+            typename basic_json::string_t key() const
+            {
+                assert(anchor.m_object != nullptr);
+
+                switch (anchor.m_object->type())
+                {
+                    // use integer array index as key
+                    case value_t::array:
+                    {
+                        return std::to_string(array_index);
+                    }
+
+                    // use key from the object
+                    case value_t::object:
+                    {
+                        return anchor.key();
+                    }
+
+                    // use an empty key for all primitive types
+                    default:
+                    {
+                        return "";
+                    }
+                }
+            }
+
+            /// return value of the iterator
+            typename IteratorType::reference value() const
+            {
+                return anchor.value();
+            }
         };
 
-    /// the container to iterate
-    typename IteratorType::reference container;
+        /// the container to iterate
+        typename IteratorType::reference container;
 
-    public:
-    /// construct iteration proxy from a container
-    explicit iteration_proxy(typename IteratorType::reference cont)
-    : container(cont)
-    {}
+      public:
+        /// construct iteration proxy from a container
+        explicit iteration_proxy(typename IteratorType::reference cont)
+            : container(cont)
+        {}
 
-    /// return iterator begin (needed for range-based for)
-    iteration_proxy_internal begin() noexcept
-    {
-        return iteration_proxy_internal(container.begin());
-    }
+        /// return iterator begin (needed for range-based for)
+        iteration_proxy_internal begin() noexcept
+        {
+            return iteration_proxy_internal(container.begin());
+        }
 
-    /// return iterator end (needed for range-based for)
-    iteration_proxy_internal end() noexcept
-    {
-        return iteration_proxy_internal(container.end());
-    }
+        /// return iterator end (needed for range-based for)
+        iteration_proxy_internal end() noexcept
+        {
+            return iteration_proxy_internal(container.end());
+        }
     };
 
   public:
@@ -8480,7 +8519,7 @@ class basic_json
     @since version 1.0.0, simplified in version 2.0.9
     */
     template<typename U>
-  class iter_impl : public std::iterator<std::random_access_iterator_tag, U>
+    class iter_impl : public std::iterator<std::random_access_iterator_tag, U>
     {
         /// allow basic_json to access private members
         friend class basic_json;
@@ -8490,19 +8529,19 @@ class basic_json
                       or std::is_same<U, const basic_json>::value,
                       "iter_impl only accepts (const) basic_json");
 
-        public:
+      public:
         /// the type of the values when the iterator is dereferenced
         using value_type = typename basic_json::value_type;
         /// a type to represent differences between iterators
         using difference_type = typename basic_json::difference_type;
         /// defines a pointer to the type iterated over (value_type)
         using pointer = typename std::conditional<std::is_const<U>::value,
-                typename basic_json::const_pointer,
-                typename basic_json::pointer>::type;
+              typename basic_json::const_pointer,
+              typename basic_json::pointer>::type;
         /// defines a reference to the type iterated over (value_type)
         using reference = typename std::conditional<std::is_const<U>::value,
-                typename basic_json::const_reference,
-                typename basic_json::reference>::type;
+              typename basic_json::const_reference,
+              typename basic_json::reference>::type;
         /// the category of the iterator
         using iterator_category = std::bidirectional_iterator_tag;
 
@@ -8516,566 +8555,566 @@ class basic_json
         @post The iterator is initialized; i.e. `m_object != nullptr`.
         */
         explicit iter_impl(pointer object) noexcept
-        : m_object(object)
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
+            : m_object(object)
         {
-            case basic_json::value_t::object:
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
             {
-                m_it.object_iterator = typename object_t::iterator();
-                break;
-            }
-
-            case basic_json::value_t::array:
-            {
-                m_it.array_iterator = typename array_t::iterator();
-                break;
-            }
-
-            default:
-            {
-                m_it.primitive_iterator = primitive_iterator_t();
-                break;
-            }
-        }
-    }
-
-    /*
-    Use operator `const_iterator` instead of `const_iterator(const iterator&
-    other) noexcept` to avoid two class definitions for @ref iterator and
-    @ref const_iterator.
-
-    This function is only called if this class is an @ref iterator. If this
-    class is a @ref const_iterator this function is not called.
-    */
-    operator const_iterator() const
-    {
-        const_iterator ret;
-
-        if (m_object)
-        {
-            ret.m_object = m_object;
-            ret.m_it = m_it;
-        }
-
-        return ret;
-    }
-
-    /*!
-    @brief copy constructor
-    @param[in] other  iterator to copy from
-    @note It is not checked whether @a other is initialized.
-    */
-    iter_impl(const iter_impl& other) noexcept
-    : m_object(other.m_object), m_it(other.m_it)
-    {}
-
-    /*!
-    @brief copy assignment
-    @param[in,out] other  iterator to copy from
-    @note It is not checked whether @a other is initialized.
-    */
-    iter_impl& operator=(iter_impl other) noexcept(
-        std::is_nothrow_move_constructible<pointer>::value and
-        std::is_nothrow_move_assignable<pointer>::value and
-        std::is_nothrow_move_constructible<internal_iterator>::value and
-        std::is_nothrow_move_assignable<internal_iterator>::value
-                                       )
-    {
-        std::swap(m_object, other.m_object);
-        std::swap(m_it, other.m_it);
-        return *this;
-    }
-
-    private:
-    /*!
-    @brief set the iterator to the first value
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    void set_begin() noexcept
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                m_it.object_iterator = m_object->m_value.object->begin();
-                break;
-            }
-
-            case basic_json::value_t::array:
-            {
-                m_it.array_iterator = m_object->m_value.array->begin();
-                break;
-            }
-
-            case basic_json::value_t::null:
-            {
-                // set to end so begin()==end() is true: null is empty
-                m_it.primitive_iterator.set_end();
-                break;
-            }
-
-            default:
-            {
-                m_it.primitive_iterator.set_begin();
-                break;
-            }
-        }
-    }
-
-    /*!
-    @brief set the iterator past the last value
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    void set_end() noexcept
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                m_it.object_iterator = m_object->m_value.object->end();
-                break;
-            }
-
-            case basic_json::value_t::array:
-            {
-                m_it.array_iterator = m_object->m_value.array->end();
-                break;
-            }
-
-            default:
-            {
-                m_it.primitive_iterator.set_end();
-                break;
-            }
-        }
-    }
-
-    public:
-    /*!
-    @brief return a reference to the value pointed to by the iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    reference operator*() const
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                assert(m_it.object_iterator != m_object->m_value.object->end());
-                return m_it.object_iterator->second;
-            }
-
-            case basic_json::value_t::array:
-            {
-                assert(m_it.array_iterator != m_object->m_value.array->end());
-                return *m_it.array_iterator;
-            }
-
-            case basic_json::value_t::null:
-            {
-                    JSON_THROW(std::out_of_range("cannot get value"));
-            }
-
-            default:
-            {
-                if (m_it.primitive_iterator.is_begin())
+                case basic_json::value_t::object:
                 {
-                    return *m_object;
+                    m_it.object_iterator = typename object_t::iterator();
+                    break;
                 }
 
-                    JSON_THROW(std::out_of_range("cannot get value"));
-            }
-        }
-    }
-
-    /*!
-    @brief dereference the iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    pointer operator->() const
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                assert(m_it.object_iterator != m_object->m_value.object->end());
-                return &(m_it.object_iterator->second);
-            }
-
-            case basic_json::value_t::array:
-            {
-                assert(m_it.array_iterator != m_object->m_value.array->end());
-                return &*m_it.array_iterator;
-            }
-
-            default:
-            {
-                if (m_it.primitive_iterator.is_begin())
+                case basic_json::value_t::array:
                 {
-                    return m_object;
+                    m_it.array_iterator = typename array_t::iterator();
+                    break;
                 }
 
+                default:
+                {
+                    m_it.primitive_iterator = primitive_iterator_t();
+                    break;
+                }
+            }
+        }
+
+        /*
+        Use operator `const_iterator` instead of `const_iterator(const iterator&
+        other) noexcept` to avoid two class definitions for @ref iterator and
+        @ref const_iterator.
+
+        This function is only called if this class is an @ref iterator. If this
+        class is a @ref const_iterator this function is not called.
+        */
+        operator const_iterator() const
+        {
+            const_iterator ret;
+
+            if (m_object)
+            {
+                ret.m_object = m_object;
+                ret.m_it = m_it;
+            }
+
+            return ret;
+        }
+
+        /*!
+        @brief copy constructor
+        @param[in] other  iterator to copy from
+        @note It is not checked whether @a other is initialized.
+        */
+        iter_impl(const iter_impl& other) noexcept
+            : m_object(other.m_object), m_it(other.m_it)
+        {}
+
+        /*!
+        @brief copy assignment
+        @param[in,out] other  iterator to copy from
+        @note It is not checked whether @a other is initialized.
+        */
+        iter_impl& operator=(iter_impl other) noexcept(
+            std::is_nothrow_move_constructible<pointer>::value and
+            std::is_nothrow_move_assignable<pointer>::value and
+            std::is_nothrow_move_constructible<internal_iterator>::value and
+            std::is_nothrow_move_assignable<internal_iterator>::value
+        )
+        {
+            std::swap(m_object, other.m_object);
+            std::swap(m_it, other.m_it);
+            return *this;
+        }
+
+      private:
+        /*!
+        @brief set the iterator to the first value
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        void set_begin() noexcept
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    m_it.object_iterator = m_object->m_value.object->begin();
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    m_it.array_iterator = m_object->m_value.array->begin();
+                    break;
+                }
+
+                case basic_json::value_t::null:
+                {
+                    // set to end so begin()==end() is true: null is empty
+                    m_it.primitive_iterator.set_end();
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator.set_begin();
+                    break;
+                }
+            }
+        }
+
+        /*!
+        @brief set the iterator past the last value
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        void set_end() noexcept
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    m_it.object_iterator = m_object->m_value.object->end();
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    m_it.array_iterator = m_object->m_value.array->end();
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator.set_end();
+                    break;
+                }
+            }
+        }
+
+      public:
+        /*!
+        @brief return a reference to the value pointed to by the iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        reference operator*() const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    assert(m_it.object_iterator != m_object->m_value.object->end());
+                    return m_it.object_iterator->second;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    assert(m_it.array_iterator != m_object->m_value.array->end());
+                    return *m_it.array_iterator;
+                }
+
+                case basic_json::value_t::null:
+                {
                     JSON_THROW(std::out_of_range("cannot get value"));
-            }
-        }
-    }
+                }
 
-    /*!
-    @brief post-increment (it++)
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl operator++(int)
-    {
-        auto result = *this;
-        ++(*this);
-        return result;
-    }
+                default:
+                {
+                    if (m_it.primitive_iterator.is_begin())
+                    {
+                        return *m_object;
+                    }
 
-    /*!
-    @brief pre-increment (++it)
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl& operator++()
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                std::advance(m_it.object_iterator, 1);
-                break;
-            }
-
-            case basic_json::value_t::array:
-            {
-                std::advance(m_it.array_iterator, 1);
-                break;
-            }
-
-            default:
-            {
-                ++m_it.primitive_iterator;
-                break;
+                    JSON_THROW(std::out_of_range("cannot get value"));
+                }
             }
         }
 
-        return *this;
-    }
-
-    /*!
-    @brief post-decrement (it--)
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl operator--(int)
-    {
-        auto result = *this;
-        --(*this);
-        return result;
-    }
-
-    /*!
-    @brief pre-decrement (--it)
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl& operator--()
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
+        /*!
+        @brief dereference the iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        pointer operator->() const
         {
-            case basic_json::value_t::object:
-            {
-                std::advance(m_it.object_iterator, -1);
-                break;
-            }
+            assert(m_object != nullptr);
 
-            case basic_json::value_t::array:
+            switch (m_object->m_type)
             {
-                std::advance(m_it.array_iterator, -1);
-                break;
-            }
+                case basic_json::value_t::object:
+                {
+                    assert(m_it.object_iterator != m_object->m_value.object->end());
+                    return &(m_it.object_iterator->second);
+                }
 
-            default:
-            {
-                --m_it.primitive_iterator;
-                break;
+                case basic_json::value_t::array:
+                {
+                    assert(m_it.array_iterator != m_object->m_value.array->end());
+                    return &*m_it.array_iterator;
+                }
+
+                default:
+                {
+                    if (m_it.primitive_iterator.is_begin())
+                    {
+                        return m_object;
+                    }
+
+                    JSON_THROW(std::out_of_range("cannot get value"));
+                }
             }
         }
 
-        return *this;
-    }
-
-    /*!
-    @brief  comparison: equal
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator==(const iter_impl& other) const
-    {
-        // if objects are not the same, the comparison is undefined
-        if (m_object != other.m_object)
+        /*!
+        @brief post-increment (it++)
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl operator++(int)
         {
+            auto result = *this;
+            ++(*this);
+            return result;
+        }
+
+        /*!
+        @brief pre-increment (++it)
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl& operator++()
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    std::advance(m_it.object_iterator, 1);
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    std::advance(m_it.array_iterator, 1);
+                    break;
+                }
+
+                default:
+                {
+                    ++m_it.primitive_iterator;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /*!
+        @brief post-decrement (it--)
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl operator--(int)
+        {
+            auto result = *this;
+            --(*this);
+            return result;
+        }
+
+        /*!
+        @brief pre-decrement (--it)
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl& operator--()
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    std::advance(m_it.object_iterator, -1);
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    std::advance(m_it.array_iterator, -1);
+                    break;
+                }
+
+                default:
+                {
+                    --m_it.primitive_iterator;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /*!
+        @brief  comparison: equal
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator==(const iter_impl& other) const
+        {
+            // if objects are not the same, the comparison is undefined
+            if (m_object != other.m_object)
+            {
                 JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
-        }
-
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                return (m_it.object_iterator == other.m_it.object_iterator);
             }
 
-            case basic_json::value_t::array:
-            {
-                return (m_it.array_iterator == other.m_it.array_iterator);
-            }
+            assert(m_object != nullptr);
 
-            default:
+            switch (m_object->m_type)
             {
-                return (m_it.primitive_iterator == other.m_it.primitive_iterator);
+                case basic_json::value_t::object:
+                {
+                    return (m_it.object_iterator == other.m_it.object_iterator);
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return (m_it.array_iterator == other.m_it.array_iterator);
+                }
+
+                default:
+                {
+                    return (m_it.primitive_iterator == other.m_it.primitive_iterator);
+                }
             }
         }
-    }
 
-    /*!
-    @brief  comparison: not equal
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator!=(const iter_impl& other) const
-    {
-        return not operator==(other);
-    }
-
-    /*!
-    @brief  comparison: smaller
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator<(const iter_impl& other) const
-    {
-        // if objects are not the same, the comparison is undefined
-        if (m_object != other.m_object)
+        /*!
+        @brief  comparison: not equal
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator!=(const iter_impl& other) const
         {
+            return not operator==(other);
+        }
+
+        /*!
+        @brief  comparison: smaller
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator<(const iter_impl& other) const
+        {
+            // if objects are not the same, the comparison is undefined
+            if (m_object != other.m_object)
+            {
                 JSON_THROW(std::domain_error("cannot compare iterators of different containers"));
-        }
+            }
 
-        assert(m_object != nullptr);
+            assert(m_object != nullptr);
 
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
+            switch (m_object->m_type)
             {
+                case basic_json::value_t::object:
+                {
                     JSON_THROW(std::domain_error("cannot compare order of object iterators"));
-            }
-
-            case basic_json::value_t::array:
-            {
-                return (m_it.array_iterator < other.m_it.array_iterator);
-            }
-
-            default:
-            {
-                return (m_it.primitive_iterator < other.m_it.primitive_iterator);
-            }
-        }
-    }
-
-    /*!
-    @brief  comparison: less than or equal
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator<=(const iter_impl& other) const
-    {
-        return not other.operator < (*this);
-    }
-
-    /*!
-    @brief  comparison: greater than
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator>(const iter_impl& other) const
-    {
-        return not operator<=(other);
-    }
-
-    /*!
-    @brief  comparison: greater than or equal
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    bool operator>=(const iter_impl& other) const
-    {
-        return not operator<(other);
-    }
-
-    /*!
-    @brief  add to iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl& operator+=(difference_type i)
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
-            }
-
-            case basic_json::value_t::array:
-            {
-                std::advance(m_it.array_iterator, i);
-                break;
-            }
-
-            default:
-            {
-                m_it.primitive_iterator += i;
-                break;
-            }
-        }
-
-        return *this;
-    }
-
-    /*!
-    @brief  subtract from iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl& operator-=(difference_type i)
-    {
-        return operator+=(-i);
-    }
-
-    /*!
-    @brief  add to iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl operator+(difference_type i)
-    {
-        auto result = *this;
-        result += i;
-        return result;
-    }
-
-    /*!
-    @brief  subtract from iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    iter_impl operator-(difference_type i)
-    {
-        auto result = *this;
-        result -= i;
-        return result;
-    }
-
-    /*!
-    @brief  return difference
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    difference_type operator-(const iter_impl& other) const
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
-            }
-
-            case basic_json::value_t::array:
-            {
-                return m_it.array_iterator - other.m_it.array_iterator;
-            }
-
-            default:
-            {
-                return m_it.primitive_iterator - other.m_it.primitive_iterator;
-            }
-        }
-    }
-
-    /*!
-    @brief  access to successor
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    reference operator[](difference_type n) const
-    {
-        assert(m_object != nullptr);
-
-        switch (m_object->m_type)
-        {
-            case basic_json::value_t::object:
-            {
-                    JSON_THROW(std::domain_error("cannot use operator[] for object iterators"));
-            }
-
-            case basic_json::value_t::array:
-            {
-                return *std::next(m_it.array_iterator, n);
-            }
-
-            case basic_json::value_t::null:
-            {
-                    JSON_THROW(std::out_of_range("cannot get value"));
-            }
-
-            default:
-            {
-                if (m_it.primitive_iterator.get_value() == -n)
-                {
-                    return *m_object;
                 }
 
-                    JSON_THROW(std::out_of_range("cannot get value"));
+                case basic_json::value_t::array:
+                {
+                    return (m_it.array_iterator < other.m_it.array_iterator);
+                }
+
+                default:
+                {
+                    return (m_it.primitive_iterator < other.m_it.primitive_iterator);
+                }
             }
         }
-    }
 
-    /*!
-    @brief  return the key of an object iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    typename object_t::key_type key() const
-    {
-        assert(m_object != nullptr);
-
-        if (m_object->is_object())
+        /*!
+        @brief  comparison: less than or equal
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator<=(const iter_impl& other) const
         {
-            return m_it.object_iterator->first;
+            return not other.operator < (*this);
         }
 
+        /*!
+        @brief  comparison: greater than
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator>(const iter_impl& other) const
+        {
+            return not operator<=(other);
+        }
+
+        /*!
+        @brief  comparison: greater than or equal
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        bool operator>=(const iter_impl& other) const
+        {
+            return not operator<(other);
+        }
+
+        /*!
+        @brief  add to iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl& operator+=(difference_type i)
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
+                }
+
+                case basic_json::value_t::array:
+                {
+                    std::advance(m_it.array_iterator, i);
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator += i;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /*!
+        @brief  subtract from iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl& operator-=(difference_type i)
+        {
+            return operator+=(-i);
+        }
+
+        /*!
+        @brief  add to iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl operator+(difference_type i)
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
+
+        /*!
+        @brief  subtract from iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        iter_impl operator-(difference_type i)
+        {
+            auto result = *this;
+            result -= i;
+            return result;
+        }
+
+        /*!
+        @brief  return difference
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        difference_type operator-(const iter_impl& other) const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    JSON_THROW(std::domain_error("cannot use offsets with object iterators"));
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return m_it.array_iterator - other.m_it.array_iterator;
+                }
+
+                default:
+                {
+                    return m_it.primitive_iterator - other.m_it.primitive_iterator;
+                }
+            }
+        }
+
+        /*!
+        @brief  access to successor
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        reference operator[](difference_type n) const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    JSON_THROW(std::domain_error("cannot use operator[] for object iterators"));
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return *std::next(m_it.array_iterator, n);
+                }
+
+                case basic_json::value_t::null:
+                {
+                    JSON_THROW(std::out_of_range("cannot get value"));
+                }
+
+                default:
+                {
+                    if (m_it.primitive_iterator.get_value() == -n)
+                    {
+                        return *m_object;
+                    }
+
+                    JSON_THROW(std::out_of_range("cannot get value"));
+                }
+            }
+        }
+
+        /*!
+        @brief  return the key of an object iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        typename object_t::key_type key() const
+        {
+            assert(m_object != nullptr);
+
+            if (m_object->is_object())
+            {
+                return m_it.object_iterator->first;
+            }
+
             JSON_THROW(std::domain_error("cannot use key() for non-object iterators"));
-    }
+        }
 
-    /*!
-    @brief  return the value of an iterator
-    @pre The iterator is initialized; i.e. `m_object != nullptr`.
-    */
-    reference value() const
-    {
-        return operator*();
-    }
+        /*!
+        @brief  return the value of an iterator
+        @pre The iterator is initialized; i.e. `m_object != nullptr`.
+        */
+        reference value() const
+        {
+            return operator*();
+        }
 
-    private:
-    /// associated JSON instance
-    pointer m_object = nullptr;
-    /// the actual iterator of the associated instance
-    internal_iterator m_it = internal_iterator();
-                       };
+      private:
+        /// associated JSON instance
+        pointer m_object = nullptr;
+        /// the actual iterator of the associated instance
+        internal_iterator m_it = internal_iterator();
+    };
 
     /*!
     @brief a template for a reverse iterator class
@@ -9095,9 +9134,9 @@ class basic_json
     @since version 1.0.0
     */
     template<typename Base>
-  class json_reverse_iterator : public std::reverse_iterator<Base>
+    class json_reverse_iterator : public std::reverse_iterator<Base>
     {
-        public:
+      public:
         /// shortcut to the reverse iterator adaptor
         using base_iterator = std::reverse_iterator<Base>;
         /// the reference type for the pointed-to element
@@ -9105,89 +9144,89 @@ class basic_json
 
         /// create reverse iterator from iterator
         json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept
-        : base_iterator(it)
-    {}
+            : base_iterator(it)
+        {}
 
-    /// create reverse iterator from base class
-    json_reverse_iterator(const base_iterator& it) noexcept
-    : base_iterator(it)
-    {}
+        /// create reverse iterator from base class
+        json_reverse_iterator(const base_iterator& it) noexcept
+            : base_iterator(it)
+        {}
 
-    /// post-increment (it++)
-    json_reverse_iterator operator++(int)
-    {
-        return base_iterator::operator++(1);
-    }
+        /// post-increment (it++)
+        json_reverse_iterator operator++(int)
+        {
+            return base_iterator::operator++(1);
+        }
 
-    /// pre-increment (++it)
-    json_reverse_iterator& operator++()
-    {
-        base_iterator::operator++();
-        return *this;
-    }
+        /// pre-increment (++it)
+        json_reverse_iterator& operator++()
+        {
+            base_iterator::operator++();
+            return *this;
+        }
 
-    /// post-decrement (it--)
-    json_reverse_iterator operator--(int)
-    {
-        return base_iterator::operator--(1);
-    }
+        /// post-decrement (it--)
+        json_reverse_iterator operator--(int)
+        {
+            return base_iterator::operator--(1);
+        }
 
-    /// pre-decrement (--it)
-    json_reverse_iterator& operator--()
-    {
-        base_iterator::operator--();
-        return *this;
-    }
+        /// pre-decrement (--it)
+        json_reverse_iterator& operator--()
+        {
+            base_iterator::operator--();
+            return *this;
+        }
 
-    /// add to iterator
-    json_reverse_iterator& operator+=(difference_type i)
-    {
-        base_iterator::operator+=(i);
-        return *this;
-    }
+        /// add to iterator
+        json_reverse_iterator& operator+=(difference_type i)
+        {
+            base_iterator::operator+=(i);
+            return *this;
+        }
 
-    /// add to iterator
-    json_reverse_iterator operator+(difference_type i) const
-    {
-        auto result = *this;
-        result += i;
-        return result;
-    }
+        /// add to iterator
+        json_reverse_iterator operator+(difference_type i) const
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
 
-    /// subtract from iterator
-    json_reverse_iterator operator-(difference_type i) const
-    {
-        auto result = *this;
-        result -= i;
-        return result;
-    }
+        /// subtract from iterator
+        json_reverse_iterator operator-(difference_type i) const
+        {
+            auto result = *this;
+            result -= i;
+            return result;
+        }
 
-    /// return difference
-    difference_type operator-(const json_reverse_iterator& other) const
-    {
-        return this->base() - other.base();
-    }
+        /// return difference
+        difference_type operator-(const json_reverse_iterator& other) const
+        {
+            return this->base() - other.base();
+        }
 
-    /// access to successor
-    reference operator[](difference_type n) const
-    {
-        return *(this->operator+(n));
-    }
+        /// access to successor
+        reference operator[](difference_type n) const
+        {
+            return *(this->operator+(n));
+        }
 
-    /// return the key of an object iterator
-    typename object_t::key_type key() const
-    {
-        auto it = --this->base();
-        return it.key();
-    }
+        /// return the key of an object iterator
+        typename object_t::key_type key() const
+        {
+            auto it = --this->base();
+            return it.key();
+        }
 
-    /// return the value of an iterator
-    reference value() const
-    {
-        auto it = --this->base();
-        return it.operator * ();
-    }
-                                                   };
+        /// return the value of an iterator
+        reference value() const
+        {
+            auto it = --this->base();
+            return it.operator * ();
+        }
+    };
 
 
   private:
@@ -9204,761 +9243,761 @@ class basic_json
     */
     class lexer
     {
-        public:
+      public:
         /// token types for the parser
         enum class token_type
-    {
-        uninitialized,   ///< indicating the scanner is uninitialized
-        literal_true,    ///< the `true` literal
-        literal_false,   ///< the `false` literal
-        literal_null,    ///< the `null` literal
-        value_string,    ///< a string -- use get_string() for actual value
-        value_number,    ///< a number -- use get_number() for actual value
-        begin_array,     ///< the character for array begin `[`
-        begin_object,    ///< the character for object begin `{`
-        end_array,       ///< the character for array end `]`
-        end_object,      ///< the character for object end `}`
-        name_separator,  ///< the name separator `:`
-        value_separator, ///< the value separator `,`
-        parse_error,     ///< indicating a parse error
-        end_of_input     ///< indicating the end of the input buffer
-    };
-
-    /// the char type to use in the lexer
-    using lexer_char_t = unsigned char;
-
-    /// a lexer from a buffer with given length
-    lexer(const lexer_char_t* buff, const size_t len) noexcept
-    : m_content(buff)
-    {
-        assert(m_content != nullptr);
-        m_start = m_cursor = m_content;
-        m_limit = m_content + len;
-    }
-
-    /// a lexer from an input stream
-    explicit lexer(std::istream& s)
-    : m_stream(&s), m_line_buffer()
-    {
-        // immediately abort if stream is erroneous
-        if (s.fail())
         {
+            uninitialized,   ///< indicating the scanner is uninitialized
+            literal_true,    ///< the `true` literal
+            literal_false,   ///< the `false` literal
+            literal_null,    ///< the `null` literal
+            value_string,    ///< a string -- use get_string() for actual value
+            value_number,    ///< a number -- use get_number() for actual value
+            begin_array,     ///< the character for array begin `[`
+            begin_object,    ///< the character for object begin `{`
+            end_array,       ///< the character for array end `]`
+            end_object,      ///< the character for object end `}`
+            name_separator,  ///< the name separator `:`
+            value_separator, ///< the value separator `,`
+            parse_error,     ///< indicating a parse error
+            end_of_input     ///< indicating the end of the input buffer
+        };
+
+        /// the char type to use in the lexer
+        using lexer_char_t = unsigned char;
+
+        /// a lexer from a buffer with given length
+        lexer(const lexer_char_t* buff, const size_t len) noexcept
+            : m_content(buff)
+        {
+            assert(m_content != nullptr);
+            m_start = m_cursor = m_content;
+            m_limit = m_content + len;
+        }
+
+        /// a lexer from an input stream
+        explicit lexer(std::istream& s)
+            : m_stream(&s), m_line_buffer()
+        {
+            // immediately abort if stream is erroneous
+            if (s.fail())
+            {
                 JSON_THROW(std::invalid_argument("stream error"));
-        }
-
-        // fill buffer
-        fill_line_buffer();
-
-        // skip UTF-8 byte-order mark
-        if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF")
-        {
-            m_line_buffer[0] = ' ';
-            m_line_buffer[1] = ' ';
-            m_line_buffer[2] = ' ';
-        }
-    }
-
-    // switch off unwanted functions (due to pointer members)
-    lexer() = delete;
-    lexer(const lexer&) = delete;
-    lexer operator=(const lexer&) = delete;
-
-    /*!
-    @brief create a string from one or two Unicode code points
-
-    There are two cases: (1) @a codepoint1 is in the Basic Multilingual
-    Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2)
-    @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to
-    represent a code point above U+FFFF.
-
-    @param[in] codepoint1  the code point (can be high surrogate)
-    @param[in] codepoint2  the code point (can be low surrogate or 0)
-
-    @return string representation of the code point; the length of the
-    result string is between 1 and 4 characters.
-
-    @throw std::out_of_range if code point is > 0x10ffff; example: `"code
-    points above 0x10FFFF are invalid"`
-    @throw std::invalid_argument if the low surrogate is invalid; example:
-    `""missing or wrong low surrogate""`
-
-    @complexity Constant.
-
-    @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code>
-    */
-    static string_t to_unicode(const std::size_t codepoint1,
-                               const std::size_t codepoint2 = 0)
-    {
-        // calculate the code point from the given code points
-        std::size_t codepoint = codepoint1;
-
-        // check if codepoint1 is a high surrogate
-        if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
-        {
-            // check if codepoint2 is a low surrogate
-            if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
-            {
-                codepoint =
-                // high surrogate occupies the most significant 22 bits
-                (codepoint1 << 10)
-                 // low surrogate occupies the least significant 15 bits
-                 + codepoint2
-                 // there is still the 0xD800, 0xDC00 and 0x10000 noise
-                 // in the result so we have to subtract with:
-                 // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00
-                 - 0x35FDC00;
             }
-            else
+
+            // fill buffer
+            fill_line_buffer();
+
+            // skip UTF-8 byte-order mark
+            if (m_line_buffer.size() >= 3 and m_line_buffer.substr(0, 3) == "\xEF\xBB\xBF")
             {
-                    JSON_THROW(std::invalid_argument("missing or wrong low surrogate"));
+                m_line_buffer[0] = ' ';
+                m_line_buffer[1] = ' ';
+                m_line_buffer[2] = ' ';
             }
         }
 
-        string_t result;
+        // switch off unwanted functions (due to pointer members)
+        lexer() = delete;
+        lexer(const lexer&) = delete;
+        lexer operator=(const lexer&) = delete;
 
-        if (codepoint < 0x80)
-        {
-            // 1-byte characters: 0xxxxxxx (ASCII)
-            result.append(1, static_cast<typename string_t::value_type>(codepoint));
-        }
-        else if (codepoint <= 0x7ff)
-        {
-            // 2-byte characters: 110xxxxx 10xxxxxx
-            result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-        }
-        else if (codepoint <= 0xffff)
-        {
-            // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx
-            result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-        }
-        else if (codepoint <= 0x10ffff)
-        {
-            // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
-            result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
-            result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
-        }
-        else
-        {
-                JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid"));
-        }
+        /*!
+        @brief create a string from one or two Unicode code points
 
-        return result;
-    }
+        There are two cases: (1) @a codepoint1 is in the Basic Multilingual
+        Plane (U+0000 through U+FFFF) and @a codepoint2 is 0, or (2)
+        @a codepoint1 and @a codepoint2 are a UTF-16 surrogate pair to
+        represent a code point above U+FFFF.
 
-    /// return name of values of type token_type (only used for errors)
-    static std::string token_type_name(const token_type t)
-    {
-        switch (t)
+        @param[in] codepoint1  the code point (can be high surrogate)
+        @param[in] codepoint2  the code point (can be low surrogate or 0)
+
+        @return string representation of the code point; the length of the
+        result string is between 1 and 4 characters.
+
+        @throw std::out_of_range if code point is > 0x10ffff; example: `"code
+        points above 0x10FFFF are invalid"`
+        @throw std::invalid_argument if the low surrogate is invalid; example:
+        `""missing or wrong low surrogate""`
+
+        @complexity Constant.
+
+        @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code>
+        */
+        static string_t to_unicode(const std::size_t codepoint1,
+                                   const std::size_t codepoint2 = 0)
         {
-            case token_type::uninitialized:
-                return "<uninitialized>";
-            case token_type::literal_true:
-                return "true literal";
-            case token_type::literal_false:
-                return "false literal";
-            case token_type::literal_null:
-                return "null literal";
-            case token_type::value_string:
-                return "string literal";
-            case token_type::value_number:
-                return "number literal";
-            case token_type::begin_array:
-                return "'['";
-            case token_type::begin_object:
-                return "'{'";
-            case token_type::end_array:
-                return "']'";
-            case token_type::end_object:
-                return "'}'";
-            case token_type::name_separator:
-                return "':'";
-            case token_type::value_separator:
-                return "','";
-            case token_type::parse_error:
-                return "<parse error>";
-            case token_type::end_of_input:
-                return "end of input";
-            default:
+            // calculate the code point from the given code points
+            std::size_t codepoint = codepoint1;
+
+            // check if codepoint1 is a high surrogate
+            if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
             {
-                // catch non-enum values
-                return "unknown token"; // LCOV_EXCL_LINE
-            }
-        }
-    }
-
-    /*!
-    This function implements a scanner for JSON. It is specified using
-    regular expressions that try to follow RFC 7159 as close as possible.
-    These regular expressions are then translated into a minimized
-    deterministic finite automaton (DFA) by the tool
-    [re2c](http://re2c.org). As a result, the translated code for this
-    function consists of a large block of code with `goto` jumps.
-
-    @return the class of the next token read from the buffer
-
-    @complexity Linear in the length of the input.\n
-
-    Proposition: The loop below will always terminate for finite input.\n
-
-    Proof (by contradiction): Assume a finite input. To loop forever, the
-    loop must never hit code with a `break` statement. The only code
-    snippets without a `break` statement are the continue statements for
-    whitespace and byte-order-marks. To loop forever, the input must be an
-    infinite sequence of whitespace or byte-order-marks. This contradicts
-    the assumption of finite input, q.e.d.
-    */
-    token_type scan()
-    {
-        while (true)
-        {
-            // pointer for backtracking information
-            m_marker = nullptr;
-
-            // remember the begin of the token
-            m_start = m_cursor;
-            assert(m_start != nullptr);
-
-            /*!re2c
-                re2c:define:YYCTYPE      = lexer_char_t;
-                re2c:define:YYCURSOR     = m_cursor;
-                re2c:define:YYLIMIT      = m_limit;
-                re2c:define:YYMARKER     = m_marker;
-                re2c:define:YYFILL       = "fill_line_buffer(@@); // LCOV_EXCL_LINE";
-                re2c:define:YYFILL:naked = 1;
-                re2c:yyfill:enable       = 1;
-                re2c:indent:string       = "    ";
-                re2c:indent:top          = 1;
-                re2c:labelprefix         = "basic_json_parser_";
-
-                // ignore whitespace
-                ws = [ \t\n\r]+;
-                ws   { continue; }
-
-                // structural characters
-                "[" { last_token_type = token_type::begin_array; break; }
-                "]" { last_token_type = token_type::end_array; break; }
-                "{" { last_token_type = token_type::begin_object; break; }
-                "}" { last_token_type = token_type::end_object; break; }
-                "," { last_token_type = token_type::value_separator; break; }
-                ":" { last_token_type = token_type::name_separator; break; }
-
-                // literal names
-                "null"  { last_token_type = token_type::literal_null; break; }
-                "true"  { last_token_type = token_type::literal_true; break; }
-                "false" { last_token_type = token_type::literal_false; break; }
-
-                // number
-                decimal_point = ".";
-                digit         = [0-9];
-                digit_1_9     = [1-9];
-                e             = "e" | "E";
-                minus         = "-";
-                plus          = "+";
-                zero          = "0";
-                exp           = e (minus | plus)? digit+;
-                frac          = decimal_point digit+;
-                int           = (zero | digit_1_9 digit*);
-                number        = minus? int frac? exp?;
-                number        { last_token_type = token_type::value_number; break; }
-
-                // string
-                quotation_mark  = "\"";
-                escape          = "\\";
-                unescaped       = [^"\\\x00-\x1f];
-                single_escaped  = "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t";
-                unicode_escaped = "u" [0-9a-fA-F]{4};
-                escaped         = escape (single_escaped | unicode_escaped);
-                char            = unescaped | escaped;
-                string          = quotation_mark char* quotation_mark;
-                string          { last_token_type = token_type::value_string; break; }
-
-                // end of file
-                "\x00"         { last_token_type = token_type::end_of_input; break; }
-
-                // anything else is an error
-                *              { last_token_type = token_type::parse_error; break; }
-            */
-        }
-
-        return last_token_type;
-    }
-
-    /*!
-    @brief append data from the stream to the line buffer
-
-    This function is called by the scan() function when the end of the
-    buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be
-    incremented without leaving the limits of the line buffer. Note re2c
-    decides when to call this function.
-
-    If the lexer reads from contiguous storage, there is no trailing null
-    byte. Therefore, this function must make sure to add these padding
-    null bytes.
-
-    If the lexer reads from an input stream, this function reads the next
-    line of the input.
-
-    @pre
-        p p p p p p u u u u u x . . . . . .
-        ^           ^       ^   ^
-        m_content   m_start |   m_limit
-                            m_cursor
-
-    @post
-        u u u u u x x x x x x x . . . . . .
-        ^       ^               ^
-        |       m_cursor        m_limit
-        m_start
-        m_content
-    */
-    void fill_line_buffer(size_t n = 0)
-    {
-        // if line buffer is used, m_content points to its data
-        assert(m_line_buffer.empty()
-               or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()));
-
-        // if line buffer is used, m_limit is set past the end of its data
-        assert(m_line_buffer.empty()
-               or m_limit == m_content + m_line_buffer.size());
-
-        // pointer relationships
-        assert(m_content <= m_start);
-        assert(m_start <= m_cursor);
-        assert(m_cursor <= m_limit);
-        assert(m_marker == nullptr or m_marker  <= m_limit);
-
-        // number of processed characters (p)
-            const auto num_processed_chars = static_cast<size_t>(m_start - m_content);
-        // offset for m_marker wrt. to m_start
-        const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start;
-        // number of unprocessed characters (u)
-        const auto offset_cursor = m_cursor - m_start;
-
-        // no stream is used or end of file is reached
-        if (m_stream == nullptr or m_stream->eof())
-        {
-            // m_start may or may not be pointing into m_line_buffer at
-            // this point. We trust the standand library to do the right
-            // thing. See http://stackoverflow.com/q/28142011/266378
-            m_line_buffer.assign(m_start, m_limit);
-
-            // append n characters to make sure that there is sufficient
-            // space between m_cursor and m_limit
-            m_line_buffer.append(1, '\x00');
-            if (n > 0)
-            {
-                m_line_buffer.append(n - 1, '\x01');
-            }
-        }
-        else
-        {
-            // delete processed characters from line buffer
-            m_line_buffer.erase(0, num_processed_chars);
-            // read next line from input stream
-            m_line_buffer_tmp.clear();
-            std::getline(*m_stream, m_line_buffer_tmp, '\n');
-
-            // add line with newline symbol to the line buffer
-            m_line_buffer += m_line_buffer_tmp;
-            m_line_buffer.push_back('\n');
-        }
-
-        // set pointers
-        m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data());
-        assert(m_content != nullptr);
-        m_start  = m_content;
-        m_marker = m_start + offset_marker;
-        m_cursor = m_start + offset_cursor;
-        m_limit  = m_start + m_line_buffer.size();
-    }
-
-    /// return string representation of last read token
-    string_t get_token_string() const
-    {
-        assert(m_start != nullptr);
-        return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
-                        static_cast<size_t>(m_cursor - m_start));
-    }
-
-    /*!
-    @brief return string value for string tokens
-
-    The function iterates the characters between the opening and closing
-    quotes of the string value. The complete string is the range
-    [m_start,m_cursor). Consequently, we iterate from m_start+1 to
-    m_cursor-1.
-
-    We differentiate two cases:
-
-    1. Escaped characters. In this case, a new character is constructed
-       according to the nature of the escape. Some escapes create new
-       characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied
-       as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape
-       `"\\uxxxx"` need special care. In this case, to_unicode takes care
-       of the construction of the values.
-    2. Unescaped characters are copied as is.
-
-    @pre `m_cursor - m_start >= 2`, meaning the length of the last token
-    is at least 2 bytes which is trivially true for any string (which
-    consists of at least two quotes).
-
-        " c1 c2 c3 ... "
-        ^                ^
-        m_start          m_cursor
-
-    @complexity Linear in the length of the string.\n
-
-    Lemma: The loop body will always terminate.\n
-
-    Proof (by contradiction): Assume the loop body does not terminate. As
-    the loop body does not contain another loop, one of the called
-    functions must never return. The called functions are `std::strtoul`
-    and to_unicode. Neither function can loop forever, so the loop body
-    will never loop forever which contradicts the assumption that the loop
-    body does not terminate, q.e.d.\n
-
-    Lemma: The loop condition for the for loop is eventually false.\n
-
-    Proof (by contradiction): Assume the loop does not terminate. Due to
-    the above lemma, this can only be due to a tautological loop
-    condition; that is, the loop condition i < m_cursor - 1 must always be
-    true. Let x be the change of i for any loop iteration. Then
-    m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This
-    can be rephrased to m_cursor - m_start - 2 > x. With the
-    precondition, we x <= 0, meaning that the loop condition holds
-    indefinitly if i is always decreased. However, observe that the value
-    of i is strictly increasing with each iteration, as it is incremented
-    by 1 in the iteration expression and never decremented inside the loop
-    body. Hence, the loop condition will eventually be false which
-    contradicts the assumption that the loop condition is a tautology,
-    q.e.d.
-
-    @return string value of current token without opening and closing
-    quotes
-    @throw std::out_of_range if to_unicode fails
-    */
-    string_t get_string() const
-    {
-        assert(m_cursor - m_start >= 2);
-
-        string_t result;
-        result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
-
-        // iterate the result between the quotes
-        for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
-        {
-            // find next escape character
-            auto e = std::find(i, m_cursor - 1, '\\');
-            if (e != i)
-            {
-                // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705
-                for (auto k = i; k < e; k++)
+                // check if codepoint2 is a low surrogate
+                if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
                 {
-                    result.push_back(static_cast<typename string_t::value_type>(*k));
-                }
-                i = e - 1; // -1 because of ++i
-            }
-            else
-            {
-                // processing escaped character
-                // read next character
-                ++i;
-
-                switch (*i)
-                {
-                    // the default escapes
-                    case 't':
-                    {
-                        result += "\t";
-                        break;
-                    }
-                    case 'b':
-                    {
-                        result += "\b";
-                        break;
-                    }
-                    case 'f':
-                    {
-                        result += "\f";
-                        break;
-                    }
-                    case 'n':
-                    {
-                        result += "\n";
-                        break;
-                    }
-                    case 'r':
-                    {
-                        result += "\r";
-                        break;
-                    }
-                    case '\\':
-                    {
-                        result += "\\";
-                        break;
-                    }
-                    case '/':
-                    {
-                        result += "/";
-                        break;
-                    }
-                    case '"':
-                    {
-                        result += "\"";
-                        break;
-                    }
-
-                    // unicode
-                    case 'u':
-                    {
-                        // get code xxxx from uxxxx
-                        auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
-                                                      4).c_str(), nullptr, 16);
-
-                        // check if codepoint is a high surrogate
-                        if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
-                        {
-                            // make sure there is a subsequent unicode
-                            if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
-                            {
-                                    JSON_THROW(std::invalid_argument("missing low surrogate"));
-                            }
-
-                            // get code yyyy from uxxxx\uyyyy
-                            auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
-                                                           (i + 7), 4).c_str(), nullptr, 16);
-                            result += to_unicode(codepoint, codepoint2);
-                            // skip the next 10 characters (xxxx\uyyyy)
-                            i += 10;
-                        }
-                        else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF)
-                        {
-                            // we found a lone low surrogate
-                                JSON_THROW(std::invalid_argument("missing high surrogate"));
-                        }
-                        else
-                        {
-                            // add unicode character(s)
-                            result += to_unicode(codepoint);
-                            // skip the next four characters (xxxx)
-                            i += 4;
-                        }
-                        break;
-                    }
-                }
-            }
-        }
-
-        return result;
-    }
-
-    /*!
-    @brief parse floating point number
-
-    This function (and its overloads) serves to select the most approprate
-    standard floating point number parsing function based on the type
-    supplied via the first parameter.  Set this to @a
-    static_cast<number_float_t*>(nullptr).
-
-    @param[in,out] endptr recieves a pointer to the first character after
-    the number
-
-    @return the floating point number
-    */
-    long double str_to_float_t(long double* /* type */, char** endptr) const
-    {
-        return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-    }
-
-    /*!
-    @brief parse floating point number
-
-    This function (and its overloads) serves to select the most approprate
-    standard floating point number parsing function based on the type
-    supplied via the first parameter.  Set this to @a
-    static_cast<number_float_t*>(nullptr).
-
-    @param[in,out] endptr  recieves a pointer to the first character after
-    the number
-
-    @return the floating point number
-    */
-    double str_to_float_t(double* /* type */, char** endptr) const
-    {
-        return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-    }
-
-    /*!
-    @brief parse floating point number
-
-    This function (and its overloads) serves to select the most approprate
-    standard floating point number parsing function based on the type
-    supplied via the first parameter.  Set this to @a
-    static_cast<number_float_t*>(nullptr).
-
-    @param[in,out] endptr  recieves a pointer to the first character after
-    the number
-
-    @return the floating point number
-    */
-    float str_to_float_t(float* /* type */, char** endptr) const
-    {
-        return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
-    }
-
-    /*!
-    @brief return number value for number tokens
-
-    This function translates the last token into the most appropriate
-    number type (either integer, unsigned integer or floating point),
-    which is passed back to the caller via the result parameter.
-
-    This function parses the integer component up to the radix point or
-    exponent while collecting information about the 'floating point
-    representation', which it stores in the result parameter. If there is
-    no radix point or exponent, and the number can fit into a @ref
-    number_integer_t or @ref number_unsigned_t then it sets the result
-    parameter accordingly.
-
-    If the number is a floating point number the number is then parsed
-    using @a std:strtod (or @a std:strtof or @a std::strtold).
-
-    @param[out] result  @ref basic_json object to receive the number, or
-    NAN if the conversion read past the current token. The latter case
-    needs to be treated by the caller function.
-    */
-    void get_number(basic_json& result) const
-    {
-        assert(m_start != nullptr);
-
-        const lexer::lexer_char_t* curptr = m_start;
-
-        // accumulate the integer conversion result (unsigned for now)
-        number_unsigned_t value = 0;
-
-        // maximum absolute value of the relevant integer type
-        number_unsigned_t max;
-
-        // temporarily store the type to avoid unecessary bitfield access
-        value_t type;
-
-        // look for sign
-        if (*curptr == '-')
-        {
-            type = value_t::number_integer;
-            max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1;
-            curptr++;
-        }
-        else
-        {
-            type = value_t::number_unsigned;
-            max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)());
-        }
-
-        // count the significant figures
-        for (; curptr < m_cursor; curptr++)
-        {
-            // quickly skip tests if a digit
-            if (*curptr < '0' || *curptr > '9')
-            {
-                if (*curptr == '.')
-                {
-                    // don't count '.' but change to float
-                    type = value_t::number_float;
-                    continue;
-                }
-                // assume exponent (if not then will fail parse): change to
-                // float, stop counting and record exponent details
-                type = value_t::number_float;
-                break;
-            }
-
-            // skip if definitely not an integer
-            if (type != value_t::number_float)
-            {
-                auto digit = static_cast<number_unsigned_t>(*curptr - '0');
-
-                // overflow if value * 10 + digit > max, move terms around
-                // to avoid overflow in intermediate values
-                if (value > (max - digit) / 10)
-                {
-                    // overflow
-                    type = value_t::number_float;
+                    codepoint =
+                        // high surrogate occupies the most significant 22 bits
+                        (codepoint1 << 10)
+                        // low surrogate occupies the least significant 15 bits
+                        + codepoint2
+                        // there is still the 0xD800, 0xDC00 and 0x10000 noise
+                        // in the result so we have to subtract with:
+                        // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00
+                        - 0x35FDC00;
                 }
                 else
                 {
-                    // no overflow
-                    value = value * 10 + digit;
+                    JSON_THROW(std::invalid_argument("missing or wrong low surrogate"));
+                }
+            }
+
+            string_t result;
+
+            if (codepoint < 0x80)
+            {
+                // 1-byte characters: 0xxxxxxx (ASCII)
+                result.append(1, static_cast<typename string_t::value_type>(codepoint));
+            }
+            else if (codepoint <= 0x7ff)
+            {
+                // 2-byte characters: 110xxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else if (codepoint <= 0xffff)
+            {
+                // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else if (codepoint <= 0x10ffff)
+            {
+                // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else
+            {
+                JSON_THROW(std::out_of_range("code points above 0x10FFFF are invalid"));
+            }
+
+            return result;
+        }
+
+        /// return name of values of type token_type (only used for errors)
+        static std::string token_type_name(const token_type t)
+        {
+            switch (t)
+            {
+                case token_type::uninitialized:
+                    return "<uninitialized>";
+                case token_type::literal_true:
+                    return "true literal";
+                case token_type::literal_false:
+                    return "false literal";
+                case token_type::literal_null:
+                    return "null literal";
+                case token_type::value_string:
+                    return "string literal";
+                case token_type::value_number:
+                    return "number literal";
+                case token_type::begin_array:
+                    return "'['";
+                case token_type::begin_object:
+                    return "'{'";
+                case token_type::end_array:
+                    return "']'";
+                case token_type::end_object:
+                    return "'}'";
+                case token_type::name_separator:
+                    return "':'";
+                case token_type::value_separator:
+                    return "','";
+                case token_type::parse_error:
+                    return "<parse error>";
+                case token_type::end_of_input:
+                    return "end of input";
+                default:
+                {
+                    // catch non-enum values
+                    return "unknown token"; // LCOV_EXCL_LINE
                 }
             }
         }
 
-        // save the value (if not a float)
-        if (type == value_t::number_unsigned)
-        {
-            result.m_value.number_unsigned = value;
-        }
-        else if (type == value_t::number_integer)
-        {
-            // invariant: if we parsed a '-', the absolute value is between
-            // 0 (we allow -0) and max == -INT64_MIN
-            assert(value >= 0);
-            assert(value <= max);
+        /*!
+        This function implements a scanner for JSON. It is specified using
+        regular expressions that try to follow RFC 7159 as close as possible.
+        These regular expressions are then translated into a minimized
+        deterministic finite automaton (DFA) by the tool
+        [re2c](http://re2c.org). As a result, the translated code for this
+        function consists of a large block of code with `goto` jumps.
 
-            if (value == max)
+        @return the class of the next token read from the buffer
+
+        @complexity Linear in the length of the input.\n
+
+        Proposition: The loop below will always terminate for finite input.\n
+
+        Proof (by contradiction): Assume a finite input. To loop forever, the
+        loop must never hit code with a `break` statement. The only code
+        snippets without a `break` statement are the continue statements for
+        whitespace and byte-order-marks. To loop forever, the input must be an
+        infinite sequence of whitespace or byte-order-marks. This contradicts
+        the assumption of finite input, q.e.d.
+        */
+        token_type scan()
+        {
+            while (true)
             {
-                // we cannot simply negate value (== max == -INT64_MIN),
-                // see https://github.com/nlohmann/json/issues/389
-                result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN);
+                // pointer for backtracking information
+                m_marker = nullptr;
+
+                // remember the begin of the token
+                m_start = m_cursor;
+                assert(m_start != nullptr);
+
+                /*!re2c
+                    re2c:define:YYCTYPE      = lexer_char_t;
+                    re2c:define:YYCURSOR     = m_cursor;
+                    re2c:define:YYLIMIT      = m_limit;
+                    re2c:define:YYMARKER     = m_marker;
+                    re2c:define:YYFILL       = "fill_line_buffer(@@); // LCOV_EXCL_LINE";
+                    re2c:define:YYFILL:naked = 1;
+                    re2c:yyfill:enable       = 1;
+                    re2c:indent:string       = "    ";
+                    re2c:indent:top          = 1;
+                    re2c:labelprefix         = "basic_json_parser_";
+
+                    // ignore whitespace
+                    ws = [ \t\n\r]+;
+                    ws   { continue; }
+
+                    // structural characters
+                    "[" { last_token_type = token_type::begin_array; break; }
+                    "]" { last_token_type = token_type::end_array; break; }
+                    "{" { last_token_type = token_type::begin_object; break; }
+                    "}" { last_token_type = token_type::end_object; break; }
+                    "," { last_token_type = token_type::value_separator; break; }
+                    ":" { last_token_type = token_type::name_separator; break; }
+
+                    // literal names
+                    "null"  { last_token_type = token_type::literal_null; break; }
+                    "true"  { last_token_type = token_type::literal_true; break; }
+                    "false" { last_token_type = token_type::literal_false; break; }
+
+                    // number
+                    decimal_point = ".";
+                    digit         = [0-9];
+                    digit_1_9     = [1-9];
+                    e             = "e" | "E";
+                    minus         = "-";
+                    plus          = "+";
+                    zero          = "0";
+                    exp           = e (minus | plus)? digit+;
+                    frac          = decimal_point digit+;
+                    int           = (zero | digit_1_9 digit*);
+                    number        = minus? int frac? exp?;
+                    number        { last_token_type = token_type::value_number; break; }
+
+                    // string
+                    quotation_mark  = "\"";
+                    escape          = "\\";
+                    unescaped       = [^"\\\x00-\x1f];
+                    single_escaped  = "\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t";
+                    unicode_escaped = "u" [0-9a-fA-F]{4};
+                    escaped         = escape (single_escaped | unicode_escaped);
+                    char            = unescaped | escaped;
+                    string          = quotation_mark char* quotation_mark;
+                    string          { last_token_type = token_type::value_string; break; }
+
+                    // end of file
+                    "\x00"         { last_token_type = token_type::end_of_input; break; }
+
+                    // anything else is an error
+                    *              { last_token_type = token_type::parse_error; break; }
+                */
+            }
+
+            return last_token_type;
+        }
+
+        /*!
+        @brief append data from the stream to the line buffer
+
+        This function is called by the scan() function when the end of the
+        buffer (`m_limit`) is reached and the `m_cursor` pointer cannot be
+        incremented without leaving the limits of the line buffer. Note re2c
+        decides when to call this function.
+
+        If the lexer reads from contiguous storage, there is no trailing null
+        byte. Therefore, this function must make sure to add these padding
+        null bytes.
+
+        If the lexer reads from an input stream, this function reads the next
+        line of the input.
+
+        @pre
+            p p p p p p u u u u u x . . . . . .
+            ^           ^       ^   ^
+            m_content   m_start |   m_limit
+                                m_cursor
+
+        @post
+            u u u u u x x x x x x x . . . . . .
+            ^       ^               ^
+            |       m_cursor        m_limit
+            m_start
+            m_content
+        */
+        void fill_line_buffer(size_t n = 0)
+        {
+            // if line buffer is used, m_content points to its data
+            assert(m_line_buffer.empty()
+                   or m_content == reinterpret_cast<const lexer_char_t*>(m_line_buffer.data()));
+
+            // if line buffer is used, m_limit is set past the end of its data
+            assert(m_line_buffer.empty()
+                   or m_limit == m_content + m_line_buffer.size());
+
+            // pointer relationships
+            assert(m_content <= m_start);
+            assert(m_start <= m_cursor);
+            assert(m_cursor <= m_limit);
+            assert(m_marker == nullptr or m_marker  <= m_limit);
+
+            // number of processed characters (p)
+            const auto num_processed_chars = static_cast<size_t>(m_start - m_content);
+            // offset for m_marker wrt. to m_start
+            const auto offset_marker = (m_marker == nullptr) ? 0 : m_marker - m_start;
+            // number of unprocessed characters (u)
+            const auto offset_cursor = m_cursor - m_start;
+
+            // no stream is used or end of file is reached
+            if (m_stream == nullptr or m_stream->eof())
+            {
+                // m_start may or may not be pointing into m_line_buffer at
+                // this point. We trust the standand library to do the right
+                // thing. See http://stackoverflow.com/q/28142011/266378
+                m_line_buffer.assign(m_start, m_limit);
+
+                // append n characters to make sure that there is sufficient
+                // space between m_cursor and m_limit
+                m_line_buffer.append(1, '\x00');
+                if (n > 0)
+                {
+                    m_line_buffer.append(n - 1, '\x01');
+                }
             }
             else
             {
-                // all other values can be negated safely
-                result.m_value.number_integer = -static_cast<number_integer_t>(value);
+                // delete processed characters from line buffer
+                m_line_buffer.erase(0, num_processed_chars);
+                // read next line from input stream
+                m_line_buffer_tmp.clear();
+                std::getline(*m_stream, m_line_buffer_tmp, '\n');
+
+                // add line with newline symbol to the line buffer
+                m_line_buffer += m_line_buffer_tmp;
+                m_line_buffer.push_back('\n');
             }
+
+            // set pointers
+            m_content = reinterpret_cast<const lexer_char_t*>(m_line_buffer.data());
+            assert(m_content != nullptr);
+            m_start  = m_content;
+            m_marker = m_start + offset_marker;
+            m_cursor = m_start + offset_cursor;
+            m_limit  = m_start + m_line_buffer.size();
         }
-        else
+
+        /// return string representation of last read token
+        string_t get_token_string() const
         {
-            // parse with strtod
+            assert(m_start != nullptr);
+            return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
+                            static_cast<size_t>(m_cursor - m_start));
+        }
+
+        /*!
+        @brief return string value for string tokens
+
+        The function iterates the characters between the opening and closing
+        quotes of the string value. The complete string is the range
+        [m_start,m_cursor). Consequently, we iterate from m_start+1 to
+        m_cursor-1.
+
+        We differentiate two cases:
+
+        1. Escaped characters. In this case, a new character is constructed
+           according to the nature of the escape. Some escapes create new
+           characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied
+           as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape
+           `"\\uxxxx"` need special care. In this case, to_unicode takes care
+           of the construction of the values.
+        2. Unescaped characters are copied as is.
+
+        @pre `m_cursor - m_start >= 2`, meaning the length of the last token
+        is at least 2 bytes which is trivially true for any string (which
+        consists of at least two quotes).
+
+            " c1 c2 c3 ... "
+            ^                ^
+            m_start          m_cursor
+
+        @complexity Linear in the length of the string.\n
+
+        Lemma: The loop body will always terminate.\n
+
+        Proof (by contradiction): Assume the loop body does not terminate. As
+        the loop body does not contain another loop, one of the called
+        functions must never return. The called functions are `std::strtoul`
+        and to_unicode. Neither function can loop forever, so the loop body
+        will never loop forever which contradicts the assumption that the loop
+        body does not terminate, q.e.d.\n
+
+        Lemma: The loop condition for the for loop is eventually false.\n
+
+        Proof (by contradiction): Assume the loop does not terminate. Due to
+        the above lemma, this can only be due to a tautological loop
+        condition; that is, the loop condition i < m_cursor - 1 must always be
+        true. Let x be the change of i for any loop iteration. Then
+        m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This
+        can be rephrased to m_cursor - m_start - 2 > x. With the
+        precondition, we x <= 0, meaning that the loop condition holds
+        indefinitly if i is always decreased. However, observe that the value
+        of i is strictly increasing with each iteration, as it is incremented
+        by 1 in the iteration expression and never decremented inside the loop
+        body. Hence, the loop condition will eventually be false which
+        contradicts the assumption that the loop condition is a tautology,
+        q.e.d.
+
+        @return string value of current token without opening and closing
+        quotes
+        @throw std::out_of_range if to_unicode fails
+        */
+        string_t get_string() const
+        {
+            assert(m_cursor - m_start >= 2);
+
+            string_t result;
+            result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
+
+            // iterate the result between the quotes
+            for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
+            {
+                // find next escape character
+                auto e = std::find(i, m_cursor - 1, '\\');
+                if (e != i)
+                {
+                    // see https://github.com/nlohmann/json/issues/365#issuecomment-262874705
+                    for (auto k = i; k < e; k++)
+                    {
+                        result.push_back(static_cast<typename string_t::value_type>(*k));
+                    }
+                    i = e - 1; // -1 because of ++i
+                }
+                else
+                {
+                    // processing escaped character
+                    // read next character
+                    ++i;
+
+                    switch (*i)
+                    {
+                        // the default escapes
+                        case 't':
+                        {
+                            result += "\t";
+                            break;
+                        }
+                        case 'b':
+                        {
+                            result += "\b";
+                            break;
+                        }
+                        case 'f':
+                        {
+                            result += "\f";
+                            break;
+                        }
+                        case 'n':
+                        {
+                            result += "\n";
+                            break;
+                        }
+                        case 'r':
+                        {
+                            result += "\r";
+                            break;
+                        }
+                        case '\\':
+                        {
+                            result += "\\";
+                            break;
+                        }
+                        case '/':
+                        {
+                            result += "/";
+                            break;
+                        }
+                        case '"':
+                        {
+                            result += "\"";
+                            break;
+                        }
+
+                        // unicode
+                        case 'u':
+                        {
+                            // get code xxxx from uxxxx
+                            auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
+                                                          4).c_str(), nullptr, 16);
+
+                            // check if codepoint is a high surrogate
+                            if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
+                            {
+                                // make sure there is a subsequent unicode
+                                if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
+                                {
+                                    JSON_THROW(std::invalid_argument("missing low surrogate"));
+                                }
+
+                                // get code yyyy from uxxxx\uyyyy
+                                auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
+                                                               (i + 7), 4).c_str(), nullptr, 16);
+                                result += to_unicode(codepoint, codepoint2);
+                                // skip the next 10 characters (xxxx\uyyyy)
+                                i += 10;
+                            }
+                            else if (codepoint >= 0xDC00 and codepoint <= 0xDFFF)
+                            {
+                                // we found a lone low surrogate
+                                JSON_THROW(std::invalid_argument("missing high surrogate"));
+                            }
+                            else
+                            {
+                                // add unicode character(s)
+                                result += to_unicode(codepoint);
+                                // skip the next four characters (xxxx)
+                                i += 4;
+                            }
+                            break;
+                        }
+                    }
+                }
+            }
+
+            return result;
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in,out] endptr recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+        */
+        long double str_to_float_t(long double* /* type */, char** endptr) const
+        {
+            return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in,out] endptr  recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+        */
+        double str_to_float_t(double* /* type */, char** endptr) const
+        {
+            return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in,out] endptr  recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+        */
+        float str_to_float_t(float* /* type */, char** endptr) const
+        {
+            return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief return number value for number tokens
+
+        This function translates the last token into the most appropriate
+        number type (either integer, unsigned integer or floating point),
+        which is passed back to the caller via the result parameter.
+
+        This function parses the integer component up to the radix point or
+        exponent while collecting information about the 'floating point
+        representation', which it stores in the result parameter. If there is
+        no radix point or exponent, and the number can fit into a @ref
+        number_integer_t or @ref number_unsigned_t then it sets the result
+        parameter accordingly.
+
+        If the number is a floating point number the number is then parsed
+        using @a std:strtod (or @a std:strtof or @a std::strtold).
+
+        @param[out] result  @ref basic_json object to receive the number, or
+        NAN if the conversion read past the current token. The latter case
+        needs to be treated by the caller function.
+        */
+        void get_number(basic_json& result) const
+        {
+            assert(m_start != nullptr);
+
+            const lexer::lexer_char_t* curptr = m_start;
+
+            // accumulate the integer conversion result (unsigned for now)
+            number_unsigned_t value = 0;
+
+            // maximum absolute value of the relevant integer type
+            number_unsigned_t max;
+
+            // temporarily store the type to avoid unecessary bitfield access
+            value_t type;
+
+            // look for sign
+            if (*curptr == '-')
+            {
+                type = value_t::number_integer;
+                max = static_cast<uint64_t>((std::numeric_limits<number_integer_t>::max)()) + 1;
+                curptr++;
+            }
+            else
+            {
+                type = value_t::number_unsigned;
+                max = static_cast<uint64_t>((std::numeric_limits<number_unsigned_t>::max)());
+            }
+
+            // count the significant figures
+            for (; curptr < m_cursor; curptr++)
+            {
+                // quickly skip tests if a digit
+                if (*curptr < '0' || *curptr > '9')
+                {
+                    if (*curptr == '.')
+                    {
+                        // don't count '.' but change to float
+                        type = value_t::number_float;
+                        continue;
+                    }
+                    // assume exponent (if not then will fail parse): change to
+                    // float, stop counting and record exponent details
+                    type = value_t::number_float;
+                    break;
+                }
+
+                // skip if definitely not an integer
+                if (type != value_t::number_float)
+                {
+                    auto digit = static_cast<number_unsigned_t>(*curptr - '0');
+
+                    // overflow if value * 10 + digit > max, move terms around
+                    // to avoid overflow in intermediate values
+                    if (value > (max - digit) / 10)
+                    {
+                        // overflow
+                        type = value_t::number_float;
+                    }
+                    else
+                    {
+                        // no overflow
+                        value = value * 10 + digit;
+                    }
+                }
+            }
+
+            // save the value (if not a float)
+            if (type == value_t::number_unsigned)
+            {
+                result.m_value.number_unsigned = value;
+            }
+            else if (type == value_t::number_integer)
+            {
+                // invariant: if we parsed a '-', the absolute value is between
+                // 0 (we allow -0) and max == -INT64_MIN
+                assert(value >= 0);
+                assert(value <= max);
+
+                if (value == max)
+                {
+                    // we cannot simply negate value (== max == -INT64_MIN),
+                    // see https://github.com/nlohmann/json/issues/389
+                    result.m_value.number_integer = static_cast<number_integer_t>(INT64_MIN);
+                }
+                else
+                {
+                    // all other values can be negated safely
+                    result.m_value.number_integer = -static_cast<number_integer_t>(value);
+                }
+            }
+            else
+            {
+                // parse with strtod
                 result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), nullptr);
 
-            // replace infinity and NAN by null
-            if (not std::isfinite(result.m_value.number_float))
-            {
-                type = value_t::null;
-                result.m_value = basic_json::json_value();
+                // replace infinity and NAN by null
+                if (not std::isfinite(result.m_value.number_float))
+                {
+                    type = value_t::null;
+                    result.m_value = basic_json::json_value();
+                }
             }
+
+            // save the type
+            result.m_type = type;
         }
 
-        // save the type
-        result.m_type = type;
-    }
-
-    private:
-    /// optional input stream
-    std::istream* m_stream = nullptr;
-    /// line buffer buffer for m_stream
-    string_t m_line_buffer {};
-    /// used for filling m_line_buffer
-    string_t m_line_buffer_tmp {};
-    /// the buffer pointer
-    const lexer_char_t* m_content = nullptr;
-    /// pointer to the beginning of the current symbol
-    const lexer_char_t* m_start = nullptr;
-    /// pointer for backtracking information
-    const lexer_char_t* m_marker = nullptr;
-    /// pointer to the current symbol
-    const lexer_char_t* m_cursor = nullptr;
-    /// pointer to the end of the buffer
-    const lexer_char_t* m_limit = nullptr;
-    /// the last token type
-    token_type last_token_type = token_type::end_of_input;
-                                                };
+      private:
+        /// optional input stream
+        std::istream* m_stream = nullptr;
+        /// line buffer buffer for m_stream
+        string_t m_line_buffer {};
+        /// used for filling m_line_buffer
+        string_t m_line_buffer_tmp {};
+        /// the buffer pointer
+        const lexer_char_t* m_content = nullptr;
+        /// pointer to the beginning of the current symbol
+        const lexer_char_t* m_start = nullptr;
+        /// pointer for backtracking information
+        const lexer_char_t* m_marker = nullptr;
+        /// pointer to the current symbol
+        const lexer_char_t* m_cursor = nullptr;
+        /// pointer to the end of the buffer
+        const lexer_char_t* m_limit = nullptr;
+        /// the last token type
+        token_type last_token_type = token_type::end_of_input;
+    };
 
     /*!
     @brief syntax analysis
@@ -9967,282 +10006,282 @@ class basic_json
     */
     class parser
     {
-        public:
+      public:
         /// a parser reading from a string literal
         parser(const char* buff, const parser_callback_t cb = nullptr)
-        : callback(cb),
-        m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff))
-    {}
+            : callback(cb),
+              m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(buff), std::strlen(buff))
+        {}
 
-    /// a parser reading from an input stream
-    parser(std::istream& is, const parser_callback_t cb = nullptr)
-    : callback(cb), m_lexer(is)
-    {}
+        /// a parser reading from an input stream
+        parser(std::istream& is, const parser_callback_t cb = nullptr)
+            : callback(cb), m_lexer(is)
+        {}
 
-    /// a parser reading from an iterator range with contiguous storage
-    template<class IteratorType, typename std::enable_if<
-                 std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value
-                 , int>::type
-             = 0>
-    parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr)
-    : callback(cb),
-    m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)),
-            static_cast<size_t>(std::distance(first, last)))
-    {}
+        /// a parser reading from an iterator range with contiguous storage
+        template<class IteratorType, typename std::enable_if<
+                     std::is_same<typename std::iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value
+                     , int>::type
+                 = 0>
+        parser(IteratorType first, IteratorType last, const parser_callback_t cb = nullptr)
+            : callback(cb),
+              m_lexer(reinterpret_cast<const typename lexer::lexer_char_t*>(&(*first)),
+                      static_cast<size_t>(std::distance(first, last)))
+        {}
 
-    /// public parser interface
-    basic_json parse()
-    {
-        // read first token
-        get_token();
-
-        basic_json result = parse_internal(true);
-        result.assert_invariant();
-
-        expect(lexer::token_type::end_of_input);
-
-        // return parser result and replace it with null in case the
-        // top-level value was discarded by the callback function
-        return result.is_discarded() ? basic_json() : std::move(result);
-    }
-
-    private:
-    /// the actual parser
-    basic_json parse_internal(bool keep)
-    {
-        auto result = basic_json(value_t::discarded);
-
-        switch (last_token)
+        /// public parser interface
+        basic_json parse()
         {
-            case lexer::token_type::begin_object:
+            // read first token
+            get_token();
+
+            basic_json result = parse_internal(true);
+            result.assert_invariant();
+
+            expect(lexer::token_type::end_of_input);
+
+            // return parser result and replace it with null in case the
+            // top-level value was discarded by the callback function
+            return result.is_discarded() ? basic_json() : std::move(result);
+        }
+
+      private:
+        /// the actual parser
+        basic_json parse_internal(bool keep)
+        {
+            auto result = basic_json(value_t::discarded);
+
+            switch (last_token)
             {
-                if (keep and (not callback
-                              or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0)))
+                case lexer::token_type::begin_object:
                 {
-                    // explicitly set result to object to cope with {}
-                    result.m_type = value_t::object;
-                    result.m_value = value_t::object;
-                }
+                    if (keep and (not callback
+                                  or ((keep = callback(depth++, parse_event_t::object_start, result)) != 0)))
+                    {
+                        // explicitly set result to object to cope with {}
+                        result.m_type = value_t::object;
+                        result.m_value = value_t::object;
+                    }
 
-                // read next token
-                get_token();
+                    // read next token
+                    get_token();
 
-                // closing } -> we are done
-                if (last_token == lexer::token_type::end_object)
-                {
+                    // closing } -> we are done
+                    if (last_token == lexer::token_type::end_object)
+                    {
+                        get_token();
+                        if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
+                        {
+                            result = basic_json(value_t::discarded);
+                        }
+                        return result;
+                    }
+
+                    // no comma is expected here
+                    unexpect(lexer::token_type::value_separator);
+
+                    // otherwise: parse key-value pairs
+                    do
+                    {
+                        // ugly, but could be fixed with loop reorganization
+                        if (last_token == lexer::token_type::value_separator)
+                        {
+                            get_token();
+                        }
+
+                        // store key
+                        expect(lexer::token_type::value_string);
+                        const auto key = m_lexer.get_string();
+
+                        bool keep_tag = false;
+                        if (keep)
+                        {
+                            if (callback)
+                            {
+                                basic_json k(key);
+                                keep_tag = callback(depth, parse_event_t::key, k);
+                            }
+                            else
+                            {
+                                keep_tag = true;
+                            }
+                        }
+
+                        // parse separator (:)
+                        get_token();
+                        expect(lexer::token_type::name_separator);
+
+                        // parse and add value
+                        get_token();
+                        auto value = parse_internal(keep);
+                        if (keep and keep_tag and not value.is_discarded())
+                        {
+                            result[key] = std::move(value);
+                        }
+                    }
+                    while (last_token == lexer::token_type::value_separator);
+
+                    // closing }
+                    expect(lexer::token_type::end_object);
                     get_token();
                     if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
                     {
                         result = basic_json(value_t::discarded);
                     }
+
                     return result;
                 }
 
-                // no comma is expected here
-                unexpect(lexer::token_type::value_separator);
-
-                // otherwise: parse key-value pairs
-                do
+                case lexer::token_type::begin_array:
                 {
-                    // ugly, but could be fixed with loop reorganization
-                    if (last_token == lexer::token_type::value_separator)
+                    if (keep and (not callback
+                                  or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0)))
+                    {
+                        // explicitly set result to object to cope with []
+                        result.m_type = value_t::array;
+                        result.m_value = value_t::array;
+                    }
+
+                    // read next token
+                    get_token();
+
+                    // closing ] -> we are done
+                    if (last_token == lexer::token_type::end_array)
                     {
                         get_token();
+                        if (callback and not callback(--depth, parse_event_t::array_end, result))
+                        {
+                            result = basic_json(value_t::discarded);
+                        }
+                        return result;
                     }
 
-                    // store key
-                    expect(lexer::token_type::value_string);
-                    const auto key = m_lexer.get_string();
+                    // no comma is expected here
+                    unexpect(lexer::token_type::value_separator);
 
-                    bool keep_tag = false;
-                    if (keep)
+                    // otherwise: parse values
+                    do
                     {
-                        if (callback)
+                        // ugly, but could be fixed with loop reorganization
+                        if (last_token == lexer::token_type::value_separator)
                         {
-                            basic_json k(key);
-                            keep_tag = callback(depth, parse_event_t::key, k);
+                            get_token();
                         }
-                        else
+
+                        // parse value
+                        auto value = parse_internal(keep);
+                        if (keep and not value.is_discarded())
                         {
-                            keep_tag = true;
+                            result.push_back(std::move(value));
                         }
                     }
+                    while (last_token == lexer::token_type::value_separator);
 
-                    // parse separator (:)
+                    // closing ]
+                    expect(lexer::token_type::end_array);
                     get_token();
-                    expect(lexer::token_type::name_separator);
-
-                    // parse and add value
-                    get_token();
-                    auto value = parse_internal(keep);
-                    if (keep and keep_tag and not value.is_discarded())
-                    {
-                        result[key] = std::move(value);
-                    }
-                }
-                while (last_token == lexer::token_type::value_separator);
-
-                // closing }
-                expect(lexer::token_type::end_object);
-                get_token();
-                if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
-                {
-                    result = basic_json(value_t::discarded);
-                }
-
-                return result;
-            }
-
-            case lexer::token_type::begin_array:
-            {
-                if (keep and (not callback
-                              or ((keep = callback(depth++, parse_event_t::array_start, result)) != 0)))
-                {
-                    // explicitly set result to object to cope with []
-                    result.m_type = value_t::array;
-                    result.m_value = value_t::array;
-                }
-
-                // read next token
-                get_token();
-
-                // closing ] -> we are done
-                if (last_token == lexer::token_type::end_array)
-                {
-                    get_token();
-                    if (callback and not callback(--depth, parse_event_t::array_end, result))
+                    if (keep and callback and not callback(--depth, parse_event_t::array_end, result))
                     {
                         result = basic_json(value_t::discarded);
                     }
+
                     return result;
                 }
 
-                // no comma is expected here
-                unexpect(lexer::token_type::value_separator);
-
-                // otherwise: parse values
-                do
+                case lexer::token_type::literal_null:
                 {
-                    // ugly, but could be fixed with loop reorganization
-                    if (last_token == lexer::token_type::value_separator)
-                    {
-                        get_token();
-                    }
-
-                    // parse value
-                    auto value = parse_internal(keep);
-                    if (keep and not value.is_discarded())
-                    {
-                        result.push_back(std::move(value));
-                    }
-                }
-                while (last_token == lexer::token_type::value_separator);
-
-                // closing ]
-                expect(lexer::token_type::end_array);
-                get_token();
-                if (keep and callback and not callback(--depth, parse_event_t::array_end, result))
-                {
-                    result = basic_json(value_t::discarded);
+                    get_token();
+                    result.m_type = value_t::null;
+                    break;
                 }
 
-                return result;
+                case lexer::token_type::value_string:
+                {
+                    const auto s = m_lexer.get_string();
+                    get_token();
+                    result = basic_json(s);
+                    break;
+                }
+
+                case lexer::token_type::literal_true:
+                {
+                    get_token();
+                    result.m_type = value_t::boolean;
+                    result.m_value = true;
+                    break;
+                }
+
+                case lexer::token_type::literal_false:
+                {
+                    get_token();
+                    result.m_type = value_t::boolean;
+                    result.m_value = false;
+                    break;
+                }
+
+                case lexer::token_type::value_number:
+                {
+                    m_lexer.get_number(result);
+                    get_token();
+                    break;
+                }
+
+                default:
+                {
+                    // the last token was unexpected
+                    unexpect(last_token);
+                }
             }
 
-            case lexer::token_type::literal_null:
+            if (keep and callback and not callback(depth, parse_event_t::value, result))
             {
-                get_token();
-                result.m_type = value_t::null;
-                break;
-            }
-
-            case lexer::token_type::value_string:
-            {
-                const auto s = m_lexer.get_string();
-                get_token();
-                result = basic_json(s);
-                break;
-            }
-
-            case lexer::token_type::literal_true:
-            {
-                get_token();
-                result.m_type = value_t::boolean;
-                result.m_value = true;
-                break;
-            }
-
-            case lexer::token_type::literal_false:
-            {
-                get_token();
-                result.m_type = value_t::boolean;
-                result.m_value = false;
-                break;
-            }
-
-            case lexer::token_type::value_number:
-            {
-                m_lexer.get_number(result);
-                get_token();
-                break;
-            }
-
-            default:
-            {
-                // the last token was unexpected
-                unexpect(last_token);
+                result = basic_json(value_t::discarded);
             }
+            return result;
         }
 
-        if (keep and callback and not callback(depth, parse_event_t::value, result))
+        /// get next token from lexer
+        typename lexer::token_type get_token()
         {
-            result = basic_json(value_t::discarded);
+            last_token = m_lexer.scan();
+            return last_token;
         }
-        return result;
-    }
 
-    /// get next token from lexer
-    typename lexer::token_type get_token()
-    {
-        last_token = m_lexer.scan();
-        return last_token;
-    }
-
-    void expect(typename lexer::token_type t) const
-    {
-        if (t != last_token)
+        void expect(typename lexer::token_type t) const
         {
-            std::string error_msg = "parse error - unexpected ";
-            error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
-                          "'") :
-                          lexer::token_type_name(last_token));
-            error_msg += "; expected " + lexer::token_type_name(t);
+            if (t != last_token)
+            {
+                std::string error_msg = "parse error - unexpected ";
+                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
+                              "'") :
+                              lexer::token_type_name(last_token));
+                error_msg += "; expected " + lexer::token_type_name(t);
                 JSON_THROW(std::invalid_argument(error_msg));
+            }
         }
-    }
 
-    void unexpect(typename lexer::token_type t) const
-    {
-        if (t == last_token)
+        void unexpect(typename lexer::token_type t) const
         {
-            std::string error_msg = "parse error - unexpected ";
-            error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
-                          "'") :
-                          lexer::token_type_name(last_token));
+            if (t == last_token)
+            {
+                std::string error_msg = "parse error - unexpected ";
+                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token_string() +
+                              "'") :
+                              lexer::token_type_name(last_token));
                 JSON_THROW(std::invalid_argument(error_msg));
+            }
         }
-    }
 
-    private:
-    /// current level of recursion
-    int depth = 0;
-    /// callback function
-    const parser_callback_t callback = nullptr;
-    /// the type of the last read token
-    typename lexer::token_type last_token = lexer::token_type::uninitialized;
-    /// the lexer
-    lexer m_lexer;
-                            };
+      private:
+        /// current level of recursion
+        int depth = 0;
+        /// callback function
+        const parser_callback_t callback = nullptr;
+        /// the type of the last read token
+        typename lexer::token_type last_token = lexer::token_type::uninitialized;
+        /// the lexer
+        lexer m_lexer;
+    };
 
   public:
     /*!
@@ -10261,7 +10300,7 @@ class basic_json
         /// allow basic_json to access private members
         friend class basic_json;
 
-        public:
+      public:
         /*!
         @brief create JSON pointer
 
@@ -10285,573 +10324,573 @@ class basic_json
         @since version 2.0.0
         */
         explicit json_pointer(const std::string& s = "")
-        : reference_tokens(split(s))
-    {}
+            : reference_tokens(split(s))
+        {}
 
-    /*!
-    @brief return a string representation of the JSON pointer
+        /*!
+        @brief return a string representation of the JSON pointer
 
-    @invariant For each JSON pointer `ptr`, it holds:
-    @code {.cpp}
-    ptr == json_pointer(ptr.to_string());
-    @endcode
+        @invariant For each JSON pointer `ptr`, it holds:
+        @code {.cpp}
+        ptr == json_pointer(ptr.to_string());
+        @endcode
 
-    @return a string representation of the JSON pointer
+        @return a string representation of the JSON pointer
 
-    @liveexample{The example shows the result of `to_string`.,
-    json_pointer__to_string}
+        @liveexample{The example shows the result of `to_string`.,
+        json_pointer__to_string}
 
-    @since version 2.0.0
-    */
-    std::string to_string() const noexcept
-    {
-        return std::accumulate(reference_tokens.begin(),
-                               reference_tokens.end(), std::string{},
-                               [](const std::string & a, const std::string & b)
+        @since version 2.0.0
+        */
+        std::string to_string() const noexcept
         {
-            return a + "/" + escape(b);
-        });
-    }
+            return std::accumulate(reference_tokens.begin(),
+                                   reference_tokens.end(), std::string{},
+                                   [](const std::string & a, const std::string & b)
+            {
+                return a + "/" + escape(b);
+            });
+        }
 
-    /// @copydoc to_string()
-    operator std::string() const
-    {
-        return to_string();
-    }
-
-    private:
-    /// remove and return last reference pointer
-    std::string pop_back()
-    {
-        if (is_root())
+        /// @copydoc to_string()
+        operator std::string() const
         {
+            return to_string();
+        }
+
+      private:
+        /// remove and return last reference pointer
+        std::string pop_back()
+        {
+            if (is_root())
+            {
                 JSON_THROW(std::domain_error("JSON pointer has no parent"));
+            }
+
+            auto last = reference_tokens.back();
+            reference_tokens.pop_back();
+            return last;
         }
 
-        auto last = reference_tokens.back();
-        reference_tokens.pop_back();
-        return last;
-    }
-
-    /// return whether pointer points to the root document
-    bool is_root() const
-    {
-        return reference_tokens.empty();
-    }
-
-    json_pointer top() const
-    {
-        if (is_root())
+        /// return whether pointer points to the root document
+        bool is_root() const
         {
+            return reference_tokens.empty();
+        }
+
+        json_pointer top() const
+        {
+            if (is_root())
+            {
                 JSON_THROW(std::domain_error("JSON pointer has no parent"));
-        }
-
-        json_pointer result = *this;
-        result.reference_tokens = {reference_tokens[0]};
-        return result;
-    }
-
-    /*!
-    @brief create and return a reference to the pointed to value
-
-    @complexity Linear in the number of reference tokens.
-    */
-    reference get_and_create(reference j) const
-    {
-        pointer result = &j;
-
-        // in case no reference tokens exist, return a reference to the
-        // JSON value j which will be overwritten by a primitive value
-        for (const auto& reference_token : reference_tokens)
-        {
-            switch (result->m_type)
-            {
-                case value_t::null:
-                {
-                    if (reference_token == "0")
-                    {
-                        // start a new array if reference token is 0
-                        result = &result->operator[](0);
-                    }
-                    else
-                    {
-                        // start a new object otherwise
-                        result = &result->operator[](reference_token);
-                    }
-                    break;
-                }
-
-                case value_t::object:
-                {
-                    // create an entry in the object
-                    result = &result->operator[](reference_token);
-                    break;
-                }
-
-                case value_t::array:
-                {
-                    // create an entry in the array
-                    result = &result->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                    break;
-                }
-
-                /*
-                The following code is only reached if there exists a
-                reference token _and_ the current value is primitive. In
-                this case, we have an error situation, because primitive
-                values may only occur as single value; that is, with an
-                empty list of reference tokens.
-                */
-                default:
-                {
-                        JSON_THROW(std::domain_error("invalid value to unflatten"));
-                }
-            }
-        }
-
-        return *result;
-    }
-
-    /*!
-    @brief return a reference to the pointed to value
-
-    @note This version does not throw if a value is not present, but tries
-    to create nested values instead. For instance, calling this function
-    with pointer `"/this/that"` on a null value is equivalent to calling
-    `operator[]("this").operator[]("that")` on that value, effectively
-    changing the null value to an object.
-
-    @param[in] ptr  a JSON value
-
-    @return reference to the JSON value pointed to by the JSON pointer
-
-    @complexity Linear in the length of the JSON pointer.
-
-    @throw std::out_of_range      if the JSON pointer can not be resolved
-    @throw std::domain_error      if an array index begins with '0'
-    @throw std::invalid_argument  if an array index was not a number
-    */
-    reference get_unchecked(pointer ptr) const
-    {
-        for (const auto& reference_token : reference_tokens)
-        {
-            // convert null values to arrays or objects before continuing
-            if (ptr->m_type == value_t::null)
-            {
-                // check if reference token is a number
-                const bool nums = std::all_of(reference_token.begin(),
-                                              reference_token.end(),
-                                              [](const char x)
-                {
-                    return std::isdigit(x);
-                });
-
-                // change value to array for numbers or "-" or to object
-                // otherwise
-                if (nums or reference_token == "-")
-                {
-                    *ptr = value_t::array;
-                }
-                else
-                {
-                    *ptr = value_t::object;
-                }
             }
 
-            switch (ptr->m_type)
-            {
-                case value_t::object:
-                {
-                    // use unchecked object access
-                    ptr = &ptr->operator[](reference_token);
-                    break;
-                }
-
-                case value_t::array:
-                {
-                    // error condition (cf. RFC 6901, Sect. 4)
-                    if (reference_token.size() > 1 and reference_token[0] == '0')
-                    {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                    }
-
-                    if (reference_token == "-")
-                    {
-                        // explicityly treat "-" as index beyond the end
-                        ptr = &ptr->operator[](ptr->m_value.array->size());
-                    }
-                    else
-                    {
-                        // convert array index to number; unchecked access
-                        ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                    }
-                    break;
-                }
-
-                default:
-                {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                }
-            }
-        }
-
-        return *ptr;
-    }
-
-    reference get_checked(pointer ptr) const
-    {
-        for (const auto& reference_token : reference_tokens)
-        {
-            switch (ptr->m_type)
-            {
-                case value_t::object:
-                {
-                    // note: at performs range check
-                    ptr = &ptr->at(reference_token);
-                    break;
-                }
-
-                case value_t::array:
-                {
-                    if (reference_token == "-")
-                    {
-                        // "-" always fails the range check
-                        throw std::out_of_range("array index '-' (" +
-                                                std::to_string(ptr->m_value.array->size()) +
-                                                ") is out of range");
-                    }
-
-                    // error condition (cf. RFC 6901, Sect. 4)
-                    if (reference_token.size() > 1 and reference_token[0] == '0')
-                    {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                    }
-
-                    // note: at performs range check
-                    ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
-                    break;
-                }
-
-                default:
-                {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                }
-            }
-        }
-
-        return *ptr;
-    }
-
-    /*!
-    @brief return a const reference to the pointed to value
-
-    @param[in] ptr  a JSON value
-
-    @return const reference to the JSON value pointed to by the JSON
-            pointer
-    */
-    const_reference get_unchecked(const_pointer ptr) const
-    {
-        for (const auto& reference_token : reference_tokens)
-        {
-            switch (ptr->m_type)
-            {
-                case value_t::object:
-                {
-                    // use unchecked object access
-                    ptr = &ptr->operator[](reference_token);
-                    break;
-                }
-
-                case value_t::array:
-                {
-                    if (reference_token == "-")
-                    {
-                        // "-" cannot be used for const access
-                        throw std::out_of_range("array index '-' (" +
-                                                std::to_string(ptr->m_value.array->size()) +
-                                                ") is out of range");
-                    }
-
-                    // error condition (cf. RFC 6901, Sect. 4)
-                    if (reference_token.size() > 1 and reference_token[0] == '0')
-                    {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                    }
-
-                    // use unchecked array access
-                    ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
-                    break;
-                }
-
-                default:
-                {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                }
-            }
-        }
-
-        return *ptr;
-    }
-
-    const_reference get_checked(const_pointer ptr) const
-    {
-        for (const auto& reference_token : reference_tokens)
-        {
-            switch (ptr->m_type)
-            {
-                case value_t::object:
-                {
-                    // note: at performs range check
-                    ptr = &ptr->at(reference_token);
-                    break;
-                }
-
-                case value_t::array:
-                {
-                    if (reference_token == "-")
-                    {
-                        // "-" always fails the range check
-                        throw std::out_of_range("array index '-' (" +
-                                                std::to_string(ptr->m_value.array->size()) +
-                                                ") is out of range");
-                    }
-
-                    // error condition (cf. RFC 6901, Sect. 4)
-                    if (reference_token.size() > 1 and reference_token[0] == '0')
-                    {
-                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
-                    }
-
-                    // note: at performs range check
-                    ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
-                    break;
-                }
-
-                default:
-                {
-                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
-                }
-            }
-        }
-
-        return *ptr;
-    }
-
-    /// split the string input to reference tokens
-    static std::vector<std::string> split(const std::string& reference_string)
-    {
-        std::vector<std::string> result;
-
-        // special case: empty reference string -> no reference tokens
-        if (reference_string.empty())
-        {
+            json_pointer result = *this;
+            result.reference_tokens = {reference_tokens[0]};
             return result;
         }
 
-        // check if nonempty reference string begins with slash
-        if (reference_string[0] != '/')
+        /*!
+        @brief create and return a reference to the pointed to value
+
+        @complexity Linear in the number of reference tokens.
+        */
+        reference get_and_create(reference j) const
         {
+            pointer result = &j;
+
+            // in case no reference tokens exist, return a reference to the
+            // JSON value j which will be overwritten by a primitive value
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (result->m_type)
+                {
+                    case value_t::null:
+                    {
+                        if (reference_token == "0")
+                        {
+                            // start a new array if reference token is 0
+                            result = &result->operator[](0);
+                        }
+                        else
+                        {
+                            // start a new object otherwise
+                            result = &result->operator[](reference_token);
+                        }
+                        break;
+                    }
+
+                    case value_t::object:
+                    {
+                        // create an entry in the object
+                        result = &result->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        // create an entry in the array
+                        result = &result->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    /*
+                    The following code is only reached if there exists a
+                    reference token _and_ the current value is primitive. In
+                    this case, we have an error situation, because primitive
+                    values may only occur as single value; that is, with an
+                    empty list of reference tokens.
+                    */
+                    default:
+                    {
+                        JSON_THROW(std::domain_error("invalid value to unflatten"));
+                    }
+                }
+            }
+
+            return *result;
+        }
+
+        /*!
+        @brief return a reference to the pointed to value
+
+        @note This version does not throw if a value is not present, but tries
+        to create nested values instead. For instance, calling this function
+        with pointer `"/this/that"` on a null value is equivalent to calling
+        `operator[]("this").operator[]("that")` on that value, effectively
+        changing the null value to an object.
+
+        @param[in] ptr  a JSON value
+
+        @return reference to the JSON value pointed to by the JSON pointer
+
+        @complexity Linear in the length of the JSON pointer.
+
+        @throw std::out_of_range      if the JSON pointer can not be resolved
+        @throw std::domain_error      if an array index begins with '0'
+        @throw std::invalid_argument  if an array index was not a number
+        */
+        reference get_unchecked(pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                // convert null values to arrays or objects before continuing
+                if (ptr->m_type == value_t::null)
+                {
+                    // check if reference token is a number
+                    const bool nums = std::all_of(reference_token.begin(),
+                                                  reference_token.end(),
+                                                  [](const char x)
+                    {
+                        return std::isdigit(x);
+                    });
+
+                    // change value to array for numbers or "-" or to object
+                    // otherwise
+                    if (nums or reference_token == "-")
+                    {
+                        *ptr = value_t::array;
+                    }
+                    else
+                    {
+                        *ptr = value_t::object;
+                    }
+                }
+
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // use unchecked object access
+                        ptr = &ptr->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                        }
+
+                        if (reference_token == "-")
+                        {
+                            // explicityly treat "-" as index beyond the end
+                            ptr = &ptr->operator[](ptr->m_value.array->size());
+                        }
+                        else
+                        {
+                            // convert array index to number; unchecked access
+                            ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        }
+                        break;
+                    }
+
+                    default:
+                    {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        reference get_checked(pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // note: at performs range check
+                        ptr = &ptr->at(reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" always fails the range check
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                        }
+
+                        // note: at performs range check
+                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        /*!
+        @brief return a const reference to the pointed to value
+
+        @param[in] ptr  a JSON value
+
+        @return const reference to the JSON value pointed to by the JSON
+                pointer
+        */
+        const_reference get_unchecked(const_pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // use unchecked object access
+                        ptr = &ptr->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" cannot be used for const access
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                        }
+
+                        // use unchecked array access
+                        ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        const_reference get_checked(const_pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // note: at performs range check
+                        ptr = &ptr->at(reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" always fails the range check
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            JSON_THROW(std::domain_error("array index must not begin with '0'"));
+                        }
+
+                        // note: at performs range check
+                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        JSON_THROW(std::out_of_range("unresolved reference token '" + reference_token + "'"));
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        /// split the string input to reference tokens
+        static std::vector<std::string> split(const std::string& reference_string)
+        {
+            std::vector<std::string> result;
+
+            // special case: empty reference string -> no reference tokens
+            if (reference_string.empty())
+            {
+                return result;
+            }
+
+            // check if nonempty reference string begins with slash
+            if (reference_string[0] != '/')
+            {
                 JSON_THROW(std::domain_error("JSON pointer must be empty or begin with '/'"));
-        }
+            }
 
-        // extract the reference tokens:
-        // - slash: position of the last read slash (or end of string)
-        // - start: position after the previous slash
-        for (
-            // search for the first slash after the first character
+            // extract the reference tokens:
+            // - slash: position of the last read slash (or end of string)
+            // - start: position after the previous slash
+            for (
+                // search for the first slash after the first character
                 size_t slash = reference_string.find_first_of('/', 1),
-            // set the beginning of the first reference token
-            start = 1;
-            // we can stop if start == string::npos+1 = 0
-            start != 0;
-            // set the beginning of the next reference token
-            // (will eventually be 0 if slash == std::string::npos)
-            start = slash + 1,
-            // find next slash
+                // set the beginning of the first reference token
+                start = 1;
+                // we can stop if start == string::npos+1 = 0
+                start != 0;
+                // set the beginning of the next reference token
+                // (will eventually be 0 if slash == std::string::npos)
+                start = slash + 1,
+                // find next slash
                 slash = reference_string.find_first_of('/', start))
-        {
-            // use the text between the beginning of the reference token
-            // (start) and the last slash (slash).
-            auto reference_token = reference_string.substr(start, slash - start);
+            {
+                // use the text between the beginning of the reference token
+                // (start) and the last slash (slash).
+                auto reference_token = reference_string.substr(start, slash - start);
 
-            // check reference tokens are properly escaped
+                // check reference tokens are properly escaped
                 for (size_t pos = reference_token.find_first_of('~');
-                    pos != std::string::npos;
+                        pos != std::string::npos;
                         pos = reference_token.find_first_of('~', pos + 1))
-            {
-                assert(reference_token[pos] == '~');
-
-                // ~ must be followed by 0 or 1
-                if (pos == reference_token.size() - 1 or
-                        (reference_token[pos + 1] != '0' and
-                         reference_token[pos + 1] != '1'))
                 {
+                    assert(reference_token[pos] == '~');
+
+                    // ~ must be followed by 0 or 1
+                    if (pos == reference_token.size() - 1 or
+                            (reference_token[pos + 1] != '0' and
+                             reference_token[pos + 1] != '1'))
+                    {
                         JSON_THROW(std::domain_error("escape error: '~' must be followed with '0' or '1'"));
-                }
-            }
-
-            // finally, store the reference token
-            unescape(reference_token);
-            result.push_back(reference_token);
-        }
-
-        return result;
-    }
-
-    private:
-    /*!
-    @brief replace all occurrences of a substring by another string
-
-    @param[in,out] s  the string to manipulate; changed so that all
-                      occurrences of @a f are replaced with @a t
-    @param[in]     f  the substring to replace with @a t
-    @param[in]     t  the string to replace @a f
-
-    @pre The search string @a f must not be empty.
-
-    @since version 2.0.0
-    */
-    static void replace_substring(std::string& s,
-                                  const std::string& f,
-                                  const std::string& t)
-    {
-        assert(not f.empty());
-
-        for (
-            size_t pos = s.find(f);         // find first occurrence of f
-            pos != std::string::npos;       // make sure f was found
-            s.replace(pos, f.size(), t),    // replace with t
-            pos = s.find(f, pos + t.size()) // find next occurrence of f
-        );
-    }
-
-    /// escape tilde and slash
-    static std::string escape(std::string s)
-    {
-        // escape "~"" to "~0" and "/" to "~1"
-        replace_substring(s, "~", "~0");
-        replace_substring(s, "/", "~1");
-        return s;
-    }
-
-    /// unescape tilde and slash
-    static void unescape(std::string& s)
-    {
-        // first transform any occurrence of the sequence '~1' to '/'
-        replace_substring(s, "~1", "/");
-        // then transform any occurrence of the sequence '~0' to '~'
-        replace_substring(s, "~0", "~");
-    }
-
-    /*!
-    @param[in] reference_string  the reference string to the current value
-    @param[in] value             the value to consider
-    @param[in,out] result        the result object to insert values to
-
-    @note Empty objects or arrays are flattened to `null`.
-    */
-    static void flatten(const std::string& reference_string,
-                        const basic_json& value,
-                        basic_json& result)
-    {
-        switch (value.m_type)
-        {
-            case value_t::array:
-            {
-                if (value.m_value.array->empty())
-                {
-                    // flatten empty array as null
-                    result[reference_string] = nullptr;
-                }
-                else
-                {
-                    // iterate array and use index as reference string
-                    for (size_t i = 0; i < value.m_value.array->size(); ++i)
-                    {
-                        flatten(reference_string + "/" + std::to_string(i),
-                                value.m_value.array->operator[](i), result);
                     }
                 }
-                break;
+
+                // finally, store the reference token
+                unescape(reference_token);
+                result.push_back(reference_token);
             }
 
-            case value_t::object:
+            return result;
+        }
+
+      private:
+        /*!
+        @brief replace all occurrences of a substring by another string
+
+        @param[in,out] s  the string to manipulate; changed so that all
+                          occurrences of @a f are replaced with @a t
+        @param[in]     f  the substring to replace with @a t
+        @param[in]     t  the string to replace @a f
+
+        @pre The search string @a f must not be empty.
+
+        @since version 2.0.0
+        */
+        static void replace_substring(std::string& s,
+                                      const std::string& f,
+                                      const std::string& t)
+        {
+            assert(not f.empty());
+
+            for (
+                size_t pos = s.find(f);         // find first occurrence of f
+                pos != std::string::npos;       // make sure f was found
+                s.replace(pos, f.size(), t),    // replace with t
+                pos = s.find(f, pos + t.size()) // find next occurrence of f
+            );
+        }
+
+        /// escape tilde and slash
+        static std::string escape(std::string s)
+        {
+            // escape "~"" to "~0" and "/" to "~1"
+            replace_substring(s, "~", "~0");
+            replace_substring(s, "/", "~1");
+            return s;
+        }
+
+        /// unescape tilde and slash
+        static void unescape(std::string& s)
+        {
+            // first transform any occurrence of the sequence '~1' to '/'
+            replace_substring(s, "~1", "/");
+            // then transform any occurrence of the sequence '~0' to '~'
+            replace_substring(s, "~0", "~");
+        }
+
+        /*!
+        @param[in] reference_string  the reference string to the current value
+        @param[in] value             the value to consider
+        @param[in,out] result        the result object to insert values to
+
+        @note Empty objects or arrays are flattened to `null`.
+        */
+        static void flatten(const std::string& reference_string,
+                            const basic_json& value,
+                            basic_json& result)
+        {
+            switch (value.m_type)
             {
-                if (value.m_value.object->empty())
+                case value_t::array:
                 {
-                    // flatten empty object as null
-                    result[reference_string] = nullptr;
-                }
-                else
-                {
-                    // iterate object and use keys as reference string
-                    for (const auto& element : *value.m_value.object)
+                    if (value.m_value.array->empty())
                     {
-                        flatten(reference_string + "/" + escape(element.first),
-                                element.second, result);
+                        // flatten empty array as null
+                        result[reference_string] = nullptr;
                     }
+                    else
+                    {
+                        // iterate array and use index as reference string
+                        for (size_t i = 0; i < value.m_value.array->size(); ++i)
+                        {
+                            flatten(reference_string + "/" + std::to_string(i),
+                                    value.m_value.array->operator[](i), result);
+                        }
+                    }
+                    break;
                 }
-                break;
-            }
 
-            default:
-            {
-                // add primitive value with its reference string
-                result[reference_string] = value;
-                break;
+                case value_t::object:
+                {
+                    if (value.m_value.object->empty())
+                    {
+                        // flatten empty object as null
+                        result[reference_string] = nullptr;
+                    }
+                    else
+                    {
+                        // iterate object and use keys as reference string
+                        for (const auto& element : *value.m_value.object)
+                        {
+                            flatten(reference_string + "/" + escape(element.first),
+                                    element.second, result);
+                        }
+                    }
+                    break;
+                }
+
+                default:
+                {
+                    // add primitive value with its reference string
+                    result[reference_string] = value;
+                    break;
+                }
             }
         }
-    }
 
-    /*!
-    @param[in] value  flattened JSON
+        /*!
+        @param[in] value  flattened JSON
 
-    @return unflattened JSON
-    */
-    static basic_json unflatten(const basic_json& value)
-    {
-        if (not value.is_object())
+        @return unflattened JSON
+        */
+        static basic_json unflatten(const basic_json& value)
         {
+            if (not value.is_object())
+            {
                 JSON_THROW(std::domain_error("only objects can be unflattened"));
-        }
-
-        basic_json result;
-
-        // iterate the JSON object values
-        for (const auto& element : *value.m_value.object)
-        {
-            if (not element.second.is_primitive())
-            {
-                    JSON_THROW(std::domain_error("values in object must be primitive"));
             }
 
-            // assign value to reference pointed to by JSON pointer; Note
-            // that if the JSON pointer is "" (i.e., points to the whole
-            // value), function get_and_create returns a reference to
-            // result itself. An assignment will then create a primitive
-            // value.
-            json_pointer(element.first).get_and_create(result) = element.second;
+            basic_json result;
+
+            // iterate the JSON object values
+            for (const auto& element : *value.m_value.object)
+            {
+                if (not element.second.is_primitive())
+                {
+                    JSON_THROW(std::domain_error("values in object must be primitive"));
+                }
+
+                // assign value to reference pointed to by JSON pointer; Note
+                // that if the JSON pointer is "" (i.e., points to the whole
+                // value), function get_and_create returns a reference to
+                // result itself. An assignment will then create a primitive
+                // value.
+                json_pointer(element.first).get_and_create(result) = element.second;
+            }
+
+            return result;
         }
 
-        return result;
-    }
+      private:
+        friend bool operator==(json_pointer const& lhs,
+                               json_pointer const& rhs) noexcept
+        {
+            return lhs.reference_tokens == rhs.reference_tokens;
+        }
 
-    private:
-    friend bool operator==(json_pointer const &lhs,
-                           json_pointer const &rhs) noexcept
-    {
-      return lhs.reference_tokens == rhs.reference_tokens;
-    }
+        friend bool operator!=(json_pointer const& lhs,
+                               json_pointer const& rhs) noexcept
+        {
+            return !(lhs == rhs);
+        }
 
-    friend bool operator!=(json_pointer const &lhs,
-                           json_pointer const &rhs) noexcept
-    {
-      return !(lhs == rhs);
-    }
-
-    /// the reference tokens
-    std::vector<std::string> reference_tokens {};
+        /// the reference tokens
+        std::vector<std::string> reference_tokens {};
     };
 
     //////////////////////////
@@ -11527,25 +11566,26 @@ Returns an ordering that is similar to Python:
 */
 inline bool operator<(const value_t lhs, const value_t rhs) noexcept
 {
-  static constexpr std::array<uint8_t, 8> order = {{
-      0, // null
-      3, // object
-      4, // array
-      5, // string
-      1, // boolean
-      2, // integer
-      2, // unsigned
-      2, // float
-  }};
+    static constexpr std::array<uint8_t, 8> order = {{
+            0, // null
+            3, // object
+            4, // array
+            5, // string
+            1, // boolean
+            2, // integer
+            2, // unsigned
+            2, // float
+        }
+    };
 
-  // discarded values are not comparable
-  if (lhs == value_t::discarded or rhs == value_t::discarded)
-  {
-    return false;
-  }
+    // discarded values are not comparable
+    if (lhs == value_t::discarded or rhs == value_t::discarded)
+    {
+        return false;
+    }
 
-  return order[static_cast<std::size_t>(lhs)] <
-         order[static_cast<std::size_t>(rhs)];
+    return order[static_cast<std::size_t>(lhs)] <
+           order[static_cast<std::size_t>(rhs)];
 }
 
 /////////////
@@ -11570,38 +11610,38 @@ using json = basic_json<>;
 
 // specialization of std::swap, and std::hash
 namespace std
+{
+/*!
+@brief exchanges the values of two JSON objects
+
+@since version 1.0.0
+*/
+template<>
+inline void swap(nlohmann::json& j1,
+                 nlohmann::json& j2) noexcept(
+                     is_nothrow_move_constructible<nlohmann::json>::value and
+                     is_nothrow_move_assignable<nlohmann::json>::value
+                 )
+{
+    j1.swap(j2);
+}
+
+/// hash value for JSON objects
+template<>
+struct hash<nlohmann::json>
 {
     /*!
-    @brief exchanges the values of two JSON objects
+    @brief return a hash value for a JSON object
 
     @since version 1.0.0
     */
-    template<>
-    inline void swap(nlohmann::json& j1,
-                     nlohmann::json& j2) noexcept(
-                         is_nothrow_move_constructible<nlohmann::json>::value and
-                         is_nothrow_move_assignable<nlohmann::json>::value
-                                                   )
-    {
-        j1.swap(j2);
-    }
-
-    /// hash value for JSON objects
-    template<>
-    struct hash<nlohmann::json>
-    {
-        /*!
-        @brief return a hash value for a JSON object
-
-        @since version 1.0.0
-        */
-        std::size_t operator()(const nlohmann::json& j) const
+    std::size_t operator()(const nlohmann::json& j) const
     {
         // a naive hashing via the string representation
         const auto& h = hash<nlohmann::json::string_t>();
         return h(j.dump());
     }
-                        };
+};
 } // namespace std
 
 /*!
diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp
index 73b686d8..3c4d8bef 100644
--- a/test/src/unit-conversions.cpp
+++ b/test/src/unit-conversions.cpp
@@ -177,10 +177,10 @@ TEST_CASE("value conversion")
 
             SECTION("reserve is called on containers that supports it")
             {
-              // making the call to from_json throw in order to check capacity 
-              std::vector<float> v;
-              CHECK_THROWS_AS(nlohmann::from_json(j, v), std::logic_error);
-              CHECK(v.capacity() == j.size());
+                // making the call to from_json throw in order to check capacity
+                std::vector<float> v;
+                CHECK_THROWS_AS(nlohmann::from_json(j, v), std::logic_error);
+                CHECK(v.capacity() == j.size());
             }
         }
 
diff --git a/test/src/unit-noexcept.cpp b/test/src/unit-noexcept.cpp
index de13e057..b939db4e 100644
--- a/test/src/unit-noexcept.cpp
+++ b/test/src/unit-noexcept.cpp
@@ -11,8 +11,8 @@ enum test
 struct pod {};
 struct pod_bis {};
 
-void to_json(json &, pod) noexcept;
-void to_json(json &, pod_bis);
+void to_json(json&, pod) noexcept;
+void to_json(json&, pod_bis);
 void from_json(const json&, pod) noexcept;
 void from_json(const json&, pod_bis);
 static json j;
diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 07055bc1..6a5e0c64 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -63,7 +63,7 @@ TEST_CASE("regression tests")
 
     SECTION("pull request #71 - handle enum type")
     {
-        enum { t = 0 , u = 1};
+        enum { t = 0, u = 1};
         json j = json::array();
         j.push_back(t);
 
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 0590a8e5..35f86440 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -114,22 +114,22 @@ void to_json(Json& j, country c)
 }
 
 template <typename Json>
-void to_json(Json& j, const person & p)
+void to_json(Json& j, const person& p)
 {
     j = Json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}};
 }
 
-void to_json(nlohmann::json& j, const address & a)
+void to_json(nlohmann::json& j, const address& a)
 {
     j = a.m_val;
 }
 
-void to_json(nlohmann::json& j, const contact & c)
+void to_json(nlohmann::json& j, const contact& c)
 {
     j = json{{"person", c.m_person}, {"address", c.m_address}};
 }
 
-void to_json(nlohmann::json& j, const contact_book & cb)
+void to_json(nlohmann::json& j, const contact_book& cb)
 {
     j = json{{"name", cb.m_book_name}, {"contacts", cb.m_contacts}};
 }
@@ -140,28 +140,28 @@ bool operator==(age lhs, age rhs)
     return lhs.m_val == rhs.m_val;
 }
 
-bool operator==(const address & lhs, const address & rhs)
+bool operator==(const address& lhs, const address& rhs)
 {
     return lhs.m_val == rhs.m_val;
 }
 
-bool operator==(const name & lhs, const name & rhs)
+bool operator==(const name& lhs, const name& rhs)
 {
     return lhs.m_val == rhs.m_val;
 }
 
-bool operator==(const person & lhs, const person & rhs)
+bool operator==(const person& lhs, const person& rhs)
 {
     return std::tie(lhs.m_name, lhs.m_age) == std::tie(rhs.m_name, rhs.m_age);
 }
 
-bool operator==(const contact & lhs, const contact & rhs)
+bool operator==(const contact& lhs, const contact& rhs)
 {
     return std::tie(lhs.m_person, lhs.m_address) ==
            std::tie(rhs.m_person, rhs.m_address);
 }
 
-bool operator==(const contact_book & lhs, const contact_book & rhs)
+bool operator==(const contact_book& lhs, const contact_book& rhs)
 {
     return std::tie(lhs.m_book_name, lhs.m_contacts) ==
            std::tie(rhs.m_book_name, rhs.m_contacts);
@@ -172,19 +172,19 @@ bool operator==(const contact_book & lhs, const contact_book & rhs)
 namespace udt
 {
 template <typename Json>
-void from_json(const Json & j, age& a)
+void from_json(const Json& j, age& a)
 {
     a.m_val = j.template get<int>();
 }
 
 template <typename Json>
-void from_json(const Json & j, name& n)
+void from_json(const Json& j, name& n)
 {
     n.m_val = j.template get<std::string>();
 }
 
 template <typename Json>
-void from_json(const Json & j, country& c)
+void from_json(const Json& j, country& c)
 {
     const auto str = j.template get<std::string>();
     static const std::map<std::string, country> m =
@@ -200,25 +200,25 @@ void from_json(const Json & j, country& c)
 }
 
 template <typename Json>
-void from_json(const Json & j, person& p)
+void from_json(const Json& j, person& p)
 {
     p.m_age = j["age"].template get<age>();
     p.m_name = j["name"].template get<name>();
     p.m_country = j["country"].template get<country>();
 }
 
-void from_json(const nlohmann::json & j, address& a)
+void from_json(const nlohmann::json& j, address& a)
 {
     a.m_val = j.get<std::string>();
 }
 
-void from_json(const nlohmann::json & j, contact& c)
+void from_json(const nlohmann::json& j, contact& c)
 {
     c.m_person = j["person"].get<person>();
     c.m_address = j["address"].get<address>();
 }
 
-void from_json(const nlohmann::json & j, contact_book& cb)
+void from_json(const nlohmann::json& j, contact_book& cb)
 {
     cb.m_book_name = j["name"].get<name>();
     cb.m_contacts = j["contacts"].get<std::vector<contact>>();
@@ -297,7 +297,7 @@ namespace nlohmann
 template <typename T>
 struct adl_serializer<std::shared_ptr<T>>
 {
-    static void to_json(json& j, const std::shared_ptr<T> & opt)
+    static void to_json(json& j, const std::shared_ptr<T>& opt)
     {
         if (opt)
         {
@@ -309,7 +309,7 @@ struct adl_serializer<std::shared_ptr<T>>
         }
     }
 
-    static void from_json(const json & j, std::shared_ptr<T>& opt)
+    static void from_json(const json& j, std::shared_ptr<T>& opt)
     {
         if (j.is_null())
         {
@@ -325,12 +325,12 @@ struct adl_serializer<std::shared_ptr<T>>
 template <>
 struct adl_serializer<udt::legacy_type>
 {
-    static void to_json(json& j, const udt::legacy_type & l)
+    static void to_json(json& j, const udt::legacy_type& l)
     {
         j = std::stoi(l.number);
     }
 
-    static void from_json(const json & j, udt::legacy_type& l)
+    static void from_json(const json& j, udt::legacy_type& l)
     {
         l.number = std::to_string(j.get<int>());
     }
@@ -394,21 +394,21 @@ namespace nlohmann
 template <>
 struct adl_serializer<std::vector<float>>
 {
-  using type = std::vector<float>;
-    static void to_json(json& j, const type &)
+    using type = std::vector<float>;
+    static void to_json(json& j, const type&)
     {
-      j = "hijacked!";
+        j = "hijacked!";
     }
 
-    static void from_json(const json &, type& opt)
+    static void from_json(const json&, type& opt)
     {
-      opt = {42.0, 42.0, 42.0};
+        opt = {42.0, 42.0, 42.0};
     }
 
     // preferred version
-    static type from_json(const json &)
+    static type from_json(const json&)
     {
-      return {4.0, 5.0, 6.0};
+        return {4.0, 5.0, 6.0};
     }
 };
 }
@@ -419,7 +419,7 @@ TEST_CASE("even supported types can be specialized", "[udt]")
     CHECK(j.dump() == R"("hijacked!")");
     auto f = j.get<std::vector<float>>();
     // the single argument from_json method is preferred
-    CHECK((f == std::vector<float>{4.0, 5.0, 6.0}));
+    CHECK((f == std::vector<float> {4.0, 5.0, 6.0}));
 }
 
 namespace nlohmann
@@ -427,7 +427,7 @@ namespace nlohmann
 template <typename T>
 struct adl_serializer<std::unique_ptr<T>>
 {
-    static void to_json(json& j, const std::unique_ptr<T> & opt)
+    static void to_json(json& j, const std::unique_ptr<T>& opt)
     {
         if (opt)
         {
@@ -440,7 +440,7 @@ struct adl_serializer<std::unique_ptr<T>>
     }
 
     // this is the overload needed for non-copyable types,
-    static std::unique_ptr<T> from_json(const json & j)
+    static std::unique_ptr<T> from_json(const json& j)
     {
         if (j.is_null())
         {
@@ -491,64 +491,64 @@ TEST_CASE("Non-copyable types", "[udt]")
 template <typename T, typename = void>
 struct pod_serializer
 {
-  // use adl for non-pods, or scalar types
-  template <
-      typename Json, typename U = T,
-      typename std::enable_if<
-          not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0>
-  static void from_json(const Json &j, U &t)
-  {
-    using nlohmann::from_json;
-    from_json(j, t);
-  }
+    // use adl for non-pods, or scalar types
+    template <
+        typename Json, typename U = T,
+        typename std::enable_if <
+            not(std::is_pod<U>::value and std::is_class<U>::value), int >::type = 0 >
+    static void from_json(const Json& j, U& t)
+    {
+        using nlohmann::from_json;
+        from_json(j, t);
+    }
 
-  // special behaviour for pods
-  template <typename Json, typename U = T,
-            typename std::enable_if<
-                std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0>
-  static void from_json(const  Json &j, U &t)
-  {
-    std::uint64_t value;
-    // TODO The following block is no longer relevant in this serializer, make another one that shows the issue
-    // the problem arises only when one from_json method is defined without any constraint
-    //
-    // Why cannot we simply use: j.get<std::uint64_t>() ?
-    // Well, with the current experiment, the get method looks for a from_json
-    // function, which we are currently defining!
-    // This would end up in a stack overflow. Calling nlohmann::from_json is a
-    // workaround (is it?).
-    // I shall find a good way to avoid this once all constructors are converted
-    // to free methods
-    //
-    // In short, constructing a json by constructor calls to_json
-    // calling get calls from_json, for now, we cannot do this in custom
-    // serializers
-    nlohmann::from_json(j, value);
-    auto bytes = static_cast<char *>(static_cast<void *>(&value));
-    std::memcpy(&t, bytes, sizeof(value));
-  }
+    // special behaviour for pods
+    template <typename Json, typename U = T,
+              typename std::enable_if<
+                  std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0>
+    static void from_json(const  Json& j, U& t)
+    {
+        std::uint64_t value;
+        // TODO The following block is no longer relevant in this serializer, make another one that shows the issue
+        // the problem arises only when one from_json method is defined without any constraint
+        //
+        // Why cannot we simply use: j.get<std::uint64_t>() ?
+        // Well, with the current experiment, the get method looks for a from_json
+        // function, which we are currently defining!
+        // This would end up in a stack overflow. Calling nlohmann::from_json is a
+        // workaround (is it?).
+        // I shall find a good way to avoid this once all constructors are converted
+        // to free methods
+        //
+        // In short, constructing a json by constructor calls to_json
+        // calling get calls from_json, for now, we cannot do this in custom
+        // serializers
+        nlohmann::from_json(j, value);
+        auto bytes = static_cast<char*>(static_cast<void*>(&value));
+        std::memcpy(&t, bytes, sizeof(value));
+    }
 
-  template <
-      typename Json, typename U = T,
-      typename std::enable_if<
-          not(std::is_pod<U>::value and std::is_class<U>::value), int>::type = 0>
-  static void to_json(Json &j, const  T &t)
-  {
-    using nlohmann::to_json;
-    to_json(j, t);
-  }
+    template <
+        typename Json, typename U = T,
+        typename std::enable_if <
+            not(std::is_pod<U>::value and std::is_class<U>::value), int >::type = 0 >
+    static void to_json(Json& j, const  T& t)
+    {
+        using nlohmann::to_json;
+        to_json(j, t);
+    }
 
-  template <typename Json, typename U = T,
-            typename std::enable_if<
-                std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0>
-  static void to_json(Json &j, const  T &t) noexcept
-  {
-    auto bytes = static_cast< const unsigned char*>(static_cast<const void *>(&t));
-    std::uint64_t value = bytes[0];
-    for (auto i = 1; i < 8; ++i)
-      value |= std::uint64_t{bytes[i]} << 8 * i;
-    nlohmann::to_json(j, value);
-  }
+    template <typename Json, typename U = T,
+              typename std::enable_if<
+                  std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0>
+    static void to_json(Json& j, const  T& t) noexcept
+    {
+        auto bytes = static_cast< const unsigned char*>(static_cast<const void*>(&t));
+        std::uint64_t value = bytes[0];
+        for (auto i = 1; i < 8; ++i)
+            value |= std::uint64_t{bytes[i]} << 8 * i;
+        nlohmann::to_json(j, value);
+    }
 };
 
 namespace udt
@@ -562,19 +562,19 @@ struct small_pod
 
 struct non_pod
 {
-  std::string s;
+    std::string s;
 };
 
 template <typename Json>
-void to_json(Json& j, const non_pod & np)
+void to_json(Json& j, const non_pod& np)
 {
-  j = np.s;
+    j = np.s;
 }
 
 template <typename Json>
-void from_json(const Json & j, non_pod& np)
+void from_json(const Json& j, non_pod& np)
 {
-  np.s = j.template get<std::string>();
+    np.s = j.template get<std::string>();
 }
 
 bool operator==(small_pod lhs, small_pod rhs) noexcept
@@ -583,35 +583,35 @@ bool operator==(small_pod lhs, small_pod rhs) noexcept
            std::tie(rhs.begin, rhs.middle, rhs.end);
 }
 
-bool operator==(const  non_pod &lhs, const  non_pod &rhs) noexcept
+bool operator==(const  non_pod& lhs, const  non_pod& rhs) noexcept
 {
-  return lhs.s == rhs.s;
+    return lhs.s == rhs.s;
 }
 
 std::ostream& operator<<(std::ostream& os, small_pod l)
 {
-  return os << "begin: " << l.begin << ", middle: " << l.middle << ", end: " << l.end;
+    return os << "begin: " << l.begin << ", middle: " << l.middle << ", end: " << l.end;
 }
 }
 
 TEST_CASE("custom serializer for pods", "[udt]")
 {
-  using custom_json =
-      nlohmann::basic_json<std::map, std::vector, std::string, bool,
-                           std::int64_t, std::uint64_t, double, std::allocator,
-                           pod_serializer>;
+    using custom_json =
+        nlohmann::basic_json<std::map, std::vector, std::string, bool,
+        std::int64_t, std::uint64_t, double, std::allocator,
+        pod_serializer>;
 
-  auto p = udt::small_pod{42, '/', 42};
-  custom_json j = p;
+    auto p = udt::small_pod{42, '/', 42};
+    custom_json j = p;
 
-  auto p2 = j.get<udt::small_pod>();
+    auto p2 = j.get<udt::small_pod>();
 
-  CHECK(p == p2);
+    CHECK(p == p2);
 
-  auto np = udt::non_pod{{"non-pod"}};
-  custom_json j2 = np;
-  auto np2 = j2.get<udt::non_pod>();
-  CHECK(np == np2);
+    auto np = udt::non_pod{{"non-pod"}};
+    custom_json j2 = np;
+    auto np2 = j2.get<udt::non_pod>();
+    CHECK(np == np2);
 }
 
 template <typename T, typename>
@@ -622,13 +622,13 @@ using custom_json = nlohmann::basic_json<std::map, std::vector, std::string, boo
 template <typename T, typename>
 struct another_adl_serializer
 {
-    static void from_json(const custom_json & j , T& t)
+    static void from_json(const custom_json& j, T& t)
     {
         using nlohmann::from_json;
         from_json(j, t);
     }
 
-    static void to_json(custom_json& j , const T & t)
+    static void to_json(custom_json& j, const T& t)
     {
         using nlohmann::to_json;
         to_json(j, t);

From 447c6a670f1d058ee37865107d2fccda1d207588 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Tue, 17 Jan 2017 10:39:14 +0100
Subject: [PATCH 113/174] run make re2c

---
 src/json.hpp | 1338 ++++++++++++++++----------------------------------
 1 file changed, 430 insertions(+), 908 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index fc7b60f2..62779059 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9462,915 +9462,437 @@ class basic_json
                 m_start = m_cursor;
                 assert(m_start != nullptr);
 
-
-                {
-                    lexer_char_t yych;
-                    unsigned int yyaccept = 0;
-                    static const unsigned char yybm[] =
-                    {
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,  32,  32,   0,   0,  32,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        160, 128,   0, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        192, 192, 192, 192, 192, 192, 192, 192,
-                        192, 192, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128,   0, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                    };
-                    if ((m_limit - m_cursor) < 5)
-                    {
-                        fill_line_buffer(5);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yybm[0 + yych] & 32)
-                    {
-                        goto basic_json_parser_6;
-                    }
-                    if (yych <= '[')
-                    {
-                        if (yych <= '-')
-                        {
-                            if (yych <= '"')
-                            {
-                                if (yych <= 0x00)
-                                {
-                                    goto basic_json_parser_2;
-                                }
-                                if (yych <= '!')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                goto basic_json_parser_9;
-                            }
-                            else
-                            {
-                                if (yych <= '+')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                if (yych <= ',')
-                                {
-                                    goto basic_json_parser_10;
-                                }
-                                goto basic_json_parser_12;
-                            }
-                        }
-                        else
-                        {
-                            if (yych <= '9')
-                            {
-                                if (yych <= '/')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                if (yych <= '0')
-                                {
-                                    goto basic_json_parser_13;
-                                }
-                                goto basic_json_parser_15;
-                            }
-                            else
-                            {
-                                if (yych <= ':')
-                                {
-                                    goto basic_json_parser_17;
-                                }
-                                if (yych <= 'Z')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                goto basic_json_parser_19;
-                            }
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= 'n')
-                        {
-                            if (yych <= 'e')
-                            {
-                                if (yych == ']')
-                                {
-                                    goto basic_json_parser_21;
-                                }
-                                goto basic_json_parser_4;
-                            }
-                            else
-                            {
-                                if (yych <= 'f')
-                                {
-                                    goto basic_json_parser_23;
-                                }
-                                if (yych <= 'm')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                goto basic_json_parser_24;
-                            }
-                        }
-                        else
-                        {
-                            if (yych <= 'z')
-                            {
-                                if (yych == 't')
-                                {
-                                    goto basic_json_parser_25;
-                                }
-                                goto basic_json_parser_4;
-                            }
-                            else
-                            {
-                                if (yych <= '{')
-                                {
-                                    goto basic_json_parser_26;
-                                }
-                                if (yych == '}')
-                                {
-                                    goto basic_json_parser_28;
-                                }
-                                goto basic_json_parser_4;
-                            }
-                        }
-                    }
-basic_json_parser_2:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::end_of_input;
-                        break;
-                    }
-basic_json_parser_4:
-                    ++m_cursor;
-basic_json_parser_5:
-                    {
-                        last_token_type = token_type::parse_error;
-                        break;
-                    }
-basic_json_parser_6:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yybm[0 + yych] & 32)
-                    {
-                        goto basic_json_parser_6;
-                    }
-                    {
-                        continue;
-                    }
-basic_json_parser_9:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych <= 0x1F)
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_31;
-                    }
-                    if (yych <= 0xC1)
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    if (yych <= 0xF4)
-                    {
-                        goto basic_json_parser_31;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_10:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::value_separator;
-                        break;
-                    }
-basic_json_parser_12:
-                    yych = *++m_cursor;
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    if (yych <= '0')
-                    {
-                        goto basic_json_parser_13;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_15;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_13:
-                    yyaccept = 1;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych <= 'D')
-                    {
-                        if (yych == '.')
-                        {
-                            goto basic_json_parser_43;
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= 'E')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        if (yych == 'e')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                    }
-basic_json_parser_14:
-                    {
-                        last_token_type = token_type::value_number;
-                        break;
-                    }
-basic_json_parser_15:
-                    yyaccept = 1;
-                    m_marker = ++m_cursor;
-                    if ((m_limit - m_cursor) < 3)
-                    {
-                        fill_line_buffer(3);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yybm[0 + yych] & 64)
-                    {
-                        goto basic_json_parser_15;
-                    }
-                    if (yych <= 'D')
-                    {
-                        if (yych == '.')
-                        {
-                            goto basic_json_parser_43;
-                        }
-                        goto basic_json_parser_14;
-                    }
-                    else
-                    {
-                        if (yych <= 'E')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        if (yych == 'e')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        goto basic_json_parser_14;
-                    }
-basic_json_parser_17:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::name_separator;
-                        break;
-                    }
-basic_json_parser_19:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::begin_array;
-                        break;
-                    }
-basic_json_parser_21:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::end_array;
-                        break;
-                    }
-basic_json_parser_23:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych == 'a')
-                    {
-                        goto basic_json_parser_45;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_24:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych == 'u')
-                    {
-                        goto basic_json_parser_46;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_25:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych == 'r')
-                    {
-                        goto basic_json_parser_47;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_26:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::begin_object;
-                        break;
-                    }
-basic_json_parser_28:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::end_object;
-                        break;
-                    }
-basic_json_parser_30:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-basic_json_parser_31:
-                    if (yybm[0 + yych] & 128)
-                    {
-                        goto basic_json_parser_30;
-                    }
-                    if (yych <= 0xE0)
-                    {
-                        if (yych <= '\\')
-                        {
-                            if (yych <= 0x1F)
-                            {
-                                goto basic_json_parser_32;
-                            }
-                            if (yych <= '"')
-                            {
-                                goto basic_json_parser_33;
-                            }
-                            goto basic_json_parser_35;
-                        }
-                        else
-                        {
-                            if (yych <= 0xC1)
-                            {
-                                goto basic_json_parser_32;
-                            }
-                            if (yych <= 0xDF)
-                            {
-                                goto basic_json_parser_36;
-                            }
-                            goto basic_json_parser_37;
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= 0xEF)
-                        {
-                            if (yych == 0xED)
-                            {
-                                goto basic_json_parser_39;
-                            }
-                            goto basic_json_parser_38;
-                        }
-                        else
-                        {
-                            if (yych <= 0xF0)
-                            {
-                                goto basic_json_parser_40;
-                            }
-                            if (yych <= 0xF3)
-                            {
-                                goto basic_json_parser_41;
-                            }
-                            if (yych <= 0xF4)
-                            {
-                                goto basic_json_parser_42;
-                            }
-                        }
-                    }
-basic_json_parser_32:
-                    m_cursor = m_marker;
-                    if (yyaccept == 0)
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    else
-                    {
-                        goto basic_json_parser_14;
-                    }
-basic_json_parser_33:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::value_string;
-                        break;
-                    }
-basic_json_parser_35:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 'e')
-                    {
-                        if (yych <= '/')
-                        {
-                            if (yych == '"')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            if (yych <= '.')
-                            {
-                                goto basic_json_parser_32;
-                            }
-                            goto basic_json_parser_30;
-                        }
-                        else
-                        {
-                            if (yych <= '\\')
-                            {
-                                if (yych <= '[')
-                                {
-                                    goto basic_json_parser_32;
-                                }
-                                goto basic_json_parser_30;
-                            }
-                            else
-                            {
-                                if (yych == 'b')
-                                {
-                                    goto basic_json_parser_30;
-                                }
-                                goto basic_json_parser_32;
-                            }
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= 'q')
-                        {
-                            if (yych <= 'f')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            if (yych == 'n')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            goto basic_json_parser_32;
-                        }
-                        else
-                        {
-                            if (yych <= 's')
-                            {
-                                if (yych <= 'r')
-                                {
-                                    goto basic_json_parser_30;
-                                }
-                                goto basic_json_parser_32;
-                            }
-                            else
-                            {
-                                if (yych <= 't')
-                                {
-                                    goto basic_json_parser_30;
-                                }
-                                if (yych <= 'u')
-                                {
-                                    goto basic_json_parser_48;
-                                }
-                                goto basic_json_parser_32;
-                            }
-                        }
-                    }
-basic_json_parser_36:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_30;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_37:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x9F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_36;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_38:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_36;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_39:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0x9F)
-                    {
-                        goto basic_json_parser_36;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_40:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x8F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_38;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_41:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_38;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_42:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0x8F)
-                    {
-                        goto basic_json_parser_38;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_43:
-                    yych = *++m_cursor;
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_49;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_44:
-                    yych = *++m_cursor;
-                    if (yych <= ',')
-                    {
-                        if (yych == '+')
-                        {
-                            goto basic_json_parser_51;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= '-')
-                        {
-                            goto basic_json_parser_51;
-                        }
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_52;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_45:
-                    yych = *++m_cursor;
-                    if (yych == 'l')
-                    {
-                        goto basic_json_parser_54;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_46:
-                    yych = *++m_cursor;
-                    if (yych == 'l')
-                    {
-                        goto basic_json_parser_55;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_47:
-                    yych = *++m_cursor;
-                    if (yych == 'u')
-                    {
-                        goto basic_json_parser_56;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_48:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_57;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_57;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_57;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_49:
-                    yyaccept = 1;
-                    m_marker = ++m_cursor;
-                    if ((m_limit - m_cursor) < 3)
-                    {
-                        fill_line_buffer(3);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 'D')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_14;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_49;
-                        }
-                        goto basic_json_parser_14;
-                    }
-                    else
-                    {
-                        if (yych <= 'E')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        if (yych == 'e')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        goto basic_json_parser_14;
-                    }
-basic_json_parser_51:
-                    yych = *++m_cursor;
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych >= ':')
-                    {
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_52:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_14;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_52;
-                    }
-                    goto basic_json_parser_14;
-basic_json_parser_54:
-                    yych = *++m_cursor;
-                    if (yych == 's')
-                    {
-                        goto basic_json_parser_58;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_55:
-                    yych = *++m_cursor;
-                    if (yych == 'l')
-                    {
-                        goto basic_json_parser_59;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_56:
-                    yych = *++m_cursor;
-                    if (yych == 'e')
-                    {
-                        goto basic_json_parser_61;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_57:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_63;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_63;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_63;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_58:
-                    yych = *++m_cursor;
-                    if (yych == 'e')
-                    {
-                        goto basic_json_parser_64;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_59:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::literal_null;
-                        break;
-                    }
-basic_json_parser_61:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::literal_true;
-                        break;
-                    }
-basic_json_parser_63:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_66;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_66;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_66;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_64:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::literal_false;
-                        break;
-                    }
-basic_json_parser_66:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        goto basic_json_parser_32;
-                    }
+                
+    {
+        lexer_char_t yych;
+        unsigned int yyaccept = 0;
+        static const unsigned char yybm[] = {
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,  32,  32,   0,   0,  32,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+            160, 128,   0, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            192, 192, 192, 192, 192, 192, 192, 192, 
+            192, 192, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128,   0, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+        };
+        if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yybm[0+yych] & 32) {
+            goto basic_json_parser_6;
+        }
+        if (yych <= '[') {
+            if (yych <= '-') {
+                if (yych <= '"') {
+                    if (yych <= 0x00) goto basic_json_parser_2;
+                    if (yych <= '!') goto basic_json_parser_4;
+                    goto basic_json_parser_9;
+                } else {
+                    if (yych <= '+') goto basic_json_parser_4;
+                    if (yych <= ',') goto basic_json_parser_10;
+                    goto basic_json_parser_12;
                 }
+            } else {
+                if (yych <= '9') {
+                    if (yych <= '/') goto basic_json_parser_4;
+                    if (yych <= '0') goto basic_json_parser_13;
+                    goto basic_json_parser_15;
+                } else {
+                    if (yych <= ':') goto basic_json_parser_17;
+                    if (yych <= 'Z') goto basic_json_parser_4;
+                    goto basic_json_parser_19;
+                }
+            }
+        } else {
+            if (yych <= 'n') {
+                if (yych <= 'e') {
+                    if (yych == ']') goto basic_json_parser_21;
+                    goto basic_json_parser_4;
+                } else {
+                    if (yych <= 'f') goto basic_json_parser_23;
+                    if (yych <= 'm') goto basic_json_parser_4;
+                    goto basic_json_parser_24;
+                }
+            } else {
+                if (yych <= 'z') {
+                    if (yych == 't') goto basic_json_parser_25;
+                    goto basic_json_parser_4;
+                } else {
+                    if (yych <= '{') goto basic_json_parser_26;
+                    if (yych == '}') goto basic_json_parser_28;
+                    goto basic_json_parser_4;
+                }
+            }
+        }
+basic_json_parser_2:
+        ++m_cursor;
+        { last_token_type = token_type::end_of_input; break; }
+basic_json_parser_4:
+        ++m_cursor;
+basic_json_parser_5:
+        { last_token_type = token_type::parse_error; break; }
+basic_json_parser_6:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yybm[0+yych] & 32) {
+            goto basic_json_parser_6;
+        }
+        { continue; }
+basic_json_parser_9:
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych <= 0x1F) goto basic_json_parser_5;
+        if (yych <= 0x7F) goto basic_json_parser_31;
+        if (yych <= 0xC1) goto basic_json_parser_5;
+        if (yych <= 0xF4) goto basic_json_parser_31;
+        goto basic_json_parser_5;
+basic_json_parser_10:
+        ++m_cursor;
+        { last_token_type = token_type::value_separator; break; }
+basic_json_parser_12:
+        yych = *++m_cursor;
+        if (yych <= '/') goto basic_json_parser_5;
+        if (yych <= '0') goto basic_json_parser_13;
+        if (yych <= '9') goto basic_json_parser_15;
+        goto basic_json_parser_5;
+basic_json_parser_13:
+        yyaccept = 1;
+        yych = *(m_marker = ++m_cursor);
+        if (yych <= 'D') {
+            if (yych == '.') goto basic_json_parser_43;
+        } else {
+            if (yych <= 'E') goto basic_json_parser_44;
+            if (yych == 'e') goto basic_json_parser_44;
+        }
+basic_json_parser_14:
+        { last_token_type = token_type::value_number; break; }
+basic_json_parser_15:
+        yyaccept = 1;
+        m_marker = ++m_cursor;
+        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yybm[0+yych] & 64) {
+            goto basic_json_parser_15;
+        }
+        if (yych <= 'D') {
+            if (yych == '.') goto basic_json_parser_43;
+            goto basic_json_parser_14;
+        } else {
+            if (yych <= 'E') goto basic_json_parser_44;
+            if (yych == 'e') goto basic_json_parser_44;
+            goto basic_json_parser_14;
+        }
+basic_json_parser_17:
+        ++m_cursor;
+        { last_token_type = token_type::name_separator; break; }
+basic_json_parser_19:
+        ++m_cursor;
+        { last_token_type = token_type::begin_array; break; }
+basic_json_parser_21:
+        ++m_cursor;
+        { last_token_type = token_type::end_array; break; }
+basic_json_parser_23:
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych == 'a') goto basic_json_parser_45;
+        goto basic_json_parser_5;
+basic_json_parser_24:
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych == 'u') goto basic_json_parser_46;
+        goto basic_json_parser_5;
+basic_json_parser_25:
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych == 'r') goto basic_json_parser_47;
+        goto basic_json_parser_5;
+basic_json_parser_26:
+        ++m_cursor;
+        { last_token_type = token_type::begin_object; break; }
+basic_json_parser_28:
+        ++m_cursor;
+        { last_token_type = token_type::end_object; break; }
+basic_json_parser_30:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+basic_json_parser_31:
+        if (yybm[0+yych] & 128) {
+            goto basic_json_parser_30;
+        }
+        if (yych <= 0xE0) {
+            if (yych <= '\\') {
+                if (yych <= 0x1F) goto basic_json_parser_32;
+                if (yych <= '"') goto basic_json_parser_33;
+                goto basic_json_parser_35;
+            } else {
+                if (yych <= 0xC1) goto basic_json_parser_32;
+                if (yych <= 0xDF) goto basic_json_parser_36;
+                goto basic_json_parser_37;
+            }
+        } else {
+            if (yych <= 0xEF) {
+                if (yych == 0xED) goto basic_json_parser_39;
+                goto basic_json_parser_38;
+            } else {
+                if (yych <= 0xF0) goto basic_json_parser_40;
+                if (yych <= 0xF3) goto basic_json_parser_41;
+                if (yych <= 0xF4) goto basic_json_parser_42;
+            }
+        }
+basic_json_parser_32:
+        m_cursor = m_marker;
+        if (yyaccept == 0) {
+            goto basic_json_parser_5;
+        } else {
+            goto basic_json_parser_14;
+        }
+basic_json_parser_33:
+        ++m_cursor;
+        { last_token_type = token_type::value_string; break; }
+basic_json_parser_35:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 'e') {
+            if (yych <= '/') {
+                if (yych == '"') goto basic_json_parser_30;
+                if (yych <= '.') goto basic_json_parser_32;
+                goto basic_json_parser_30;
+            } else {
+                if (yych <= '\\') {
+                    if (yych <= '[') goto basic_json_parser_32;
+                    goto basic_json_parser_30;
+                } else {
+                    if (yych == 'b') goto basic_json_parser_30;
+                    goto basic_json_parser_32;
+                }
+            }
+        } else {
+            if (yych <= 'q') {
+                if (yych <= 'f') goto basic_json_parser_30;
+                if (yych == 'n') goto basic_json_parser_30;
+                goto basic_json_parser_32;
+            } else {
+                if (yych <= 's') {
+                    if (yych <= 'r') goto basic_json_parser_30;
+                    goto basic_json_parser_32;
+                } else {
+                    if (yych <= 't') goto basic_json_parser_30;
+                    if (yych <= 'u') goto basic_json_parser_48;
+                    goto basic_json_parser_32;
+                }
+            }
+        }
+basic_json_parser_36:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_30;
+        goto basic_json_parser_32;
+basic_json_parser_37:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x9F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_36;
+        goto basic_json_parser_32;
+basic_json_parser_38:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_36;
+        goto basic_json_parser_32;
+basic_json_parser_39:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0x9F) goto basic_json_parser_36;
+        goto basic_json_parser_32;
+basic_json_parser_40:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x8F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_38;
+        goto basic_json_parser_32;
+basic_json_parser_41:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_38;
+        goto basic_json_parser_32;
+basic_json_parser_42:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0x8F) goto basic_json_parser_38;
+        goto basic_json_parser_32;
+basic_json_parser_43:
+        yych = *++m_cursor;
+        if (yych <= '/') goto basic_json_parser_32;
+        if (yych <= '9') goto basic_json_parser_49;
+        goto basic_json_parser_32;
+basic_json_parser_44:
+        yych = *++m_cursor;
+        if (yych <= ',') {
+            if (yych == '+') goto basic_json_parser_51;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= '-') goto basic_json_parser_51;
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_52;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_45:
+        yych = *++m_cursor;
+        if (yych == 'l') goto basic_json_parser_54;
+        goto basic_json_parser_32;
+basic_json_parser_46:
+        yych = *++m_cursor;
+        if (yych == 'l') goto basic_json_parser_55;
+        goto basic_json_parser_32;
+basic_json_parser_47:
+        yych = *++m_cursor;
+        if (yych == 'u') goto basic_json_parser_56;
+        goto basic_json_parser_32;
+basic_json_parser_48:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_57;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_57;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_57;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_49:
+        yyaccept = 1;
+        m_marker = ++m_cursor;
+        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 'D') {
+            if (yych <= '/') goto basic_json_parser_14;
+            if (yych <= '9') goto basic_json_parser_49;
+            goto basic_json_parser_14;
+        } else {
+            if (yych <= 'E') goto basic_json_parser_44;
+            if (yych == 'e') goto basic_json_parser_44;
+            goto basic_json_parser_14;
+        }
+basic_json_parser_51:
+        yych = *++m_cursor;
+        if (yych <= '/') goto basic_json_parser_32;
+        if (yych >= ':') goto basic_json_parser_32;
+basic_json_parser_52:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '/') goto basic_json_parser_14;
+        if (yych <= '9') goto basic_json_parser_52;
+        goto basic_json_parser_14;
+basic_json_parser_54:
+        yych = *++m_cursor;
+        if (yych == 's') goto basic_json_parser_58;
+        goto basic_json_parser_32;
+basic_json_parser_55:
+        yych = *++m_cursor;
+        if (yych == 'l') goto basic_json_parser_59;
+        goto basic_json_parser_32;
+basic_json_parser_56:
+        yych = *++m_cursor;
+        if (yych == 'e') goto basic_json_parser_61;
+        goto basic_json_parser_32;
+basic_json_parser_57:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_63;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_63;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_63;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_58:
+        yych = *++m_cursor;
+        if (yych == 'e') goto basic_json_parser_64;
+        goto basic_json_parser_32;
+basic_json_parser_59:
+        ++m_cursor;
+        { last_token_type = token_type::literal_null; break; }
+basic_json_parser_61:
+        ++m_cursor;
+        { last_token_type = token_type::literal_true; break; }
+basic_json_parser_63:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_66;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_66;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_66;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_64:
+        ++m_cursor;
+        { last_token_type = token_type::literal_false; break; }
+basic_json_parser_66:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_30;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_30;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_30;
+            goto basic_json_parser_32;
+        }
+    }
 
             }
 

From 1e20887cff2a57dc562f1a19b76c716d19d98da4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Fri, 20 Jan 2017 23:07:06 +0100
Subject: [PATCH 114/174] use JSON_THROW

---
 src/json.hpp      | 20 ++++++++++----------
 src/json.hpp.re2c | 20 ++++++++++----------
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 62779059..630624a6 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -513,7 +513,7 @@ void get_arithmetic_value(const  Json& j, ArithmeticType& val)
     }
     else
     {
-        throw std::domain_error("type must be number, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be number, but is " + type_name(j)));
     }
 }
 
@@ -592,7 +592,7 @@ void from_json(const Json& j, typename Json::boolean_t& b)
 {
     if (!j.is_boolean())
     {
-        throw std::domain_error("type must be boolean, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j)));
     }
     b = *j.template get_ptr<const typename Json::boolean_t*>();
 }
@@ -602,7 +602,7 @@ void from_json(const Json& j, typename Json::string_t& s)
 {
     if (!j.is_string())
     {
-        throw std::domain_error("type must be string, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be string, but is " + type_name(j)));
     }
     s = *j.template get_ptr<const typename Json::string_t*>();
 }
@@ -639,7 +639,7 @@ void from_json(const  Json& j, typename Json::array_t& arr)
 {
     if (!j.is_array())
     {
-        throw std::domain_error("type must be array, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
     arr = *j.template get_ptr<const typename Json::array_t*>();
 }
@@ -652,13 +652,13 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l)
     // (except when it's null.. ?)
     if (j.is_null())
     {
-        throw std::domain_error("type must be array, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
     if (not std::is_same<T, Json>::value)
     {
         if (!j.is_array())
         {
-            throw std::domain_error("type must be array, but is " + type_name(j));
+            JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
         }
     }
     for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
@@ -711,14 +711,14 @@ void from_json(const  Json& j, CompatibleArrayType& arr)
 {
     if (j.is_null())
     {
-        throw std::domain_error("type must be array, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
     // when T == Json, do not check if value_t is correct
     if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
     {
         if (!j.is_array())
         {
-            throw std::domain_error("type must be array, but is " + type_name(j));
+            JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
         }
     }
     from_json_array_impl(j, arr, priority_tag<1> {});
@@ -733,7 +733,7 @@ void from_json(const  Json& j, CompatibleObjectType& obj)
 {
     if (!j.is_object())
     {
-        throw std::domain_error("type must be object, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be object, but is " + type_name(j)));
     }
 
     auto inner_object = j.template get_ptr<const typename Json::object_t*>();
@@ -777,7 +777,7 @@ void from_json(const  Json& j, ArithmeticType& val)
     }
     else
     {
-        throw std::domain_error("type must be number, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be number, but is " + type_name(j)));
     }
 }
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index cbda7ee7..710f61e8 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -513,7 +513,7 @@ void get_arithmetic_value(const  Json& j, ArithmeticType& val)
     }
     else
     {
-        throw std::domain_error("type must be number, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be number, but is " + type_name(j)));
     }
 }
 
@@ -592,7 +592,7 @@ void from_json(const Json& j, typename Json::boolean_t& b)
 {
     if (!j.is_boolean())
     {
-        throw std::domain_error("type must be boolean, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j)));
     }
     b = *j.template get_ptr<const typename Json::boolean_t*>();
 }
@@ -602,7 +602,7 @@ void from_json(const Json& j, typename Json::string_t& s)
 {
     if (!j.is_string())
     {
-        throw std::domain_error("type must be string, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be string, but is " + type_name(j)));
     }
     s = *j.template get_ptr<const typename Json::string_t*>();
 }
@@ -639,7 +639,7 @@ void from_json(const  Json& j, typename Json::array_t& arr)
 {
     if (!j.is_array())
     {
-        throw std::domain_error("type must be array, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
     arr = *j.template get_ptr<const typename Json::array_t*>();
 }
@@ -652,13 +652,13 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l)
     // (except when it's null.. ?)
     if (j.is_null())
     {
-        throw std::domain_error("type must be array, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
     if (not std::is_same<T, Json>::value)
     {
         if (!j.is_array())
         {
-            throw std::domain_error("type must be array, but is " + type_name(j));
+            JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
         }
     }
     for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
@@ -711,14 +711,14 @@ void from_json(const  Json& j, CompatibleArrayType& arr)
 {
     if (j.is_null())
     {
-        throw std::domain_error("type must be array, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
     // when T == Json, do not check if value_t is correct
     if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
     {
         if (!j.is_array())
         {
-            throw std::domain_error("type must be array, but is " + type_name(j));
+            JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
         }
     }
     from_json_array_impl(j, arr, priority_tag<1> {});
@@ -733,7 +733,7 @@ void from_json(const  Json& j, CompatibleObjectType& obj)
 {
     if (!j.is_object())
     {
-        throw std::domain_error("type must be object, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be object, but is " + type_name(j)));
     }
 
     auto inner_object = j.template get_ptr<const typename Json::object_t*>();
@@ -777,7 +777,7 @@ void from_json(const  Json& j, ArithmeticType& val)
     }
     else
     {
-        throw std::domain_error("type must be number, but is " + type_name(j));
+        JSON_THROW(std::domain_error("type must be number, but is " + type_name(j)));
     }
 }
 

From d566bb81c4e304a2a05be6b01c75b8a3dc63442a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Fri, 20 Jan 2017 23:21:20 +0100
Subject: [PATCH 115/174] use switchs where appropriate

---
 src/json.hpp      | 80 +++++++++++++++++++++++++----------------------
 src/json.hpp.re2c | 80 +++++++++++++++++++++++++----------------------
 2 files changed, 86 insertions(+), 74 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 630624a6..9fd0d05b 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -498,22 +498,23 @@ template <typename Json, typename ArithmeticType,
                       int> = 0>
 void get_arithmetic_value(const  Json& j, ArithmeticType& val)
 {
-    // unsigned must be checked first, since is_number_integer() == true for unsigned
-    if (j.is_number_unsigned())
+    switch (static_cast<value_t>(j))
     {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
-    }
-    else if (j.is_number_integer())
-    {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
-    }
-    else if (j.is_number_float())
-    {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
-    }
-    else
-    {
-        JSON_THROW(std::domain_error("type must be number, but is " + type_name(j)));
+        case value_t::number_unsigned:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_unsigned_t*>());
+            break;
+        case value_t::number_integer:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_integer_t*>());
+            break;
+        case value_t::number_float:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_float_t*>());
+            break;
+        default:
+            JSON_THROW(
+                std::domain_error("type must be number, but is " + type_name(j)));
     }
 }
 
@@ -752,32 +753,37 @@ template <
     typename Json, typename ArithmeticType,
     enable_if_t <
         std::is_arithmetic<ArithmeticType>::value and
-        not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and
-        not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and
-        not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
+        not std::is_same<ArithmeticType,
+                         typename Json::number_unsigned_t>::value and
+        not std::is_same<ArithmeticType,
+                         typename Json::number_integer_t>::value and
+        not std::is_same<ArithmeticType,
+                         typename Json::number_float_t>::value and
         not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
         int > = 0 >
-void from_json(const  Json& j, ArithmeticType& val)
+void from_json(const Json& j, ArithmeticType& val)
 {
-    if (j.is_number_unsigned())
+    switch (static_cast<value_t>(j))
     {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
-    }
-    else if (j.is_number_integer())
-    {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
-    }
-    else if (j.is_number_float())
-    {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
-    }
-    else if (j.is_boolean())
-    {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>());
-    }
-    else
-    {
-        JSON_THROW(std::domain_error("type must be number, but is " + type_name(j)));
+        case value_t::number_unsigned:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_unsigned_t*>());
+            break;
+        case value_t::number_integer:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_integer_t*>());
+            break;
+        case value_t::number_float:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_float_t*>());
+            break;
+        case value_t::boolean:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::boolean_t*>());
+            break;
+        default:
+            JSON_THROW(
+                std::domain_error("type must be number, but is " + type_name(j)));
     }
 }
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 710f61e8..c400e156 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -498,22 +498,23 @@ template <typename Json, typename ArithmeticType,
                       int> = 0>
 void get_arithmetic_value(const  Json& j, ArithmeticType& val)
 {
-    // unsigned must be checked first, since is_number_integer() == true for unsigned
-    if (j.is_number_unsigned())
+    switch (static_cast<value_t>(j))
     {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
-    }
-    else if (j.is_number_integer())
-    {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
-    }
-    else if (j.is_number_float())
-    {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
-    }
-    else
-    {
-        JSON_THROW(std::domain_error("type must be number, but is " + type_name(j)));
+        case value_t::number_unsigned:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_unsigned_t*>());
+            break;
+        case value_t::number_integer:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_integer_t*>());
+            break;
+        case value_t::number_float:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_float_t*>());
+            break;
+        default:
+            JSON_THROW(
+                std::domain_error("type must be number, but is " + type_name(j)));
     }
 }
 
@@ -752,32 +753,37 @@ template <
     typename Json, typename ArithmeticType,
     enable_if_t <
         std::is_arithmetic<ArithmeticType>::value and
-        not std::is_same<ArithmeticType, typename Json::number_unsigned_t>::value and
-        not std::is_same<ArithmeticType, typename Json::number_integer_t>::value and
-        not std::is_same<ArithmeticType, typename Json::number_float_t>::value and
+        not std::is_same<ArithmeticType,
+                         typename Json::number_unsigned_t>::value and
+        not std::is_same<ArithmeticType,
+                         typename Json::number_integer_t>::value and
+        not std::is_same<ArithmeticType,
+                         typename Json::number_float_t>::value and
         not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
         int > = 0 >
-void from_json(const  Json& j, ArithmeticType& val)
+void from_json(const Json& j, ArithmeticType& val)
 {
-    if (j.is_number_unsigned())
+    switch (static_cast<value_t>(j))
     {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_unsigned_t*>());
-    }
-    else if (j.is_number_integer())
-    {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_integer_t*>());
-    }
-    else if (j.is_number_float())
-    {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::number_float_t*>());
-    }
-    else if (j.is_boolean())
-    {
-        val = static_cast<ArithmeticType>(*j.template get_ptr<const typename Json::boolean_t*>());
-    }
-    else
-    {
-        JSON_THROW(std::domain_error("type must be number, but is " + type_name(j)));
+        case value_t::number_unsigned:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_unsigned_t*>());
+            break;
+        case value_t::number_integer:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_integer_t*>());
+            break;
+        case value_t::number_float:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::number_float_t*>());
+            break;
+        case value_t::boolean:
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename Json::boolean_t*>());
+            break;
+        default:
+            JSON_THROW(
+                std::domain_error("type must be number, but is " + type_name(j)));
     }
 }
 

From a6b028286b13203331237f21ece1dc751962722e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Fri, 20 Jan 2017 23:28:36 +0100
Subject: [PATCH 116/174] move conjunction/disjunction to the top of detail

---
 src/json.hpp      | 1280 +++++++++++++++++++++++++++++++--------------
 src/json.hpp.re2c |   38 +-
 2 files changed, 898 insertions(+), 420 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 9fd0d05b..bd21c93c 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -168,6 +168,25 @@ using is_unscoped_enum =
 
 namespace detail
 {
+// Implementation of 2 C++17 constructs: conjunction, negation.
+// This is needed to avoid evaluating all the traits in a condition
+//
+// For example: not std::is_same<void, T>::value and has_value_type<T>::value
+// will not compile when T = void (on MSVC at least)
+// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value
+// will stop evaluating if negation<...>::value == false
+//
+// Please note that those constructs must be used with caution, since symbols can
+// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors)
+// Only use it when you have too (see example ahead)
+template <class...> struct conjunction : std::true_type {};
+template <class B1> struct conjunction<B1> : B1 {};
+template <class B1, class... Bn>
+struct conjunction<B1, Bn...>
+: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
+
+template <class B> struct negation : std::integral_constant < bool, !B::value > {};
+
 template <typename Json> std::string type_name(const  Json& j)
 {
     switch (j.m_type)
@@ -317,25 +336,6 @@ struct external_constructor<value_t::object>
     }
 };
 
-// Implementation of 2 C++17 constructs: conjunction, negation.
-// This is needed to avoid evaluating all the traits in a condition
-//
-// For example: not std::is_same<void, T>::value and has_value_type<T>::value
-// will not compile when T = void (on MSVC at least)
-// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value
-// will stop evaluating if negation<...>::value == false
-//
-// Please note that those constructs must be used with caution, since symbols can
-// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors)
-// Only use it when you have too (see example ahead)
-template <class...> struct conjunction : std::true_type {};
-template <class B1> struct conjunction<B1> : B1 {};
-template <class B1, class... Bn>
-struct conjunction<B1, Bn...>
-: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
-
-template <class B> struct negation : std::integral_constant < bool, !B::value > {};
-
 /*!
 @brief Helper to determine whether there's a key_type for T.
 
@@ -9468,437 +9468,915 @@ class basic_json
                 m_start = m_cursor;
                 assert(m_start != nullptr);
 
-                
-    {
-        lexer_char_t yych;
-        unsigned int yyaccept = 0;
-        static const unsigned char yybm[] = {
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,  32,  32,   0,   0,  32,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-            160, 128,   0, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            192, 192, 192, 192, 192, 192, 192, 192, 
-            192, 192, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128,   0, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-        };
-        if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yybm[0+yych] & 32) {
-            goto basic_json_parser_6;
-        }
-        if (yych <= '[') {
-            if (yych <= '-') {
-                if (yych <= '"') {
-                    if (yych <= 0x00) goto basic_json_parser_2;
-                    if (yych <= '!') goto basic_json_parser_4;
-                    goto basic_json_parser_9;
-                } else {
-                    if (yych <= '+') goto basic_json_parser_4;
-                    if (yych <= ',') goto basic_json_parser_10;
-                    goto basic_json_parser_12;
-                }
-            } else {
-                if (yych <= '9') {
-                    if (yych <= '/') goto basic_json_parser_4;
-                    if (yych <= '0') goto basic_json_parser_13;
-                    goto basic_json_parser_15;
-                } else {
-                    if (yych <= ':') goto basic_json_parser_17;
-                    if (yych <= 'Z') goto basic_json_parser_4;
-                    goto basic_json_parser_19;
-                }
-            }
-        } else {
-            if (yych <= 'n') {
-                if (yych <= 'e') {
-                    if (yych == ']') goto basic_json_parser_21;
-                    goto basic_json_parser_4;
-                } else {
-                    if (yych <= 'f') goto basic_json_parser_23;
-                    if (yych <= 'm') goto basic_json_parser_4;
-                    goto basic_json_parser_24;
-                }
-            } else {
-                if (yych <= 'z') {
-                    if (yych == 't') goto basic_json_parser_25;
-                    goto basic_json_parser_4;
-                } else {
-                    if (yych <= '{') goto basic_json_parser_26;
-                    if (yych == '}') goto basic_json_parser_28;
-                    goto basic_json_parser_4;
-                }
-            }
-        }
+
+                {
+                    lexer_char_t yych;
+                    unsigned int yyaccept = 0;
+                    static const unsigned char yybm[] =
+                    {
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,  32,  32,   0,   0,  32,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        160, 128,   0, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        192, 192, 192, 192, 192, 192, 192, 192,
+                        192, 192, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128,   0, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                    };
+                    if ((m_limit - m_cursor) < 5)
+                    {
+                        fill_line_buffer(5);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yybm[0 + yych] & 32)
+                    {
+                        goto basic_json_parser_6;
+                    }
+                    if (yych <= '[')
+                    {
+                        if (yych <= '-')
+                        {
+                            if (yych <= '"')
+                            {
+                                if (yych <= 0x00)
+                                {
+                                    goto basic_json_parser_2;
+                                }
+                                if (yych <= '!')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                goto basic_json_parser_9;
+                            }
+                            else
+                            {
+                                if (yych <= '+')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                if (yych <= ',')
+                                {
+                                    goto basic_json_parser_10;
+                                }
+                                goto basic_json_parser_12;
+                            }
+                        }
+                        else
+                        {
+                            if (yych <= '9')
+                            {
+                                if (yych <= '/')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                if (yych <= '0')
+                                {
+                                    goto basic_json_parser_13;
+                                }
+                                goto basic_json_parser_15;
+                            }
+                            else
+                            {
+                                if (yych <= ':')
+                                {
+                                    goto basic_json_parser_17;
+                                }
+                                if (yych <= 'Z')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                goto basic_json_parser_19;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'n')
+                        {
+                            if (yych <= 'e')
+                            {
+                                if (yych == ']')
+                                {
+                                    goto basic_json_parser_21;
+                                }
+                                goto basic_json_parser_4;
+                            }
+                            else
+                            {
+                                if (yych <= 'f')
+                                {
+                                    goto basic_json_parser_23;
+                                }
+                                if (yych <= 'm')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                goto basic_json_parser_24;
+                            }
+                        }
+                        else
+                        {
+                            if (yych <= 'z')
+                            {
+                                if (yych == 't')
+                                {
+                                    goto basic_json_parser_25;
+                                }
+                                goto basic_json_parser_4;
+                            }
+                            else
+                            {
+                                if (yych <= '{')
+                                {
+                                    goto basic_json_parser_26;
+                                }
+                                if (yych == '}')
+                                {
+                                    goto basic_json_parser_28;
+                                }
+                                goto basic_json_parser_4;
+                            }
+                        }
+                    }
 basic_json_parser_2:
-        ++m_cursor;
-        { last_token_type = token_type::end_of_input; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::end_of_input;
+                        break;
+                    }
 basic_json_parser_4:
-        ++m_cursor;
+                    ++m_cursor;
 basic_json_parser_5:
-        { last_token_type = token_type::parse_error; break; }
+                    {
+                        last_token_type = token_type::parse_error;
+                        break;
+                    }
 basic_json_parser_6:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yybm[0+yych] & 32) {
-            goto basic_json_parser_6;
-        }
-        { continue; }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yybm[0 + yych] & 32)
+                    {
+                        goto basic_json_parser_6;
+                    }
+                    {
+                        continue;
+                    }
 basic_json_parser_9:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych <= 0x1F) goto basic_json_parser_5;
-        if (yych <= 0x7F) goto basic_json_parser_31;
-        if (yych <= 0xC1) goto basic_json_parser_5;
-        if (yych <= 0xF4) goto basic_json_parser_31;
-        goto basic_json_parser_5;
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych <= 0x1F)
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_31;
+                    }
+                    if (yych <= 0xC1)
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    if (yych <= 0xF4)
+                    {
+                        goto basic_json_parser_31;
+                    }
+                    goto basic_json_parser_5;
 basic_json_parser_10:
-        ++m_cursor;
-        { last_token_type = token_type::value_separator; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::value_separator;
+                        break;
+                    }
 basic_json_parser_12:
-        yych = *++m_cursor;
-        if (yych <= '/') goto basic_json_parser_5;
-        if (yych <= '0') goto basic_json_parser_13;
-        if (yych <= '9') goto basic_json_parser_15;
-        goto basic_json_parser_5;
+                    yych = *++m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    if (yych <= '0')
+                    {
+                        goto basic_json_parser_13;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_15;
+                    }
+                    goto basic_json_parser_5;
 basic_json_parser_13:
-        yyaccept = 1;
-        yych = *(m_marker = ++m_cursor);
-        if (yych <= 'D') {
-            if (yych == '.') goto basic_json_parser_43;
-        } else {
-            if (yych <= 'E') goto basic_json_parser_44;
-            if (yych == 'e') goto basic_json_parser_44;
-        }
+                    yyaccept = 1;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych <= 'D')
+                    {
+                        if (yych == '.')
+                        {
+                            goto basic_json_parser_43;
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        if (yych == 'e')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                    }
 basic_json_parser_14:
-        { last_token_type = token_type::value_number; break; }
+                    {
+                        last_token_type = token_type::value_number;
+                        break;
+                    }
 basic_json_parser_15:
-        yyaccept = 1;
-        m_marker = ++m_cursor;
-        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yybm[0+yych] & 64) {
-            goto basic_json_parser_15;
-        }
-        if (yych <= 'D') {
-            if (yych == '.') goto basic_json_parser_43;
-            goto basic_json_parser_14;
-        } else {
-            if (yych <= 'E') goto basic_json_parser_44;
-            if (yych == 'e') goto basic_json_parser_44;
-            goto basic_json_parser_14;
-        }
+                    yyaccept = 1;
+                    m_marker = ++m_cursor;
+                    if ((m_limit - m_cursor) < 3)
+                    {
+                        fill_line_buffer(3);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yybm[0 + yych] & 64)
+                    {
+                        goto basic_json_parser_15;
+                    }
+                    if (yych <= 'D')
+                    {
+                        if (yych == '.')
+                        {
+                            goto basic_json_parser_43;
+                        }
+                        goto basic_json_parser_14;
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        if (yych == 'e')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        goto basic_json_parser_14;
+                    }
 basic_json_parser_17:
-        ++m_cursor;
-        { last_token_type = token_type::name_separator; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::name_separator;
+                        break;
+                    }
 basic_json_parser_19:
-        ++m_cursor;
-        { last_token_type = token_type::begin_array; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::begin_array;
+                        break;
+                    }
 basic_json_parser_21:
-        ++m_cursor;
-        { last_token_type = token_type::end_array; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::end_array;
+                        break;
+                    }
 basic_json_parser_23:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych == 'a') goto basic_json_parser_45;
-        goto basic_json_parser_5;
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych == 'a')
+                    {
+                        goto basic_json_parser_45;
+                    }
+                    goto basic_json_parser_5;
 basic_json_parser_24:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych == 'u') goto basic_json_parser_46;
-        goto basic_json_parser_5;
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych == 'u')
+                    {
+                        goto basic_json_parser_46;
+                    }
+                    goto basic_json_parser_5;
 basic_json_parser_25:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych == 'r') goto basic_json_parser_47;
-        goto basic_json_parser_5;
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych == 'r')
+                    {
+                        goto basic_json_parser_47;
+                    }
+                    goto basic_json_parser_5;
 basic_json_parser_26:
-        ++m_cursor;
-        { last_token_type = token_type::begin_object; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::begin_object;
+                        break;
+                    }
 basic_json_parser_28:
-        ++m_cursor;
-        { last_token_type = token_type::end_object; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::end_object;
+                        break;
+                    }
 basic_json_parser_30:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
 basic_json_parser_31:
-        if (yybm[0+yych] & 128) {
-            goto basic_json_parser_30;
-        }
-        if (yych <= 0xE0) {
-            if (yych <= '\\') {
-                if (yych <= 0x1F) goto basic_json_parser_32;
-                if (yych <= '"') goto basic_json_parser_33;
-                goto basic_json_parser_35;
-            } else {
-                if (yych <= 0xC1) goto basic_json_parser_32;
-                if (yych <= 0xDF) goto basic_json_parser_36;
-                goto basic_json_parser_37;
-            }
-        } else {
-            if (yych <= 0xEF) {
-                if (yych == 0xED) goto basic_json_parser_39;
-                goto basic_json_parser_38;
-            } else {
-                if (yych <= 0xF0) goto basic_json_parser_40;
-                if (yych <= 0xF3) goto basic_json_parser_41;
-                if (yych <= 0xF4) goto basic_json_parser_42;
-            }
-        }
+                    if (yybm[0 + yych] & 128)
+                    {
+                        goto basic_json_parser_30;
+                    }
+                    if (yych <= 0xE0)
+                    {
+                        if (yych <= '\\')
+                        {
+                            if (yych <= 0x1F)
+                            {
+                                goto basic_json_parser_32;
+                            }
+                            if (yych <= '"')
+                            {
+                                goto basic_json_parser_33;
+                            }
+                            goto basic_json_parser_35;
+                        }
+                        else
+                        {
+                            if (yych <= 0xC1)
+                            {
+                                goto basic_json_parser_32;
+                            }
+                            if (yych <= 0xDF)
+                            {
+                                goto basic_json_parser_36;
+                            }
+                            goto basic_json_parser_37;
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 0xEF)
+                        {
+                            if (yych == 0xED)
+                            {
+                                goto basic_json_parser_39;
+                            }
+                            goto basic_json_parser_38;
+                        }
+                        else
+                        {
+                            if (yych <= 0xF0)
+                            {
+                                goto basic_json_parser_40;
+                            }
+                            if (yych <= 0xF3)
+                            {
+                                goto basic_json_parser_41;
+                            }
+                            if (yych <= 0xF4)
+                            {
+                                goto basic_json_parser_42;
+                            }
+                        }
+                    }
 basic_json_parser_32:
-        m_cursor = m_marker;
-        if (yyaccept == 0) {
-            goto basic_json_parser_5;
-        } else {
-            goto basic_json_parser_14;
-        }
+                    m_cursor = m_marker;
+                    if (yyaccept == 0)
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    else
+                    {
+                        goto basic_json_parser_14;
+                    }
 basic_json_parser_33:
-        ++m_cursor;
-        { last_token_type = token_type::value_string; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::value_string;
+                        break;
+                    }
 basic_json_parser_35:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 'e') {
-            if (yych <= '/') {
-                if (yych == '"') goto basic_json_parser_30;
-                if (yych <= '.') goto basic_json_parser_32;
-                goto basic_json_parser_30;
-            } else {
-                if (yych <= '\\') {
-                    if (yych <= '[') goto basic_json_parser_32;
-                    goto basic_json_parser_30;
-                } else {
-                    if (yych == 'b') goto basic_json_parser_30;
-                    goto basic_json_parser_32;
-                }
-            }
-        } else {
-            if (yych <= 'q') {
-                if (yych <= 'f') goto basic_json_parser_30;
-                if (yych == 'n') goto basic_json_parser_30;
-                goto basic_json_parser_32;
-            } else {
-                if (yych <= 's') {
-                    if (yych <= 'r') goto basic_json_parser_30;
-                    goto basic_json_parser_32;
-                } else {
-                    if (yych <= 't') goto basic_json_parser_30;
-                    if (yych <= 'u') goto basic_json_parser_48;
-                    goto basic_json_parser_32;
-                }
-            }
-        }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 'e')
+                    {
+                        if (yych <= '/')
+                        {
+                            if (yych == '"')
+                            {
+                                goto basic_json_parser_30;
+                            }
+                            if (yych <= '.')
+                            {
+                                goto basic_json_parser_32;
+                            }
+                            goto basic_json_parser_30;
+                        }
+                        else
+                        {
+                            if (yych <= '\\')
+                            {
+                                if (yych <= '[')
+                                {
+                                    goto basic_json_parser_32;
+                                }
+                                goto basic_json_parser_30;
+                            }
+                            else
+                            {
+                                if (yych == 'b')
+                                {
+                                    goto basic_json_parser_30;
+                                }
+                                goto basic_json_parser_32;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'q')
+                        {
+                            if (yych <= 'f')
+                            {
+                                goto basic_json_parser_30;
+                            }
+                            if (yych == 'n')
+                            {
+                                goto basic_json_parser_30;
+                            }
+                            goto basic_json_parser_32;
+                        }
+                        else
+                        {
+                            if (yych <= 's')
+                            {
+                                if (yych <= 'r')
+                                {
+                                    goto basic_json_parser_30;
+                                }
+                                goto basic_json_parser_32;
+                            }
+                            else
+                            {
+                                if (yych <= 't')
+                                {
+                                    goto basic_json_parser_30;
+                                }
+                                if (yych <= 'u')
+                                {
+                                    goto basic_json_parser_48;
+                                }
+                                goto basic_json_parser_32;
+                            }
+                        }
+                    }
 basic_json_parser_36:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_30;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_30;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_37:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x9F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_36;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x9F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_36;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_38:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_36;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_36;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_39:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0x9F) goto basic_json_parser_36;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0x9F)
+                    {
+                        goto basic_json_parser_36;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_40:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x8F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_38;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x8F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_41:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_38;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_42:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0x8F) goto basic_json_parser_38;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0x8F)
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_43:
-        yych = *++m_cursor;
-        if (yych <= '/') goto basic_json_parser_32;
-        if (yych <= '9') goto basic_json_parser_49;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_49;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_44:
-        yych = *++m_cursor;
-        if (yych <= ',') {
-            if (yych == '+') goto basic_json_parser_51;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= '-') goto basic_json_parser_51;
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_52;
-            goto basic_json_parser_32;
-        }
+                    yych = *++m_cursor;
+                    if (yych <= ',')
+                    {
+                        if (yych == '+')
+                        {
+                            goto basic_json_parser_51;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= '-')
+                        {
+                            goto basic_json_parser_51;
+                        }
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_52;
+                        }
+                        goto basic_json_parser_32;
+                    }
 basic_json_parser_45:
-        yych = *++m_cursor;
-        if (yych == 'l') goto basic_json_parser_54;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'l')
+                    {
+                        goto basic_json_parser_54;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_46:
-        yych = *++m_cursor;
-        if (yych == 'l') goto basic_json_parser_55;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'l')
+                    {
+                        goto basic_json_parser_55;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_47:
-        yych = *++m_cursor;
-        if (yych == 'u') goto basic_json_parser_56;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'u')
+                    {
+                        goto basic_json_parser_56;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_48:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_57;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_57;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_57;
-            goto basic_json_parser_32;
-        }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_57;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_57;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_57;
+                        }
+                        goto basic_json_parser_32;
+                    }
 basic_json_parser_49:
-        yyaccept = 1;
-        m_marker = ++m_cursor;
-        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 'D') {
-            if (yych <= '/') goto basic_json_parser_14;
-            if (yych <= '9') goto basic_json_parser_49;
-            goto basic_json_parser_14;
-        } else {
-            if (yych <= 'E') goto basic_json_parser_44;
-            if (yych == 'e') goto basic_json_parser_44;
-            goto basic_json_parser_14;
-        }
+                    yyaccept = 1;
+                    m_marker = ++m_cursor;
+                    if ((m_limit - m_cursor) < 3)
+                    {
+                        fill_line_buffer(3);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 'D')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_14;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_49;
+                        }
+                        goto basic_json_parser_14;
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        if (yych == 'e')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        goto basic_json_parser_14;
+                    }
 basic_json_parser_51:
-        yych = *++m_cursor;
-        if (yych <= '/') goto basic_json_parser_32;
-        if (yych >= ':') goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych >= ':')
+                    {
+                        goto basic_json_parser_32;
+                    }
 basic_json_parser_52:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '/') goto basic_json_parser_14;
-        if (yych <= '9') goto basic_json_parser_52;
-        goto basic_json_parser_14;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_14;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_52;
+                    }
+                    goto basic_json_parser_14;
 basic_json_parser_54:
-        yych = *++m_cursor;
-        if (yych == 's') goto basic_json_parser_58;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 's')
+                    {
+                        goto basic_json_parser_58;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_55:
-        yych = *++m_cursor;
-        if (yych == 'l') goto basic_json_parser_59;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'l')
+                    {
+                        goto basic_json_parser_59;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_56:
-        yych = *++m_cursor;
-        if (yych == 'e') goto basic_json_parser_61;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_61;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_57:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_63;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_63;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_63;
-            goto basic_json_parser_32;
-        }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_63;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_63;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_63;
+                        }
+                        goto basic_json_parser_32;
+                    }
 basic_json_parser_58:
-        yych = *++m_cursor;
-        if (yych == 'e') goto basic_json_parser_64;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_64;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_59:
-        ++m_cursor;
-        { last_token_type = token_type::literal_null; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::literal_null;
+                        break;
+                    }
 basic_json_parser_61:
-        ++m_cursor;
-        { last_token_type = token_type::literal_true; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::literal_true;
+                        break;
+                    }
 basic_json_parser_63:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_66;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_66;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_66;
-            goto basic_json_parser_32;
-        }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_66;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_66;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_66;
+                        }
+                        goto basic_json_parser_32;
+                    }
 basic_json_parser_64:
-        ++m_cursor;
-        { last_token_type = token_type::literal_false; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::literal_false;
+                        break;
+                    }
 basic_json_parser_66:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_30;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_30;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_30;
-            goto basic_json_parser_32;
-        }
-    }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                }
 
             }
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index c400e156..c47b321c 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -168,6 +168,25 @@ using is_unscoped_enum =
 
 namespace detail
 {
+// Implementation of 2 C++17 constructs: conjunction, negation.
+// This is needed to avoid evaluating all the traits in a condition
+//
+// For example: not std::is_same<void, T>::value and has_value_type<T>::value
+// will not compile when T = void (on MSVC at least)
+// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value
+// will stop evaluating if negation<...>::value == false
+//
+// Please note that those constructs must be used with caution, since symbols can
+// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors)
+// Only use it when you have too (see example ahead)
+template <class...> struct conjunction : std::true_type {};
+template <class B1> struct conjunction<B1> : B1 {};
+template <class B1, class... Bn>
+struct conjunction<B1, Bn...>
+: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
+
+template <class B> struct negation : std::integral_constant < bool, !B::value > {};
+
 template <typename Json> std::string type_name(const  Json& j)
 {
     switch (j.m_type)
@@ -317,25 +336,6 @@ struct external_constructor<value_t::object>
     }
 };
 
-// Implementation of 2 C++17 constructs: conjunction, negation.
-// This is needed to avoid evaluating all the traits in a condition
-//
-// For example: not std::is_same<void, T>::value and has_value_type<T>::value
-// will not compile when T = void (on MSVC at least)
-// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value
-// will stop evaluating if negation<...>::value == false
-//
-// Please note that those constructs must be used with caution, since symbols can
-// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors)
-// Only use it when you have too (see example ahead)
-template <class...> struct conjunction : std::true_type {};
-template <class B1> struct conjunction<B1> : B1 {};
-template <class B1, class... Bn>
-struct conjunction<B1, Bn...>
-: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
-
-template <class B> struct negation : std::integral_constant < bool, !B::value > {};
-
 /*!
 @brief Helper to determine whether there's a key_type for T.
 

From 889b269a4fc081b1fae4369b0fdefe3f1ccc29b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Fri, 20 Jan 2017 23:34:52 +0100
Subject: [PATCH 117/174] rename template argument: BasicJson -> Json

---
 src/json.hpp      | 1362 +++++++++++++++------------------------------
 src/json.hpp.re2c |   24 +-
 2 files changed, 454 insertions(+), 932 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index bd21c93c..e9a6c80b 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -377,27 +377,27 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
         typename CompatibleObjectType::mapped_type>::value;
 };
 
-template<class BasicJson, class CompatibleObjectType>
+template<class Json, class CompatibleObjectType>
 struct is_compatible_object_type
 {
     static auto constexpr value = is_compatible_object_type_impl <
                                   conjunction<negation<std::is_same<void, CompatibleObjectType>>,
                                   has_mapped_type<CompatibleObjectType>,
                                   has_key_type<CompatibleObjectType>>::value,
-                                  typename BasicJson::object_t, CompatibleObjectType >::value;
+                                  typename Json::object_t, CompatibleObjectType >::value;
 };
 
-template <typename BasicJson, typename T>
+template <typename Json, typename T>
 struct is_basic_json_nested_type
 {
-    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
-                                  std::is_same<T, typename BasicJson::const_iterator>::value or
-                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
-                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
-                                  std::is_same<T, typename BasicJson::json_pointer>::value;
+    static auto constexpr value = std::is_same<T, typename Json::iterator>::value or
+                                  std::is_same<T, typename Json::const_iterator>::value or
+                                  std::is_same<T, typename Json::reverse_iterator>::value or
+                                  std::is_same<T, typename Json::const_reverse_iterator>::value or
+                                  std::is_same<T, typename Json::json_pointer>::value;
 };
 
-template <class BasicJson, class CompatibleArrayType>
+template <class Json, class CompatibleArrayType>
 struct is_compatible_array_type
 {
     // TODO concept Container?
@@ -405,10 +405,10 @@ struct is_compatible_array_type
     static auto constexpr value =
         conjunction<negation<std::is_same<void, CompatibleArrayType>>,
         negation<is_compatible_object_type<
-        BasicJson, CompatibleArrayType>>,
-        negation<std::is_constructible<typename BasicJson::string_t,
+        Json, CompatibleArrayType>>,
+        negation<std::is_constructible<typename Json::string_t,
         CompatibleArrayType>>,
-        negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>,
+        negation<is_basic_json_nested_type<Json, CompatibleArrayType>>,
         has_value_type<CompatibleArrayType>,
         has_iterator<CompatibleArrayType>>::value;
 };
@@ -9468,915 +9468,437 @@ class basic_json
                 m_start = m_cursor;
                 assert(m_start != nullptr);
 
-
-                {
-                    lexer_char_t yych;
-                    unsigned int yyaccept = 0;
-                    static const unsigned char yybm[] =
-                    {
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,  32,  32,   0,   0,  32,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        160, 128,   0, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        192, 192, 192, 192, 192, 192, 192, 192,
-                        192, 192, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128,   0, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        128, 128, 128, 128, 128, 128, 128, 128,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                        0,   0,   0,   0,   0,   0,   0,   0,
-                    };
-                    if ((m_limit - m_cursor) < 5)
-                    {
-                        fill_line_buffer(5);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yybm[0 + yych] & 32)
-                    {
-                        goto basic_json_parser_6;
-                    }
-                    if (yych <= '[')
-                    {
-                        if (yych <= '-')
-                        {
-                            if (yych <= '"')
-                            {
-                                if (yych <= 0x00)
-                                {
-                                    goto basic_json_parser_2;
-                                }
-                                if (yych <= '!')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                goto basic_json_parser_9;
-                            }
-                            else
-                            {
-                                if (yych <= '+')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                if (yych <= ',')
-                                {
-                                    goto basic_json_parser_10;
-                                }
-                                goto basic_json_parser_12;
-                            }
-                        }
-                        else
-                        {
-                            if (yych <= '9')
-                            {
-                                if (yych <= '/')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                if (yych <= '0')
-                                {
-                                    goto basic_json_parser_13;
-                                }
-                                goto basic_json_parser_15;
-                            }
-                            else
-                            {
-                                if (yych <= ':')
-                                {
-                                    goto basic_json_parser_17;
-                                }
-                                if (yych <= 'Z')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                goto basic_json_parser_19;
-                            }
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= 'n')
-                        {
-                            if (yych <= 'e')
-                            {
-                                if (yych == ']')
-                                {
-                                    goto basic_json_parser_21;
-                                }
-                                goto basic_json_parser_4;
-                            }
-                            else
-                            {
-                                if (yych <= 'f')
-                                {
-                                    goto basic_json_parser_23;
-                                }
-                                if (yych <= 'm')
-                                {
-                                    goto basic_json_parser_4;
-                                }
-                                goto basic_json_parser_24;
-                            }
-                        }
-                        else
-                        {
-                            if (yych <= 'z')
-                            {
-                                if (yych == 't')
-                                {
-                                    goto basic_json_parser_25;
-                                }
-                                goto basic_json_parser_4;
-                            }
-                            else
-                            {
-                                if (yych <= '{')
-                                {
-                                    goto basic_json_parser_26;
-                                }
-                                if (yych == '}')
-                                {
-                                    goto basic_json_parser_28;
-                                }
-                                goto basic_json_parser_4;
-                            }
-                        }
-                    }
-basic_json_parser_2:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::end_of_input;
-                        break;
-                    }
-basic_json_parser_4:
-                    ++m_cursor;
-basic_json_parser_5:
-                    {
-                        last_token_type = token_type::parse_error;
-                        break;
-                    }
-basic_json_parser_6:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yybm[0 + yych] & 32)
-                    {
-                        goto basic_json_parser_6;
-                    }
-                    {
-                        continue;
-                    }
-basic_json_parser_9:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych <= 0x1F)
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_31;
-                    }
-                    if (yych <= 0xC1)
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    if (yych <= 0xF4)
-                    {
-                        goto basic_json_parser_31;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_10:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::value_separator;
-                        break;
-                    }
-basic_json_parser_12:
-                    yych = *++m_cursor;
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    if (yych <= '0')
-                    {
-                        goto basic_json_parser_13;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_15;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_13:
-                    yyaccept = 1;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych <= 'D')
-                    {
-                        if (yych == '.')
-                        {
-                            goto basic_json_parser_43;
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= 'E')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        if (yych == 'e')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                    }
-basic_json_parser_14:
-                    {
-                        last_token_type = token_type::value_number;
-                        break;
-                    }
-basic_json_parser_15:
-                    yyaccept = 1;
-                    m_marker = ++m_cursor;
-                    if ((m_limit - m_cursor) < 3)
-                    {
-                        fill_line_buffer(3);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yybm[0 + yych] & 64)
-                    {
-                        goto basic_json_parser_15;
-                    }
-                    if (yych <= 'D')
-                    {
-                        if (yych == '.')
-                        {
-                            goto basic_json_parser_43;
-                        }
-                        goto basic_json_parser_14;
-                    }
-                    else
-                    {
-                        if (yych <= 'E')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        if (yych == 'e')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        goto basic_json_parser_14;
-                    }
-basic_json_parser_17:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::name_separator;
-                        break;
-                    }
-basic_json_parser_19:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::begin_array;
-                        break;
-                    }
-basic_json_parser_21:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::end_array;
-                        break;
-                    }
-basic_json_parser_23:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych == 'a')
-                    {
-                        goto basic_json_parser_45;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_24:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych == 'u')
-                    {
-                        goto basic_json_parser_46;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_25:
-                    yyaccept = 0;
-                    yych = *(m_marker = ++m_cursor);
-                    if (yych == 'r')
-                    {
-                        goto basic_json_parser_47;
-                    }
-                    goto basic_json_parser_5;
-basic_json_parser_26:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::begin_object;
-                        break;
-                    }
-basic_json_parser_28:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::end_object;
-                        break;
-                    }
-basic_json_parser_30:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-basic_json_parser_31:
-                    if (yybm[0 + yych] & 128)
-                    {
-                        goto basic_json_parser_30;
-                    }
-                    if (yych <= 0xE0)
-                    {
-                        if (yych <= '\\')
-                        {
-                            if (yych <= 0x1F)
-                            {
-                                goto basic_json_parser_32;
-                            }
-                            if (yych <= '"')
-                            {
-                                goto basic_json_parser_33;
-                            }
-                            goto basic_json_parser_35;
-                        }
-                        else
-                        {
-                            if (yych <= 0xC1)
-                            {
-                                goto basic_json_parser_32;
-                            }
-                            if (yych <= 0xDF)
-                            {
-                                goto basic_json_parser_36;
-                            }
-                            goto basic_json_parser_37;
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= 0xEF)
-                        {
-                            if (yych == 0xED)
-                            {
-                                goto basic_json_parser_39;
-                            }
-                            goto basic_json_parser_38;
-                        }
-                        else
-                        {
-                            if (yych <= 0xF0)
-                            {
-                                goto basic_json_parser_40;
-                            }
-                            if (yych <= 0xF3)
-                            {
-                                goto basic_json_parser_41;
-                            }
-                            if (yych <= 0xF4)
-                            {
-                                goto basic_json_parser_42;
-                            }
-                        }
-                    }
-basic_json_parser_32:
-                    m_cursor = m_marker;
-                    if (yyaccept == 0)
-                    {
-                        goto basic_json_parser_5;
-                    }
-                    else
-                    {
-                        goto basic_json_parser_14;
-                    }
-basic_json_parser_33:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::value_string;
-                        break;
-                    }
-basic_json_parser_35:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 'e')
-                    {
-                        if (yych <= '/')
-                        {
-                            if (yych == '"')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            if (yych <= '.')
-                            {
-                                goto basic_json_parser_32;
-                            }
-                            goto basic_json_parser_30;
-                        }
-                        else
-                        {
-                            if (yych <= '\\')
-                            {
-                                if (yych <= '[')
-                                {
-                                    goto basic_json_parser_32;
-                                }
-                                goto basic_json_parser_30;
-                            }
-                            else
-                            {
-                                if (yych == 'b')
-                                {
-                                    goto basic_json_parser_30;
-                                }
-                                goto basic_json_parser_32;
-                            }
-                        }
-                    }
-                    else
-                    {
-                        if (yych <= 'q')
-                        {
-                            if (yych <= 'f')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            if (yych == 'n')
-                            {
-                                goto basic_json_parser_30;
-                            }
-                            goto basic_json_parser_32;
-                        }
-                        else
-                        {
-                            if (yych <= 's')
-                            {
-                                if (yych <= 'r')
-                                {
-                                    goto basic_json_parser_30;
-                                }
-                                goto basic_json_parser_32;
-                            }
-                            else
-                            {
-                                if (yych <= 't')
-                                {
-                                    goto basic_json_parser_30;
-                                }
-                                if (yych <= 'u')
-                                {
-                                    goto basic_json_parser_48;
-                                }
-                                goto basic_json_parser_32;
-                            }
-                        }
-                    }
-basic_json_parser_36:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_30;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_37:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x9F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_36;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_38:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_36;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_39:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0x9F)
-                    {
-                        goto basic_json_parser_36;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_40:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x8F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_38;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_41:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0xBF)
-                    {
-                        goto basic_json_parser_38;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_42:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 0x7F)
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= 0x8F)
-                    {
-                        goto basic_json_parser_38;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_43:
-                    yych = *++m_cursor;
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_49;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_44:
-                    yych = *++m_cursor;
-                    if (yych <= ',')
-                    {
-                        if (yych == '+')
-                        {
-                            goto basic_json_parser_51;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= '-')
-                        {
-                            goto basic_json_parser_51;
-                        }
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_52;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_45:
-                    yych = *++m_cursor;
-                    if (yych == 'l')
-                    {
-                        goto basic_json_parser_54;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_46:
-                    yych = *++m_cursor;
-                    if (yych == 'l')
-                    {
-                        goto basic_json_parser_55;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_47:
-                    yych = *++m_cursor;
-                    if (yych == 'u')
-                    {
-                        goto basic_json_parser_56;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_48:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_57;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_57;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_57;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_49:
-                    yyaccept = 1;
-                    m_marker = ++m_cursor;
-                    if ((m_limit - m_cursor) < 3)
-                    {
-                        fill_line_buffer(3);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= 'D')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_14;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_49;
-                        }
-                        goto basic_json_parser_14;
-                    }
-                    else
-                    {
-                        if (yych <= 'E')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        if (yych == 'e')
-                        {
-                            goto basic_json_parser_44;
-                        }
-                        goto basic_json_parser_14;
-                    }
-basic_json_parser_51:
-                    yych = *++m_cursor;
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_32;
-                    }
-                    if (yych >= ':')
-                    {
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_52:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '/')
-                    {
-                        goto basic_json_parser_14;
-                    }
-                    if (yych <= '9')
-                    {
-                        goto basic_json_parser_52;
-                    }
-                    goto basic_json_parser_14;
-basic_json_parser_54:
-                    yych = *++m_cursor;
-                    if (yych == 's')
-                    {
-                        goto basic_json_parser_58;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_55:
-                    yych = *++m_cursor;
-                    if (yych == 'l')
-                    {
-                        goto basic_json_parser_59;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_56:
-                    yych = *++m_cursor;
-                    if (yych == 'e')
-                    {
-                        goto basic_json_parser_61;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_57:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_63;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_63;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_63;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_58:
-                    yych = *++m_cursor;
-                    if (yych == 'e')
-                    {
-                        goto basic_json_parser_64;
-                    }
-                    goto basic_json_parser_32;
-basic_json_parser_59:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::literal_null;
-                        break;
-                    }
-basic_json_parser_61:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::literal_true;
-                        break;
-                    }
-basic_json_parser_63:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_66;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_66;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_66;
-                        }
-                        goto basic_json_parser_32;
-                    }
-basic_json_parser_64:
-                    ++m_cursor;
-                    {
-                        last_token_type = token_type::literal_false;
-                        break;
-                    }
-basic_json_parser_66:
-                    ++m_cursor;
-                    if (m_limit <= m_cursor)
-                    {
-                        fill_line_buffer(1);    // LCOV_EXCL_LINE
-                    }
-                    yych = *m_cursor;
-                    if (yych <= '@')
-                    {
-                        if (yych <= '/')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= '9')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        goto basic_json_parser_32;
-                    }
-                    else
-                    {
-                        if (yych <= 'F')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        if (yych <= '`')
-                        {
-                            goto basic_json_parser_32;
-                        }
-                        if (yych <= 'f')
-                        {
-                            goto basic_json_parser_30;
-                        }
-                        goto basic_json_parser_32;
-                    }
+                
+    {
+        lexer_char_t yych;
+        unsigned int yyaccept = 0;
+        static const unsigned char yybm[] = {
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,  32,  32,   0,   0,  32,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+            160, 128,   0, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            192, 192, 192, 192, 192, 192, 192, 192, 
+            192, 192, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128,   0, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+            128, 128, 128, 128, 128, 128, 128, 128, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+              0,   0,   0,   0,   0,   0,   0,   0, 
+        };
+        if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yybm[0+yych] & 32) {
+            goto basic_json_parser_6;
+        }
+        if (yych <= '[') {
+            if (yych <= '-') {
+                if (yych <= '"') {
+                    if (yych <= 0x00) goto basic_json_parser_2;
+                    if (yych <= '!') goto basic_json_parser_4;
+                    goto basic_json_parser_9;
+                } else {
+                    if (yych <= '+') goto basic_json_parser_4;
+                    if (yych <= ',') goto basic_json_parser_10;
+                    goto basic_json_parser_12;
                 }
+            } else {
+                if (yych <= '9') {
+                    if (yych <= '/') goto basic_json_parser_4;
+                    if (yych <= '0') goto basic_json_parser_13;
+                    goto basic_json_parser_15;
+                } else {
+                    if (yych <= ':') goto basic_json_parser_17;
+                    if (yych <= 'Z') goto basic_json_parser_4;
+                    goto basic_json_parser_19;
+                }
+            }
+        } else {
+            if (yych <= 'n') {
+                if (yych <= 'e') {
+                    if (yych == ']') goto basic_json_parser_21;
+                    goto basic_json_parser_4;
+                } else {
+                    if (yych <= 'f') goto basic_json_parser_23;
+                    if (yych <= 'm') goto basic_json_parser_4;
+                    goto basic_json_parser_24;
+                }
+            } else {
+                if (yych <= 'z') {
+                    if (yych == 't') goto basic_json_parser_25;
+                    goto basic_json_parser_4;
+                } else {
+                    if (yych <= '{') goto basic_json_parser_26;
+                    if (yych == '}') goto basic_json_parser_28;
+                    goto basic_json_parser_4;
+                }
+            }
+        }
+basic_json_parser_2:
+        ++m_cursor;
+        { last_token_type = token_type::end_of_input; break; }
+basic_json_parser_4:
+        ++m_cursor;
+basic_json_parser_5:
+        { last_token_type = token_type::parse_error; break; }
+basic_json_parser_6:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yybm[0+yych] & 32) {
+            goto basic_json_parser_6;
+        }
+        { continue; }
+basic_json_parser_9:
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych <= 0x1F) goto basic_json_parser_5;
+        if (yych <= 0x7F) goto basic_json_parser_31;
+        if (yych <= 0xC1) goto basic_json_parser_5;
+        if (yych <= 0xF4) goto basic_json_parser_31;
+        goto basic_json_parser_5;
+basic_json_parser_10:
+        ++m_cursor;
+        { last_token_type = token_type::value_separator; break; }
+basic_json_parser_12:
+        yych = *++m_cursor;
+        if (yych <= '/') goto basic_json_parser_5;
+        if (yych <= '0') goto basic_json_parser_13;
+        if (yych <= '9') goto basic_json_parser_15;
+        goto basic_json_parser_5;
+basic_json_parser_13:
+        yyaccept = 1;
+        yych = *(m_marker = ++m_cursor);
+        if (yych <= 'D') {
+            if (yych == '.') goto basic_json_parser_43;
+        } else {
+            if (yych <= 'E') goto basic_json_parser_44;
+            if (yych == 'e') goto basic_json_parser_44;
+        }
+basic_json_parser_14:
+        { last_token_type = token_type::value_number; break; }
+basic_json_parser_15:
+        yyaccept = 1;
+        m_marker = ++m_cursor;
+        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yybm[0+yych] & 64) {
+            goto basic_json_parser_15;
+        }
+        if (yych <= 'D') {
+            if (yych == '.') goto basic_json_parser_43;
+            goto basic_json_parser_14;
+        } else {
+            if (yych <= 'E') goto basic_json_parser_44;
+            if (yych == 'e') goto basic_json_parser_44;
+            goto basic_json_parser_14;
+        }
+basic_json_parser_17:
+        ++m_cursor;
+        { last_token_type = token_type::name_separator; break; }
+basic_json_parser_19:
+        ++m_cursor;
+        { last_token_type = token_type::begin_array; break; }
+basic_json_parser_21:
+        ++m_cursor;
+        { last_token_type = token_type::end_array; break; }
+basic_json_parser_23:
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych == 'a') goto basic_json_parser_45;
+        goto basic_json_parser_5;
+basic_json_parser_24:
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych == 'u') goto basic_json_parser_46;
+        goto basic_json_parser_5;
+basic_json_parser_25:
+        yyaccept = 0;
+        yych = *(m_marker = ++m_cursor);
+        if (yych == 'r') goto basic_json_parser_47;
+        goto basic_json_parser_5;
+basic_json_parser_26:
+        ++m_cursor;
+        { last_token_type = token_type::begin_object; break; }
+basic_json_parser_28:
+        ++m_cursor;
+        { last_token_type = token_type::end_object; break; }
+basic_json_parser_30:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+basic_json_parser_31:
+        if (yybm[0+yych] & 128) {
+            goto basic_json_parser_30;
+        }
+        if (yych <= 0xE0) {
+            if (yych <= '\\') {
+                if (yych <= 0x1F) goto basic_json_parser_32;
+                if (yych <= '"') goto basic_json_parser_33;
+                goto basic_json_parser_35;
+            } else {
+                if (yych <= 0xC1) goto basic_json_parser_32;
+                if (yych <= 0xDF) goto basic_json_parser_36;
+                goto basic_json_parser_37;
+            }
+        } else {
+            if (yych <= 0xEF) {
+                if (yych == 0xED) goto basic_json_parser_39;
+                goto basic_json_parser_38;
+            } else {
+                if (yych <= 0xF0) goto basic_json_parser_40;
+                if (yych <= 0xF3) goto basic_json_parser_41;
+                if (yych <= 0xF4) goto basic_json_parser_42;
+            }
+        }
+basic_json_parser_32:
+        m_cursor = m_marker;
+        if (yyaccept == 0) {
+            goto basic_json_parser_5;
+        } else {
+            goto basic_json_parser_14;
+        }
+basic_json_parser_33:
+        ++m_cursor;
+        { last_token_type = token_type::value_string; break; }
+basic_json_parser_35:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 'e') {
+            if (yych <= '/') {
+                if (yych == '"') goto basic_json_parser_30;
+                if (yych <= '.') goto basic_json_parser_32;
+                goto basic_json_parser_30;
+            } else {
+                if (yych <= '\\') {
+                    if (yych <= '[') goto basic_json_parser_32;
+                    goto basic_json_parser_30;
+                } else {
+                    if (yych == 'b') goto basic_json_parser_30;
+                    goto basic_json_parser_32;
+                }
+            }
+        } else {
+            if (yych <= 'q') {
+                if (yych <= 'f') goto basic_json_parser_30;
+                if (yych == 'n') goto basic_json_parser_30;
+                goto basic_json_parser_32;
+            } else {
+                if (yych <= 's') {
+                    if (yych <= 'r') goto basic_json_parser_30;
+                    goto basic_json_parser_32;
+                } else {
+                    if (yych <= 't') goto basic_json_parser_30;
+                    if (yych <= 'u') goto basic_json_parser_48;
+                    goto basic_json_parser_32;
+                }
+            }
+        }
+basic_json_parser_36:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_30;
+        goto basic_json_parser_32;
+basic_json_parser_37:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x9F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_36;
+        goto basic_json_parser_32;
+basic_json_parser_38:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_36;
+        goto basic_json_parser_32;
+basic_json_parser_39:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0x9F) goto basic_json_parser_36;
+        goto basic_json_parser_32;
+basic_json_parser_40:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x8F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_38;
+        goto basic_json_parser_32;
+basic_json_parser_41:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0xBF) goto basic_json_parser_38;
+        goto basic_json_parser_32;
+basic_json_parser_42:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 0x7F) goto basic_json_parser_32;
+        if (yych <= 0x8F) goto basic_json_parser_38;
+        goto basic_json_parser_32;
+basic_json_parser_43:
+        yych = *++m_cursor;
+        if (yych <= '/') goto basic_json_parser_32;
+        if (yych <= '9') goto basic_json_parser_49;
+        goto basic_json_parser_32;
+basic_json_parser_44:
+        yych = *++m_cursor;
+        if (yych <= ',') {
+            if (yych == '+') goto basic_json_parser_51;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= '-') goto basic_json_parser_51;
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_52;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_45:
+        yych = *++m_cursor;
+        if (yych == 'l') goto basic_json_parser_54;
+        goto basic_json_parser_32;
+basic_json_parser_46:
+        yych = *++m_cursor;
+        if (yych == 'l') goto basic_json_parser_55;
+        goto basic_json_parser_32;
+basic_json_parser_47:
+        yych = *++m_cursor;
+        if (yych == 'u') goto basic_json_parser_56;
+        goto basic_json_parser_32;
+basic_json_parser_48:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_57;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_57;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_57;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_49:
+        yyaccept = 1;
+        m_marker = ++m_cursor;
+        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= 'D') {
+            if (yych <= '/') goto basic_json_parser_14;
+            if (yych <= '9') goto basic_json_parser_49;
+            goto basic_json_parser_14;
+        } else {
+            if (yych <= 'E') goto basic_json_parser_44;
+            if (yych == 'e') goto basic_json_parser_44;
+            goto basic_json_parser_14;
+        }
+basic_json_parser_51:
+        yych = *++m_cursor;
+        if (yych <= '/') goto basic_json_parser_32;
+        if (yych >= ':') goto basic_json_parser_32;
+basic_json_parser_52:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '/') goto basic_json_parser_14;
+        if (yych <= '9') goto basic_json_parser_52;
+        goto basic_json_parser_14;
+basic_json_parser_54:
+        yych = *++m_cursor;
+        if (yych == 's') goto basic_json_parser_58;
+        goto basic_json_parser_32;
+basic_json_parser_55:
+        yych = *++m_cursor;
+        if (yych == 'l') goto basic_json_parser_59;
+        goto basic_json_parser_32;
+basic_json_parser_56:
+        yych = *++m_cursor;
+        if (yych == 'e') goto basic_json_parser_61;
+        goto basic_json_parser_32;
+basic_json_parser_57:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_63;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_63;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_63;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_58:
+        yych = *++m_cursor;
+        if (yych == 'e') goto basic_json_parser_64;
+        goto basic_json_parser_32;
+basic_json_parser_59:
+        ++m_cursor;
+        { last_token_type = token_type::literal_null; break; }
+basic_json_parser_61:
+        ++m_cursor;
+        { last_token_type = token_type::literal_true; break; }
+basic_json_parser_63:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_66;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_66;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_66;
+            goto basic_json_parser_32;
+        }
+basic_json_parser_64:
+        ++m_cursor;
+        { last_token_type = token_type::literal_false; break; }
+basic_json_parser_66:
+        ++m_cursor;
+        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
+        yych = *m_cursor;
+        if (yych <= '@') {
+            if (yych <= '/') goto basic_json_parser_32;
+            if (yych <= '9') goto basic_json_parser_30;
+            goto basic_json_parser_32;
+        } else {
+            if (yych <= 'F') goto basic_json_parser_30;
+            if (yych <= '`') goto basic_json_parser_32;
+            if (yych <= 'f') goto basic_json_parser_30;
+            goto basic_json_parser_32;
+        }
+    }
 
             }
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index c47b321c..cb4f3ad1 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -377,27 +377,27 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
         typename CompatibleObjectType::mapped_type>::value;
 };
 
-template<class BasicJson, class CompatibleObjectType>
+template<class Json, class CompatibleObjectType>
 struct is_compatible_object_type
 {
     static auto constexpr value = is_compatible_object_type_impl <
                                   conjunction<negation<std::is_same<void, CompatibleObjectType>>,
                                   has_mapped_type<CompatibleObjectType>,
                                   has_key_type<CompatibleObjectType>>::value,
-                                  typename BasicJson::object_t, CompatibleObjectType >::value;
+                                  typename Json::object_t, CompatibleObjectType >::value;
 };
 
-template <typename BasicJson, typename T>
+template <typename Json, typename T>
 struct is_basic_json_nested_type
 {
-    static auto constexpr value = std::is_same<T, typename BasicJson::iterator>::value or
-                                  std::is_same<T, typename BasicJson::const_iterator>::value or
-                                  std::is_same<T, typename BasicJson::reverse_iterator>::value or
-                                  std::is_same<T, typename BasicJson::const_reverse_iterator>::value or
-                                  std::is_same<T, typename BasicJson::json_pointer>::value;
+    static auto constexpr value = std::is_same<T, typename Json::iterator>::value or
+                                  std::is_same<T, typename Json::const_iterator>::value or
+                                  std::is_same<T, typename Json::reverse_iterator>::value or
+                                  std::is_same<T, typename Json::const_reverse_iterator>::value or
+                                  std::is_same<T, typename Json::json_pointer>::value;
 };
 
-template <class BasicJson, class CompatibleArrayType>
+template <class Json, class CompatibleArrayType>
 struct is_compatible_array_type
 {
     // TODO concept Container?
@@ -405,10 +405,10 @@ struct is_compatible_array_type
     static auto constexpr value =
         conjunction<negation<std::is_same<void, CompatibleArrayType>>,
         negation<is_compatible_object_type<
-        BasicJson, CompatibleArrayType>>,
-        negation<std::is_constructible<typename BasicJson::string_t,
+        Json, CompatibleArrayType>>,
+        negation<std::is_constructible<typename Json::string_t,
         CompatibleArrayType>>,
-        negation<is_basic_json_nested_type<BasicJson, CompatibleArrayType>>,
+        negation<is_basic_json_nested_type<Json, CompatibleArrayType>>,
         has_value_type<CompatibleArrayType>,
         has_iterator<CompatibleArrayType>>::value;
 };

From 708eb9613b24422848b2bee92425fcaf3fc11d31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 21 Jan 2017 16:35:23 +0100
Subject: [PATCH 118/174] disable reserve tests when exceptions are disabled

---
 test/src/unit-conversions.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp
index 3c4d8bef..994f882d 100644
--- a/test/src/unit-conversions.cpp
+++ b/test/src/unit-conversions.cpp
@@ -175,6 +175,7 @@ TEST_CASE("value conversion")
             CHECK_THROWS_WITH(json(json::value_t::null).get<std::vector<json>>(),
                               "type must be array, but is null");
 
+#if not defined(JSON_NOEXCEPTION)
             SECTION("reserve is called on containers that supports it")
             {
                 // making the call to from_json throw in order to check capacity
@@ -182,6 +183,7 @@ TEST_CASE("value conversion")
                 CHECK_THROWS_AS(nlohmann::from_json(j, v), std::logic_error);
                 CHECK(v.capacity() == j.size());
             }
+#endif
         }
 
         SECTION("std::deque<json>")

From 7f359017d2d0da0138cfeafa9bfc2c5e0e892cea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 21 Jan 2017 16:41:14 +0100
Subject: [PATCH 119/174] rename template argument Json -> BasicJsonType

---
 src/json.hpp          | 1536 +++++++++++++++++++++++++++--------------
 src/json.hpp.re2c     |  294 ++++----
 test/src/unit-udt.cpp |   58 +-
 3 files changed, 1183 insertions(+), 705 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index e9a6c80b..2524a694 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -187,7 +187,7 @@ struct conjunction<B1, Bn...>
 
 template <class B> struct negation : std::integral_constant < bool, !B::value > {};
 
-template <typename Json> std::string type_name(const  Json& j)
+template <typename BasicJsonType> std::string type_name(const  BasicJsonType& j)
 {
     switch (j.m_type)
     {
@@ -220,8 +220,8 @@ template <value_t> struct external_constructor;
 template <>
 struct external_constructor<value_t::boolean>
 {
-    template <typename Json>
-    static void construct(Json& j, typename Json::boolean_t b) noexcept
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept
     {
         j.m_type = value_t::boolean;
         j.m_value = b;
@@ -232,8 +232,8 @@ struct external_constructor<value_t::boolean>
 template <>
 struct external_constructor<value_t::string>
 {
-    template <typename Json>
-    static void construct(Json& j, const typename Json::string_t& s)
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s)
     {
         j.m_type = value_t::string;
         j.m_value = s;
@@ -244,12 +244,12 @@ struct external_constructor<value_t::string>
 template <>
 struct external_constructor<value_t::number_float>
 {
-    template <typename Json>
-    static void construct(Json& j, typename Json::number_float_t val) noexcept
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept
     {
         // replace infinity and NAN by null
         if (not std::isfinite(val))
-            j = Json{};
+            j = BasicJsonType{};
         else
         {
             j.m_type = value_t::number_float;
@@ -262,8 +262,8 @@ struct external_constructor<value_t::number_float>
 template <>
 struct external_constructor<value_t::number_unsigned>
 {
-    template <typename Json>
-    static void construct(Json& j, typename Json::number_unsigned_t val) noexcept
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept
     {
         j.m_type = value_t::number_unsigned;
         j.m_value = val;
@@ -274,8 +274,8 @@ struct external_constructor<value_t::number_unsigned>
 template <>
 struct external_constructor<value_t::number_integer>
 {
-    template <typename Json>
-    static void construct(Json& j, typename Json::number_integer_t val) noexcept
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept
     {
         j.m_type = value_t::number_integer;
         j.m_value = val;
@@ -286,25 +286,25 @@ struct external_constructor<value_t::number_integer>
 template <>
 struct external_constructor<value_t::array>
 {
-    template <typename Json>
-    static void construct(Json& j, const typename Json::array_t& arr)
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr)
     {
         j.m_type = value_t::array;
         j.m_value = arr;
         j.assert_invariant();
     }
 
-    template <typename Json, typename CompatibleArrayType,
+    template <typename BasicJsonType, typename CompatibleArrayType,
               enable_if_t<not std::is_same<CompatibleArrayType,
-                                           typename Json::array_t>::value,
+                                           typename BasicJsonType::array_t>::value,
                           int> = 0>
-    static void construct(Json& j, const CompatibleArrayType& arr)
+    static void construct(BasicJsonType& j, const CompatibleArrayType& arr)
     {
         using std::begin;
         using std::end;
         j.m_type = value_t::array;
         j.m_value.array =
-            j.template create<typename Json::array_t>(begin(arr), end(arr));
+            j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr));
         j.assert_invariant();
     }
 };
@@ -312,26 +312,26 @@ struct external_constructor<value_t::array>
 template <>
 struct external_constructor<value_t::object>
 {
-    template <typename Json>
-    static void construct(Json& j, const typename Json::object_t& obj)
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj)
     {
         j.m_type = value_t::object;
         j.m_value = obj;
         j.assert_invariant();
     }
 
-    template <typename Json, typename CompatibleObjectType,
+    template <typename BasicJsonType, typename CompatibleObjectType,
               enable_if_t<not std::is_same<CompatibleObjectType,
-                                           typename Json::object_t>::value,
+                                           typename BasicJsonType::object_t>::value,
                           int> = 0>
-    static void construct(Json& j, const CompatibleObjectType& obj)
+    static void construct(BasicJsonType& j, const CompatibleObjectType& obj)
     {
         using std::begin;
         using std::end;
 
         j.m_type = value_t::object;
         j.m_value.object =
-            j.template create<typename Json::object_t>(begin(obj), end(obj));
+            j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj));
         j.assert_invariant();
     }
 };
@@ -377,27 +377,27 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
         typename CompatibleObjectType::mapped_type>::value;
 };
 
-template<class Json, class CompatibleObjectType>
+template<class BasicJsonType, class CompatibleObjectType>
 struct is_compatible_object_type
 {
     static auto constexpr value = is_compatible_object_type_impl <
                                   conjunction<negation<std::is_same<void, CompatibleObjectType>>,
                                   has_mapped_type<CompatibleObjectType>,
                                   has_key_type<CompatibleObjectType>>::value,
-                                  typename Json::object_t, CompatibleObjectType >::value;
+                                  typename BasicJsonType::object_t, CompatibleObjectType >::value;
 };
 
-template <typename Json, typename T>
+template <typename BasicJsonType, typename T>
 struct is_basic_json_nested_type
 {
-    static auto constexpr value = std::is_same<T, typename Json::iterator>::value or
-                                  std::is_same<T, typename Json::const_iterator>::value or
-                                  std::is_same<T, typename Json::reverse_iterator>::value or
-                                  std::is_same<T, typename Json::const_reverse_iterator>::value or
-                                  std::is_same<T, typename Json::json_pointer>::value;
+    static auto constexpr value = std::is_same<T, typename BasicJsonType::iterator>::value or
+                                  std::is_same<T, typename BasicJsonType::const_iterator>::value or
+                                  std::is_same<T, typename BasicJsonType::reverse_iterator>::value or
+                                  std::is_same<T, typename BasicJsonType::const_reverse_iterator>::value or
+                                  std::is_same<T, typename BasicJsonType::json_pointer>::value;
 };
 
-template <class Json, class CompatibleArrayType>
+template <class BasicJsonType, class CompatibleArrayType>
 struct is_compatible_array_type
 {
     // TODO concept Container?
@@ -405,10 +405,10 @@ struct is_compatible_array_type
     static auto constexpr value =
         conjunction<negation<std::is_same<void, CompatibleArrayType>>,
         negation<is_compatible_object_type<
-        Json, CompatibleArrayType>>,
-        negation<std::is_constructible<typename Json::string_t,
+        BasicJsonType, CompatibleArrayType>>,
+        negation<std::is_constructible<typename BasicJsonType::string_t,
         CompatibleArrayType>>,
-        negation<is_basic_json_nested_type<Json, CompatibleArrayType>>,
+        negation<is_basic_json_nested_type<BasicJsonType, CompatibleArrayType>>,
         has_value_type<CompatibleArrayType>,
         has_iterator<CompatibleArrayType>>::value;
 };
@@ -441,76 +441,76 @@ struct is_compatible_integer_type
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
-template <typename Json, typename T>
+template <typename BasicJsonType, typename T>
 struct has_from_json
 {
   private:
     // also check the return type of from_json
     template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
-                  std::declval<Json>(), std::declval<T&>()))>::value>>
+                  std::declval<BasicJsonType>(), std::declval<T&>()))>::value>>
     static int detect(U&&);
     static void detect(...);
 
   public:
     static constexpr bool value = std::is_integral<decltype(
-                                      detect(std::declval<typename Json::template json_serializer<T, void>>()))>::value;
+                                      detect(std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value;
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&) exists
 // this overload is used for non-default-constructible user-defined-types
-template <typename Json, typename T>
+template <typename BasicJsonType, typename T>
 struct has_non_default_from_json
 {
   private:
     template <
         typename U,
         typename = enable_if_t<std::is_same<
-                                   T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value >>
+                                   T, decltype(uncvref_t<U>::from_json(std::declval<BasicJsonType>()))>::value >>
     static int detect(U&&);
     static void detect(...);
 
   public:
     static constexpr bool value = std::is_integral<decltype(detect(
-                                      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
+                                      std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value;
 };
 
-// This trait checks if Json::json_serializer<T>::to_json exists
-template <typename Json, typename T>
+// This trait checks if BasicJsonType::json_serializer<T>::to_json exists
+template <typename BasicJsonType, typename T>
 struct has_to_json
 {
   private:
     template <typename U, typename = decltype(uncvref_t<U>::to_json(
-                  std::declval<Json&>(), std::declval<T>()))>
+                  std::declval<BasicJsonType&>(), std::declval<T>()))>
     static int detect(U&&);
     static void detect(...);
 
   public:
     static constexpr bool value = std::is_integral<decltype(detect(
-                                      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
+                                      std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value;
 };
 
 // overloads for basic_json template parameters
 
-template <typename Json, typename ArithmeticType,
+template <typename BasicJsonType, typename ArithmeticType,
           enable_if_t<std::is_arithmetic<ArithmeticType>::value and
                       not std::is_same<ArithmeticType,
-                                       typename Json::boolean_t>::value,
+                                       typename BasicJsonType::boolean_t>::value,
                       int> = 0>
-void get_arithmetic_value(const  Json& j, ArithmeticType& val)
+void get_arithmetic_value(const  BasicJsonType& j, ArithmeticType& val)
 {
     switch (static_cast<value_t>(j))
     {
         case value_t::number_unsigned:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_unsigned_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
             break;
         case value_t::number_integer:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_integer_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
             break;
         case value_t::number_float:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_float_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_float_t*>());
             break;
         default:
             JSON_THROW(
@@ -518,136 +518,136 @@ void get_arithmetic_value(const  Json& j, ArithmeticType& val)
     }
 }
 
-template <typename Json>
-void to_json(Json& j, typename Json::boolean_t b) noexcept
+template <typename BasicJsonType>
+void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept
 {
     external_constructor<value_t::boolean>::construct(j, b);
 }
 
-template <typename Json, typename CompatibleString,
-          enable_if_t<std::is_constructible<typename Json::string_t,
+template <typename BasicJsonType, typename CompatibleString,
+          enable_if_t<std::is_constructible<typename BasicJsonType::string_t,
                       CompatibleString>::value,
                       int> = 0>
-void to_json(Json& j, const CompatibleString& s)
+void to_json(BasicJsonType& j, const CompatibleString& s)
 {
     external_constructor<value_t::string>::construct(j, s);
 }
 
-template <typename Json, typename FloatType,
+template <typename BasicJsonType, typename FloatType,
           enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
-void to_json(Json& j, FloatType val) noexcept
+void to_json(BasicJsonType& j, FloatType val) noexcept
 {
-    external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val));
+    external_constructor<value_t::number_float>::construct(j, static_cast<typename BasicJsonType::number_float_t>(val));
 }
 
 
 template <
-    typename Json, typename CompatibleNumberUnsignedType,
-    enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t,
+    typename BasicJsonType, typename CompatibleNumberUnsignedType,
+    enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t,
                 CompatibleNumberUnsignedType>::value,
                 int> = 0 >
-void to_json(Json& j, CompatibleNumberUnsignedType val) noexcept
+void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
 {
-    external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val));
+    external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename BasicJsonType::number_unsigned_t>(val));
 }
 
 template <
-    typename Json, typename CompatibleNumberIntegerType,
-    enable_if_t<is_compatible_integer_type<typename Json::number_integer_t,
+    typename BasicJsonType, typename CompatibleNumberIntegerType,
+    enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_integer_t,
                 CompatibleNumberIntegerType>::value,
                 int> = 0 >
-void to_json(Json& j, CompatibleNumberIntegerType val) noexcept
+void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
 {
-    external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val));
+    external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val));
 }
 
-template <typename Json, typename UnscopedEnumType,
+template <typename BasicJsonType, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void to_json(Json& j, UnscopedEnumType e) noexcept
+void to_json(BasicJsonType& j, UnscopedEnumType e) noexcept
 {
     external_constructor<value_t::number_integer>::construct(j, e);
 }
 
 template <
-    typename Json, typename CompatibleArrayType,
+    typename BasicJsonType, typename CompatibleArrayType,
     enable_if_t <
-        is_compatible_array_type<Json, CompatibleArrayType>::value or
-        std::is_same<typename Json::array_t, CompatibleArrayType>::value,
+        is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value or
+        std::is_same<typename BasicJsonType::array_t, CompatibleArrayType>::value,
         int > = 0 >
-void to_json(Json& j, const  CompatibleArrayType& arr)
+void to_json(BasicJsonType& j, const  CompatibleArrayType& arr)
 {
     external_constructor<value_t::array>::construct(j, arr);
 }
 
 template <
-    typename Json, typename CompatibleObjectType,
-    enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
+    typename BasicJsonType, typename CompatibleObjectType,
+    enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value,
                 int> = 0 >
-void to_json(Json& j, const  CompatibleObjectType& arr)
+void to_json(BasicJsonType& j, const  CompatibleObjectType& arr)
 {
     external_constructor<value_t::object>::construct(j, arr);
 }
 
-template <typename Json>
-void from_json(const Json& j, typename Json::boolean_t& b)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
 {
     if (!j.is_boolean())
     {
         JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j)));
     }
-    b = *j.template get_ptr<const typename Json::boolean_t*>();
+    b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>();
 }
 
-template <typename Json>
-void from_json(const Json& j, typename Json::string_t& s)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)
 {
     if (!j.is_string())
     {
         JSON_THROW(std::domain_error("type must be string, but is " + type_name(j)));
     }
-    s = *j.template get_ptr<const typename Json::string_t*>();
+    s = *j.template get_ptr<const typename BasicJsonType::string_t*>();
 }
 
-template <typename Json>
-void from_json(const Json& j, typename Json::number_float_t& val)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename Json>
-void from_json(const Json& j, typename Json::number_unsigned_t& val)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename Json>
-void from_json(const Json& j, typename Json::number_integer_t& val)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename Json, typename UnscopedEnumType,
+template <typename BasicJsonType, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void from_json(const  Json& j, UnscopedEnumType& e)
+void from_json(const  BasicJsonType& j, UnscopedEnumType& e)
 {
     typename std::underlying_type<UnscopedEnumType>::type val = e;
     get_arithmetic_value(j, val);
     e = static_cast<UnscopedEnumType>(val);
 }
 
-template <typename Json>
-void from_json(const  Json& j, typename Json::array_t& arr)
+template <typename BasicJsonType>
+void from_json(const  BasicJsonType& j, typename BasicJsonType::array_t& arr)
 {
     if (!j.is_array())
     {
         JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
-    arr = *j.template get_ptr<const typename Json::array_t*>();
+    arr = *j.template get_ptr<const typename BasicJsonType::array_t*>();
 }
 
 // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
-template <typename Json, typename T, typename Allocator>
-void from_json(const Json& j, std::forward_list<T, Allocator>& l)
+template <typename BasicJsonType, typename T, typename Allocator>
+void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
 {
     // do not perform the check when user wants to retrieve jsons
     // (except when it's null.. ?)
@@ -655,7 +655,7 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l)
     {
         JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
-    if (not std::is_same<T, Json>::value)
+    if (not std::is_same<T, BasicJsonType>::value)
     {
         if (!j.is_array())
         {
@@ -668,23 +668,23 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l)
     }
 }
 
-template <typename Json, typename CompatibleArrayType>
-void from_json_array_impl(const  Json& j, CompatibleArrayType& arr, priority_tag<0>)
+template <typename BasicJsonType, typename CompatibleArrayType>
+void from_json_array_impl(const  BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>)
 {
     using std::begin;
     using std::end;
 
     std::transform(
-        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json & i)
+        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  BasicJsonType & i)
     {
-        // get<Json>() returns *this, this won't call a from_json method when
-        // value_type is Json
+        // get<BasicJsonType>() returns *this, this won't call a from_json method when
+        // value_type is BasicJsonType
         return i.template get<typename CompatibleArrayType::value_type>();
     });
 }
 
-template <typename Json, typename CompatibleArrayType>
-auto from_json_array_impl(const  Json& j, CompatibleArrayType& arr, priority_tag<1>)
+template <typename BasicJsonType, typename CompatibleArrayType>
+auto from_json_array_impl(const  BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>)
 -> decltype(
     arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
     void())
@@ -694,28 +694,28 @@ auto from_json_array_impl(const  Json& j, CompatibleArrayType& arr, priority_tag
 
     arr.reserve(j.size());
     std::transform(
-        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json & i)
+        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  BasicJsonType & i)
     {
-        // get<Json>() returns *this, this won't call a from_json method when
-        // value_type is Json
+        // get<BasicJsonType>() returns *this, this won't call a from_json method when
+        // value_type is BasicJsonType
         return i.template get<typename CompatibleArrayType::value_type>();
     });
 }
 
 template <
-    typename Json, typename CompatibleArrayType,
-    enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and
-                not std::is_same<typename Json::array_t,
+    typename BasicJsonType, typename CompatibleArrayType,
+    enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and
+                not std::is_same<typename BasicJsonType::array_t,
                                  CompatibleArrayType>::value,
                 int> = 0 >
-void from_json(const  Json& j, CompatibleArrayType& arr)
+void from_json(const  BasicJsonType& j, CompatibleArrayType& arr)
 {
     if (j.is_null())
     {
         JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
-    // when T == Json, do not check if value_t is correct
-    if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
+    // when T == BasicJsonType, do not check if value_t is correct
+    if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value)
     {
         if (!j.is_array())
         {
@@ -727,17 +727,17 @@ void from_json(const  Json& j, CompatibleArrayType& arr)
 
 
 template <
-    typename Json, typename CompatibleObjectType,
-    enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
+    typename BasicJsonType, typename CompatibleObjectType,
+    enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value,
                 int> = 0 >
-void from_json(const  Json& j, CompatibleObjectType& obj)
+void from_json(const  BasicJsonType& j, CompatibleObjectType& obj)
 {
     if (!j.is_object())
     {
         JSON_THROW(std::domain_error("type must be object, but is " + type_name(j)));
     }
 
-    auto inner_object = j.template get_ptr<const typename Json::object_t*>();
+    auto inner_object = j.template get_ptr<const typename BasicJsonType::object_t*>();
     using std::begin;
     using std::end;
     // we could avoid the assignment, but this might require a for loop, which
@@ -750,36 +750,36 @@ void from_json(const  Json& j, CompatibleObjectType& obj)
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
 // in case of a custom BooleanType which is not an arithmetic type?
 template <
-    typename Json, typename ArithmeticType,
+    typename BasicJsonType, typename ArithmeticType,
     enable_if_t <
         std::is_arithmetic<ArithmeticType>::value and
         not std::is_same<ArithmeticType,
-                         typename Json::number_unsigned_t>::value and
+                         typename BasicJsonType::number_unsigned_t>::value and
         not std::is_same<ArithmeticType,
-                         typename Json::number_integer_t>::value and
+                         typename BasicJsonType::number_integer_t>::value and
         not std::is_same<ArithmeticType,
-                         typename Json::number_float_t>::value and
-        not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
+                         typename BasicJsonType::number_float_t>::value and
+        not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value,
         int > = 0 >
-void from_json(const Json& j, ArithmeticType& val)
+void from_json(const BasicJsonType& j, ArithmeticType& val)
 {
     switch (static_cast<value_t>(j))
     {
         case value_t::number_unsigned:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_unsigned_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
             break;
         case value_t::number_integer:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_integer_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
             break;
         case value_t::number_float:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_float_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_float_t*>());
             break;
         case value_t::boolean:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::boolean_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::boolean_t*>());
             break;
         default:
             JSON_THROW(
@@ -789,8 +789,8 @@ void from_json(const Json& j, ArithmeticType& val)
 
 struct to_json_fn
 {
-    template <typename Json, typename T>
-    auto call(Json& j, T&& val, priority_tag<1>) const
+    template <typename BasicJsonType, typename T>
+    auto call(BasicJsonType& j, T&& val, priority_tag<1>) const
     noexcept(noexcept(to_json(j, std::forward<T>(val))))
     -> decltype(to_json(j, std::forward<T>(val)),
                 void())
@@ -798,15 +798,15 @@ struct to_json_fn
         return to_json(j, std::forward<T>(val));
     }
 
-    template <typename Json, typename T>
-    void call(Json&, T&&, priority_tag<0>) const noexcept
+    template <typename BasicJsonType, typename T>
+    void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept
     {
-        static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called");
+        static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called");
     }
 
   public:
-    template <typename Json, typename T>
-    void operator()(Json& j, T&& val) const
+    template <typename BasicJsonType, typename T>
+    void operator()(BasicJsonType& j, T&& val) const
     noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {})))
     {
         return call(j, std::forward<T>(val), priority_tag<1> {});
@@ -816,23 +816,23 @@ struct to_json_fn
 struct from_json_fn
 {
   private:
-    template <typename Json, typename T>
-    auto call(const  Json& j, T& val, priority_tag<1>) const
+    template <typename BasicJsonType, typename T>
+    auto call(const  BasicJsonType& j, T& val, priority_tag<1>) const
     noexcept(noexcept(from_json(j, val)))
     -> decltype(from_json(j, val), void())
     {
         return from_json(j, val);
     }
 
-    template <typename Json, typename T>
-    void call(const Json&, T&, priority_tag<0>) const noexcept
+    template <typename BasicJsonType, typename T>
+    void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept
     {
-        static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called");
+        static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called");
     }
 
   public:
-    template <typename Json, typename T>
-    void operator()(const  Json& j, T& val) const
+    template <typename BasicJsonType, typename T>
+    void operator()(const  BasicJsonType& j, T& val) const
     noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {})))
     {
         return call(j, val, priority_tag<1> {});
@@ -881,14 +881,14 @@ constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::va
 template <typename = void, typename = void>
 struct adl_serializer
 {
-    template <typename Json, typename T>
-    static void from_json(Json&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<Json>(j), val)))
+    template <typename BasicJsonType, typename T>
+    static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))
     {
-        ::nlohmann::from_json(std::forward<Json>(j), val);
+        ::nlohmann::from_json(std::forward<BasicJsonType>(j), val);
     }
 
-    template <typename Json, typename T>
-    static void to_json(Json& j, T&& val) noexcept(
+    template <typename BasicJsonType, typename T>
+    static void to_json(BasicJsonType& j, T&& val) noexcept(
         noexcept(::nlohmann::to_json(j, std::forward<T>(val))))
     {
         ::nlohmann::to_json(j, std::forward<T>(val));
@@ -989,7 +989,7 @@ class basic_json
 {
   private:
     template <::nlohmann::value_t> friend struct detail::external_constructor;
-    template <typename Json> friend std::string detail::type_name(const  Json&);
+    template <typename BasicJsonType> friend std::string detail::type_name(const  BasicJsonType&);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -9468,437 +9468,915 @@ class basic_json
                 m_start = m_cursor;
                 assert(m_start != nullptr);
 
-                
-    {
-        lexer_char_t yych;
-        unsigned int yyaccept = 0;
-        static const unsigned char yybm[] = {
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,  32,  32,   0,   0,  32,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-            160, 128,   0, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            192, 192, 192, 192, 192, 192, 192, 192, 
-            192, 192, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128,   0, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-            128, 128, 128, 128, 128, 128, 128, 128, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-              0,   0,   0,   0,   0,   0,   0,   0, 
-        };
-        if ((m_limit - m_cursor) < 5) fill_line_buffer(5); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yybm[0+yych] & 32) {
-            goto basic_json_parser_6;
-        }
-        if (yych <= '[') {
-            if (yych <= '-') {
-                if (yych <= '"') {
-                    if (yych <= 0x00) goto basic_json_parser_2;
-                    if (yych <= '!') goto basic_json_parser_4;
-                    goto basic_json_parser_9;
-                } else {
-                    if (yych <= '+') goto basic_json_parser_4;
-                    if (yych <= ',') goto basic_json_parser_10;
-                    goto basic_json_parser_12;
-                }
-            } else {
-                if (yych <= '9') {
-                    if (yych <= '/') goto basic_json_parser_4;
-                    if (yych <= '0') goto basic_json_parser_13;
-                    goto basic_json_parser_15;
-                } else {
-                    if (yych <= ':') goto basic_json_parser_17;
-                    if (yych <= 'Z') goto basic_json_parser_4;
-                    goto basic_json_parser_19;
-                }
-            }
-        } else {
-            if (yych <= 'n') {
-                if (yych <= 'e') {
-                    if (yych == ']') goto basic_json_parser_21;
-                    goto basic_json_parser_4;
-                } else {
-                    if (yych <= 'f') goto basic_json_parser_23;
-                    if (yych <= 'm') goto basic_json_parser_4;
-                    goto basic_json_parser_24;
-                }
-            } else {
-                if (yych <= 'z') {
-                    if (yych == 't') goto basic_json_parser_25;
-                    goto basic_json_parser_4;
-                } else {
-                    if (yych <= '{') goto basic_json_parser_26;
-                    if (yych == '}') goto basic_json_parser_28;
-                    goto basic_json_parser_4;
-                }
-            }
-        }
+
+                {
+                    lexer_char_t yych;
+                    unsigned int yyaccept = 0;
+                    static const unsigned char yybm[] =
+                    {
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,  32,  32,   0,   0,  32,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        160, 128,   0, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        192, 192, 192, 192, 192, 192, 192, 192,
+                        192, 192, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128,   0, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        128, 128, 128, 128, 128, 128, 128, 128,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                        0,   0,   0,   0,   0,   0,   0,   0,
+                    };
+                    if ((m_limit - m_cursor) < 5)
+                    {
+                        fill_line_buffer(5);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yybm[0 + yych] & 32)
+                    {
+                        goto basic_json_parser_6;
+                    }
+                    if (yych <= '[')
+                    {
+                        if (yych <= '-')
+                        {
+                            if (yych <= '"')
+                            {
+                                if (yych <= 0x00)
+                                {
+                                    goto basic_json_parser_2;
+                                }
+                                if (yych <= '!')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                goto basic_json_parser_9;
+                            }
+                            else
+                            {
+                                if (yych <= '+')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                if (yych <= ',')
+                                {
+                                    goto basic_json_parser_10;
+                                }
+                                goto basic_json_parser_12;
+                            }
+                        }
+                        else
+                        {
+                            if (yych <= '9')
+                            {
+                                if (yych <= '/')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                if (yych <= '0')
+                                {
+                                    goto basic_json_parser_13;
+                                }
+                                goto basic_json_parser_15;
+                            }
+                            else
+                            {
+                                if (yych <= ':')
+                                {
+                                    goto basic_json_parser_17;
+                                }
+                                if (yych <= 'Z')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                goto basic_json_parser_19;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'n')
+                        {
+                            if (yych <= 'e')
+                            {
+                                if (yych == ']')
+                                {
+                                    goto basic_json_parser_21;
+                                }
+                                goto basic_json_parser_4;
+                            }
+                            else
+                            {
+                                if (yych <= 'f')
+                                {
+                                    goto basic_json_parser_23;
+                                }
+                                if (yych <= 'm')
+                                {
+                                    goto basic_json_parser_4;
+                                }
+                                goto basic_json_parser_24;
+                            }
+                        }
+                        else
+                        {
+                            if (yych <= 'z')
+                            {
+                                if (yych == 't')
+                                {
+                                    goto basic_json_parser_25;
+                                }
+                                goto basic_json_parser_4;
+                            }
+                            else
+                            {
+                                if (yych <= '{')
+                                {
+                                    goto basic_json_parser_26;
+                                }
+                                if (yych == '}')
+                                {
+                                    goto basic_json_parser_28;
+                                }
+                                goto basic_json_parser_4;
+                            }
+                        }
+                    }
 basic_json_parser_2:
-        ++m_cursor;
-        { last_token_type = token_type::end_of_input; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::end_of_input;
+                        break;
+                    }
 basic_json_parser_4:
-        ++m_cursor;
+                    ++m_cursor;
 basic_json_parser_5:
-        { last_token_type = token_type::parse_error; break; }
+                    {
+                        last_token_type = token_type::parse_error;
+                        break;
+                    }
 basic_json_parser_6:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yybm[0+yych] & 32) {
-            goto basic_json_parser_6;
-        }
-        { continue; }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yybm[0 + yych] & 32)
+                    {
+                        goto basic_json_parser_6;
+                    }
+                    {
+                        continue;
+                    }
 basic_json_parser_9:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych <= 0x1F) goto basic_json_parser_5;
-        if (yych <= 0x7F) goto basic_json_parser_31;
-        if (yych <= 0xC1) goto basic_json_parser_5;
-        if (yych <= 0xF4) goto basic_json_parser_31;
-        goto basic_json_parser_5;
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych <= 0x1F)
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_31;
+                    }
+                    if (yych <= 0xC1)
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    if (yych <= 0xF4)
+                    {
+                        goto basic_json_parser_31;
+                    }
+                    goto basic_json_parser_5;
 basic_json_parser_10:
-        ++m_cursor;
-        { last_token_type = token_type::value_separator; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::value_separator;
+                        break;
+                    }
 basic_json_parser_12:
-        yych = *++m_cursor;
-        if (yych <= '/') goto basic_json_parser_5;
-        if (yych <= '0') goto basic_json_parser_13;
-        if (yych <= '9') goto basic_json_parser_15;
-        goto basic_json_parser_5;
+                    yych = *++m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    if (yych <= '0')
+                    {
+                        goto basic_json_parser_13;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_15;
+                    }
+                    goto basic_json_parser_5;
 basic_json_parser_13:
-        yyaccept = 1;
-        yych = *(m_marker = ++m_cursor);
-        if (yych <= 'D') {
-            if (yych == '.') goto basic_json_parser_43;
-        } else {
-            if (yych <= 'E') goto basic_json_parser_44;
-            if (yych == 'e') goto basic_json_parser_44;
-        }
+                    yyaccept = 1;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych <= 'D')
+                    {
+                        if (yych == '.')
+                        {
+                            goto basic_json_parser_43;
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        if (yych == 'e')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                    }
 basic_json_parser_14:
-        { last_token_type = token_type::value_number; break; }
+                    {
+                        last_token_type = token_type::value_number;
+                        break;
+                    }
 basic_json_parser_15:
-        yyaccept = 1;
-        m_marker = ++m_cursor;
-        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yybm[0+yych] & 64) {
-            goto basic_json_parser_15;
-        }
-        if (yych <= 'D') {
-            if (yych == '.') goto basic_json_parser_43;
-            goto basic_json_parser_14;
-        } else {
-            if (yych <= 'E') goto basic_json_parser_44;
-            if (yych == 'e') goto basic_json_parser_44;
-            goto basic_json_parser_14;
-        }
+                    yyaccept = 1;
+                    m_marker = ++m_cursor;
+                    if ((m_limit - m_cursor) < 3)
+                    {
+                        fill_line_buffer(3);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yybm[0 + yych] & 64)
+                    {
+                        goto basic_json_parser_15;
+                    }
+                    if (yych <= 'D')
+                    {
+                        if (yych == '.')
+                        {
+                            goto basic_json_parser_43;
+                        }
+                        goto basic_json_parser_14;
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        if (yych == 'e')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        goto basic_json_parser_14;
+                    }
 basic_json_parser_17:
-        ++m_cursor;
-        { last_token_type = token_type::name_separator; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::name_separator;
+                        break;
+                    }
 basic_json_parser_19:
-        ++m_cursor;
-        { last_token_type = token_type::begin_array; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::begin_array;
+                        break;
+                    }
 basic_json_parser_21:
-        ++m_cursor;
-        { last_token_type = token_type::end_array; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::end_array;
+                        break;
+                    }
 basic_json_parser_23:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych == 'a') goto basic_json_parser_45;
-        goto basic_json_parser_5;
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych == 'a')
+                    {
+                        goto basic_json_parser_45;
+                    }
+                    goto basic_json_parser_5;
 basic_json_parser_24:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych == 'u') goto basic_json_parser_46;
-        goto basic_json_parser_5;
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych == 'u')
+                    {
+                        goto basic_json_parser_46;
+                    }
+                    goto basic_json_parser_5;
 basic_json_parser_25:
-        yyaccept = 0;
-        yych = *(m_marker = ++m_cursor);
-        if (yych == 'r') goto basic_json_parser_47;
-        goto basic_json_parser_5;
+                    yyaccept = 0;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych == 'r')
+                    {
+                        goto basic_json_parser_47;
+                    }
+                    goto basic_json_parser_5;
 basic_json_parser_26:
-        ++m_cursor;
-        { last_token_type = token_type::begin_object; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::begin_object;
+                        break;
+                    }
 basic_json_parser_28:
-        ++m_cursor;
-        { last_token_type = token_type::end_object; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::end_object;
+                        break;
+                    }
 basic_json_parser_30:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
 basic_json_parser_31:
-        if (yybm[0+yych] & 128) {
-            goto basic_json_parser_30;
-        }
-        if (yych <= 0xE0) {
-            if (yych <= '\\') {
-                if (yych <= 0x1F) goto basic_json_parser_32;
-                if (yych <= '"') goto basic_json_parser_33;
-                goto basic_json_parser_35;
-            } else {
-                if (yych <= 0xC1) goto basic_json_parser_32;
-                if (yych <= 0xDF) goto basic_json_parser_36;
-                goto basic_json_parser_37;
-            }
-        } else {
-            if (yych <= 0xEF) {
-                if (yych == 0xED) goto basic_json_parser_39;
-                goto basic_json_parser_38;
-            } else {
-                if (yych <= 0xF0) goto basic_json_parser_40;
-                if (yych <= 0xF3) goto basic_json_parser_41;
-                if (yych <= 0xF4) goto basic_json_parser_42;
-            }
-        }
+                    if (yybm[0 + yych] & 128)
+                    {
+                        goto basic_json_parser_30;
+                    }
+                    if (yych <= 0xE0)
+                    {
+                        if (yych <= '\\')
+                        {
+                            if (yych <= 0x1F)
+                            {
+                                goto basic_json_parser_32;
+                            }
+                            if (yych <= '"')
+                            {
+                                goto basic_json_parser_33;
+                            }
+                            goto basic_json_parser_35;
+                        }
+                        else
+                        {
+                            if (yych <= 0xC1)
+                            {
+                                goto basic_json_parser_32;
+                            }
+                            if (yych <= 0xDF)
+                            {
+                                goto basic_json_parser_36;
+                            }
+                            goto basic_json_parser_37;
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 0xEF)
+                        {
+                            if (yych == 0xED)
+                            {
+                                goto basic_json_parser_39;
+                            }
+                            goto basic_json_parser_38;
+                        }
+                        else
+                        {
+                            if (yych <= 0xF0)
+                            {
+                                goto basic_json_parser_40;
+                            }
+                            if (yych <= 0xF3)
+                            {
+                                goto basic_json_parser_41;
+                            }
+                            if (yych <= 0xF4)
+                            {
+                                goto basic_json_parser_42;
+                            }
+                        }
+                    }
 basic_json_parser_32:
-        m_cursor = m_marker;
-        if (yyaccept == 0) {
-            goto basic_json_parser_5;
-        } else {
-            goto basic_json_parser_14;
-        }
+                    m_cursor = m_marker;
+                    if (yyaccept == 0)
+                    {
+                        goto basic_json_parser_5;
+                    }
+                    else
+                    {
+                        goto basic_json_parser_14;
+                    }
 basic_json_parser_33:
-        ++m_cursor;
-        { last_token_type = token_type::value_string; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::value_string;
+                        break;
+                    }
 basic_json_parser_35:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 'e') {
-            if (yych <= '/') {
-                if (yych == '"') goto basic_json_parser_30;
-                if (yych <= '.') goto basic_json_parser_32;
-                goto basic_json_parser_30;
-            } else {
-                if (yych <= '\\') {
-                    if (yych <= '[') goto basic_json_parser_32;
-                    goto basic_json_parser_30;
-                } else {
-                    if (yych == 'b') goto basic_json_parser_30;
-                    goto basic_json_parser_32;
-                }
-            }
-        } else {
-            if (yych <= 'q') {
-                if (yych <= 'f') goto basic_json_parser_30;
-                if (yych == 'n') goto basic_json_parser_30;
-                goto basic_json_parser_32;
-            } else {
-                if (yych <= 's') {
-                    if (yych <= 'r') goto basic_json_parser_30;
-                    goto basic_json_parser_32;
-                } else {
-                    if (yych <= 't') goto basic_json_parser_30;
-                    if (yych <= 'u') goto basic_json_parser_48;
-                    goto basic_json_parser_32;
-                }
-            }
-        }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 'e')
+                    {
+                        if (yych <= '/')
+                        {
+                            if (yych == '"')
+                            {
+                                goto basic_json_parser_30;
+                            }
+                            if (yych <= '.')
+                            {
+                                goto basic_json_parser_32;
+                            }
+                            goto basic_json_parser_30;
+                        }
+                        else
+                        {
+                            if (yych <= '\\')
+                            {
+                                if (yych <= '[')
+                                {
+                                    goto basic_json_parser_32;
+                                }
+                                goto basic_json_parser_30;
+                            }
+                            else
+                            {
+                                if (yych == 'b')
+                                {
+                                    goto basic_json_parser_30;
+                                }
+                                goto basic_json_parser_32;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'q')
+                        {
+                            if (yych <= 'f')
+                            {
+                                goto basic_json_parser_30;
+                            }
+                            if (yych == 'n')
+                            {
+                                goto basic_json_parser_30;
+                            }
+                            goto basic_json_parser_32;
+                        }
+                        else
+                        {
+                            if (yych <= 's')
+                            {
+                                if (yych <= 'r')
+                                {
+                                    goto basic_json_parser_30;
+                                }
+                                goto basic_json_parser_32;
+                            }
+                            else
+                            {
+                                if (yych <= 't')
+                                {
+                                    goto basic_json_parser_30;
+                                }
+                                if (yych <= 'u')
+                                {
+                                    goto basic_json_parser_48;
+                                }
+                                goto basic_json_parser_32;
+                            }
+                        }
+                    }
 basic_json_parser_36:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_30;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_30;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_37:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x9F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_36;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x9F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_36;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_38:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_36;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_36;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_39:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0x9F) goto basic_json_parser_36;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0x9F)
+                    {
+                        goto basic_json_parser_36;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_40:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x8F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_38;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x8F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_41:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0xBF) goto basic_json_parser_38;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0xBF)
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_42:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 0x7F) goto basic_json_parser_32;
-        if (yych <= 0x8F) goto basic_json_parser_38;
-        goto basic_json_parser_32;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 0x7F)
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= 0x8F)
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_43:
-        yych = *++m_cursor;
-        if (yych <= '/') goto basic_json_parser_32;
-        if (yych <= '9') goto basic_json_parser_49;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_49;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_44:
-        yych = *++m_cursor;
-        if (yych <= ',') {
-            if (yych == '+') goto basic_json_parser_51;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= '-') goto basic_json_parser_51;
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_52;
-            goto basic_json_parser_32;
-        }
+                    yych = *++m_cursor;
+                    if (yych <= ',')
+                    {
+                        if (yych == '+')
+                        {
+                            goto basic_json_parser_51;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= '-')
+                        {
+                            goto basic_json_parser_51;
+                        }
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_52;
+                        }
+                        goto basic_json_parser_32;
+                    }
 basic_json_parser_45:
-        yych = *++m_cursor;
-        if (yych == 'l') goto basic_json_parser_54;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'l')
+                    {
+                        goto basic_json_parser_54;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_46:
-        yych = *++m_cursor;
-        if (yych == 'l') goto basic_json_parser_55;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'l')
+                    {
+                        goto basic_json_parser_55;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_47:
-        yych = *++m_cursor;
-        if (yych == 'u') goto basic_json_parser_56;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'u')
+                    {
+                        goto basic_json_parser_56;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_48:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_57;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_57;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_57;
-            goto basic_json_parser_32;
-        }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_57;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_57;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_57;
+                        }
+                        goto basic_json_parser_32;
+                    }
 basic_json_parser_49:
-        yyaccept = 1;
-        m_marker = ++m_cursor;
-        if ((m_limit - m_cursor) < 3) fill_line_buffer(3); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= 'D') {
-            if (yych <= '/') goto basic_json_parser_14;
-            if (yych <= '9') goto basic_json_parser_49;
-            goto basic_json_parser_14;
-        } else {
-            if (yych <= 'E') goto basic_json_parser_44;
-            if (yych == 'e') goto basic_json_parser_44;
-            goto basic_json_parser_14;
-        }
+                    yyaccept = 1;
+                    m_marker = ++m_cursor;
+                    if ((m_limit - m_cursor) < 3)
+                    {
+                        fill_line_buffer(3);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= 'D')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_14;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_49;
+                        }
+                        goto basic_json_parser_14;
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        if (yych == 'e')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        goto basic_json_parser_14;
+                    }
 basic_json_parser_51:
-        yych = *++m_cursor;
-        if (yych <= '/') goto basic_json_parser_32;
-        if (yych >= ':') goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_32;
+                    }
+                    if (yych >= ':')
+                    {
+                        goto basic_json_parser_32;
+                    }
 basic_json_parser_52:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '/') goto basic_json_parser_14;
-        if (yych <= '9') goto basic_json_parser_52;
-        goto basic_json_parser_14;
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_14;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_52;
+                    }
+                    goto basic_json_parser_14;
 basic_json_parser_54:
-        yych = *++m_cursor;
-        if (yych == 's') goto basic_json_parser_58;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 's')
+                    {
+                        goto basic_json_parser_58;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_55:
-        yych = *++m_cursor;
-        if (yych == 'l') goto basic_json_parser_59;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'l')
+                    {
+                        goto basic_json_parser_59;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_56:
-        yych = *++m_cursor;
-        if (yych == 'e') goto basic_json_parser_61;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_61;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_57:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_63;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_63;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_63;
-            goto basic_json_parser_32;
-        }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_63;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_63;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_63;
+                        }
+                        goto basic_json_parser_32;
+                    }
 basic_json_parser_58:
-        yych = *++m_cursor;
-        if (yych == 'e') goto basic_json_parser_64;
-        goto basic_json_parser_32;
+                    yych = *++m_cursor;
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_64;
+                    }
+                    goto basic_json_parser_32;
 basic_json_parser_59:
-        ++m_cursor;
-        { last_token_type = token_type::literal_null; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::literal_null;
+                        break;
+                    }
 basic_json_parser_61:
-        ++m_cursor;
-        { last_token_type = token_type::literal_true; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::literal_true;
+                        break;
+                    }
 basic_json_parser_63:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_66;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_66;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_66;
-            goto basic_json_parser_32;
-        }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_66;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_66;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_66;
+                        }
+                        goto basic_json_parser_32;
+                    }
 basic_json_parser_64:
-        ++m_cursor;
-        { last_token_type = token_type::literal_false; break; }
+                    ++m_cursor;
+                    {
+                        last_token_type = token_type::literal_false;
+                        break;
+                    }
 basic_json_parser_66:
-        ++m_cursor;
-        if (m_limit <= m_cursor) fill_line_buffer(1); // LCOV_EXCL_LINE
-        yych = *m_cursor;
-        if (yych <= '@') {
-            if (yych <= '/') goto basic_json_parser_32;
-            if (yych <= '9') goto basic_json_parser_30;
-            goto basic_json_parser_32;
-        } else {
-            if (yych <= 'F') goto basic_json_parser_30;
-            if (yych <= '`') goto basic_json_parser_32;
-            if (yych <= 'f') goto basic_json_parser_30;
-            goto basic_json_parser_32;
-        }
-    }
+                    ++m_cursor;
+                    if (m_limit <= m_cursor)
+                    {
+                        fill_line_buffer(1);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '@')
+                    {
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= '9')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                    else
+                    {
+                        if (yych <= 'F')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        if (yych <= '`')
+                        {
+                            goto basic_json_parser_32;
+                        }
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_30;
+                        }
+                        goto basic_json_parser_32;
+                    }
+                }
 
             }
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index cb4f3ad1..94b72eb2 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -187,7 +187,7 @@ struct conjunction<B1, Bn...>
 
 template <class B> struct negation : std::integral_constant < bool, !B::value > {};
 
-template <typename Json> std::string type_name(const  Json& j)
+template <typename BasicJsonType> std::string type_name(const  BasicJsonType& j)
 {
     switch (j.m_type)
     {
@@ -220,8 +220,8 @@ template <value_t> struct external_constructor;
 template <>
 struct external_constructor<value_t::boolean>
 {
-    template <typename Json>
-    static void construct(Json& j, typename Json::boolean_t b) noexcept
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept
     {
         j.m_type = value_t::boolean;
         j.m_value = b;
@@ -232,8 +232,8 @@ struct external_constructor<value_t::boolean>
 template <>
 struct external_constructor<value_t::string>
 {
-    template <typename Json>
-    static void construct(Json& j, const typename Json::string_t& s)
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s)
     {
         j.m_type = value_t::string;
         j.m_value = s;
@@ -244,12 +244,12 @@ struct external_constructor<value_t::string>
 template <>
 struct external_constructor<value_t::number_float>
 {
-    template <typename Json>
-    static void construct(Json& j, typename Json::number_float_t val) noexcept
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept
     {
         // replace infinity and NAN by null
         if (not std::isfinite(val))
-            j = Json{};
+            j = BasicJsonType{};
         else
         {
             j.m_type = value_t::number_float;
@@ -262,8 +262,8 @@ struct external_constructor<value_t::number_float>
 template <>
 struct external_constructor<value_t::number_unsigned>
 {
-    template <typename Json>
-    static void construct(Json& j, typename Json::number_unsigned_t val) noexcept
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept
     {
         j.m_type = value_t::number_unsigned;
         j.m_value = val;
@@ -274,8 +274,8 @@ struct external_constructor<value_t::number_unsigned>
 template <>
 struct external_constructor<value_t::number_integer>
 {
-    template <typename Json>
-    static void construct(Json& j, typename Json::number_integer_t val) noexcept
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept
     {
         j.m_type = value_t::number_integer;
         j.m_value = val;
@@ -286,25 +286,25 @@ struct external_constructor<value_t::number_integer>
 template <>
 struct external_constructor<value_t::array>
 {
-    template <typename Json>
-    static void construct(Json& j, const typename Json::array_t& arr)
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr)
     {
         j.m_type = value_t::array;
         j.m_value = arr;
         j.assert_invariant();
     }
 
-    template <typename Json, typename CompatibleArrayType,
+    template <typename BasicJsonType, typename CompatibleArrayType,
               enable_if_t<not std::is_same<CompatibleArrayType,
-                                           typename Json::array_t>::value,
+                                           typename BasicJsonType::array_t>::value,
                           int> = 0>
-    static void construct(Json& j, const CompatibleArrayType& arr)
+    static void construct(BasicJsonType& j, const CompatibleArrayType& arr)
     {
         using std::begin;
         using std::end;
         j.m_type = value_t::array;
         j.m_value.array =
-            j.template create<typename Json::array_t>(begin(arr), end(arr));
+            j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr));
         j.assert_invariant();
     }
 };
@@ -312,26 +312,26 @@ struct external_constructor<value_t::array>
 template <>
 struct external_constructor<value_t::object>
 {
-    template <typename Json>
-    static void construct(Json& j, const typename Json::object_t& obj)
+    template <typename BasicJsonType>
+    static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj)
     {
         j.m_type = value_t::object;
         j.m_value = obj;
         j.assert_invariant();
     }
 
-    template <typename Json, typename CompatibleObjectType,
+    template <typename BasicJsonType, typename CompatibleObjectType,
               enable_if_t<not std::is_same<CompatibleObjectType,
-                                           typename Json::object_t>::value,
+                                           typename BasicJsonType::object_t>::value,
                           int> = 0>
-    static void construct(Json& j, const CompatibleObjectType& obj)
+    static void construct(BasicJsonType& j, const CompatibleObjectType& obj)
     {
         using std::begin;
         using std::end;
 
         j.m_type = value_t::object;
         j.m_value.object =
-            j.template create<typename Json::object_t>(begin(obj), end(obj));
+            j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj));
         j.assert_invariant();
     }
 };
@@ -377,27 +377,27 @@ struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
         typename CompatibleObjectType::mapped_type>::value;
 };
 
-template<class Json, class CompatibleObjectType>
+template<class BasicJsonType, class CompatibleObjectType>
 struct is_compatible_object_type
 {
     static auto constexpr value = is_compatible_object_type_impl <
                                   conjunction<negation<std::is_same<void, CompatibleObjectType>>,
                                   has_mapped_type<CompatibleObjectType>,
                                   has_key_type<CompatibleObjectType>>::value,
-                                  typename Json::object_t, CompatibleObjectType >::value;
+                                  typename BasicJsonType::object_t, CompatibleObjectType >::value;
 };
 
-template <typename Json, typename T>
+template <typename BasicJsonType, typename T>
 struct is_basic_json_nested_type
 {
-    static auto constexpr value = std::is_same<T, typename Json::iterator>::value or
-                                  std::is_same<T, typename Json::const_iterator>::value or
-                                  std::is_same<T, typename Json::reverse_iterator>::value or
-                                  std::is_same<T, typename Json::const_reverse_iterator>::value or
-                                  std::is_same<T, typename Json::json_pointer>::value;
+    static auto constexpr value = std::is_same<T, typename BasicJsonType::iterator>::value or
+                                  std::is_same<T, typename BasicJsonType::const_iterator>::value or
+                                  std::is_same<T, typename BasicJsonType::reverse_iterator>::value or
+                                  std::is_same<T, typename BasicJsonType::const_reverse_iterator>::value or
+                                  std::is_same<T, typename BasicJsonType::json_pointer>::value;
 };
 
-template <class Json, class CompatibleArrayType>
+template <class BasicJsonType, class CompatibleArrayType>
 struct is_compatible_array_type
 {
     // TODO concept Container?
@@ -405,10 +405,10 @@ struct is_compatible_array_type
     static auto constexpr value =
         conjunction<negation<std::is_same<void, CompatibleArrayType>>,
         negation<is_compatible_object_type<
-        Json, CompatibleArrayType>>,
-        negation<std::is_constructible<typename Json::string_t,
+        BasicJsonType, CompatibleArrayType>>,
+        negation<std::is_constructible<typename BasicJsonType::string_t,
         CompatibleArrayType>>,
-        negation<is_basic_json_nested_type<Json, CompatibleArrayType>>,
+        negation<is_basic_json_nested_type<BasicJsonType, CompatibleArrayType>>,
         has_value_type<CompatibleArrayType>,
         has_iterator<CompatibleArrayType>>::value;
 };
@@ -441,76 +441,76 @@ struct is_compatible_integer_type
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
-template <typename Json, typename T>
+template <typename BasicJsonType, typename T>
 struct has_from_json
 {
   private:
     // also check the return type of from_json
     template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
-                  std::declval<Json>(), std::declval<T&>()))>::value>>
+                  std::declval<BasicJsonType>(), std::declval<T&>()))>::value>>
     static int detect(U&&);
     static void detect(...);
 
   public:
     static constexpr bool value = std::is_integral<decltype(
-                                      detect(std::declval<typename Json::template json_serializer<T, void>>()))>::value;
+                                      detect(std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value;
 };
 
 // This trait checks if JSONSerializer<T>::from_json(json const&) exists
 // this overload is used for non-default-constructible user-defined-types
-template <typename Json, typename T>
+template <typename BasicJsonType, typename T>
 struct has_non_default_from_json
 {
   private:
     template <
         typename U,
         typename = enable_if_t<std::is_same<
-                                   T, decltype(uncvref_t<U>::from_json(std::declval<Json>()))>::value >>
+                                   T, decltype(uncvref_t<U>::from_json(std::declval<BasicJsonType>()))>::value >>
     static int detect(U&&);
     static void detect(...);
 
   public:
     static constexpr bool value = std::is_integral<decltype(detect(
-                                      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
+                                      std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value;
 };
 
-// This trait checks if Json::json_serializer<T>::to_json exists
-template <typename Json, typename T>
+// This trait checks if BasicJsonType::json_serializer<T>::to_json exists
+template <typename BasicJsonType, typename T>
 struct has_to_json
 {
   private:
     template <typename U, typename = decltype(uncvref_t<U>::to_json(
-                  std::declval<Json&>(), std::declval<T>()))>
+                  std::declval<BasicJsonType&>(), std::declval<T>()))>
     static int detect(U&&);
     static void detect(...);
 
   public:
     static constexpr bool value = std::is_integral<decltype(detect(
-                                      std::declval<typename Json::template json_serializer<T, void>>()))>::value;
+                                      std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value;
 };
 
 // overloads for basic_json template parameters
 
-template <typename Json, typename ArithmeticType,
+template <typename BasicJsonType, typename ArithmeticType,
           enable_if_t<std::is_arithmetic<ArithmeticType>::value and
                       not std::is_same<ArithmeticType,
-                                       typename Json::boolean_t>::value,
+                                       typename BasicJsonType::boolean_t>::value,
                       int> = 0>
-void get_arithmetic_value(const  Json& j, ArithmeticType& val)
+void get_arithmetic_value(const  BasicJsonType& j, ArithmeticType& val)
 {
     switch (static_cast<value_t>(j))
     {
         case value_t::number_unsigned:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_unsigned_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
             break;
         case value_t::number_integer:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_integer_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
             break;
         case value_t::number_float:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_float_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_float_t*>());
             break;
         default:
             JSON_THROW(
@@ -518,136 +518,136 @@ void get_arithmetic_value(const  Json& j, ArithmeticType& val)
     }
 }
 
-template <typename Json>
-void to_json(Json& j, typename Json::boolean_t b) noexcept
+template <typename BasicJsonType>
+void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept
 {
     external_constructor<value_t::boolean>::construct(j, b);
 }
 
-template <typename Json, typename CompatibleString,
-          enable_if_t<std::is_constructible<typename Json::string_t,
+template <typename BasicJsonType, typename CompatibleString,
+          enable_if_t<std::is_constructible<typename BasicJsonType::string_t,
                       CompatibleString>::value,
                       int> = 0>
-void to_json(Json& j, const CompatibleString& s)
+void to_json(BasicJsonType& j, const CompatibleString& s)
 {
     external_constructor<value_t::string>::construct(j, s);
 }
 
-template <typename Json, typename FloatType,
+template <typename BasicJsonType, typename FloatType,
           enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
-void to_json(Json& j, FloatType val) noexcept
+void to_json(BasicJsonType& j, FloatType val) noexcept
 {
-    external_constructor<value_t::number_float>::construct(j, static_cast<typename Json::number_float_t>(val));
+    external_constructor<value_t::number_float>::construct(j, static_cast<typename BasicJsonType::number_float_t>(val));
 }
 
 
 template <
-    typename Json, typename CompatibleNumberUnsignedType,
-    enable_if_t<is_compatible_integer_type<typename Json::number_unsigned_t,
+    typename BasicJsonType, typename CompatibleNumberUnsignedType,
+    enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t,
                 CompatibleNumberUnsignedType>::value,
                 int> = 0 >
-void to_json(Json& j, CompatibleNumberUnsignedType val) noexcept
+void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
 {
-    external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename Json::number_unsigned_t>(val));
+    external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename BasicJsonType::number_unsigned_t>(val));
 }
 
 template <
-    typename Json, typename CompatibleNumberIntegerType,
-    enable_if_t<is_compatible_integer_type<typename Json::number_integer_t,
+    typename BasicJsonType, typename CompatibleNumberIntegerType,
+    enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_integer_t,
                 CompatibleNumberIntegerType>::value,
                 int> = 0 >
-void to_json(Json& j, CompatibleNumberIntegerType val) noexcept
+void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
 {
-    external_constructor<value_t::number_integer>::construct(j, static_cast<typename Json::number_integer_t>(val));
+    external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val));
 }
 
-template <typename Json, typename UnscopedEnumType,
+template <typename BasicJsonType, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void to_json(Json& j, UnscopedEnumType e) noexcept
+void to_json(BasicJsonType& j, UnscopedEnumType e) noexcept
 {
     external_constructor<value_t::number_integer>::construct(j, e);
 }
 
 template <
-    typename Json, typename CompatibleArrayType,
+    typename BasicJsonType, typename CompatibleArrayType,
     enable_if_t <
-        is_compatible_array_type<Json, CompatibleArrayType>::value or
-        std::is_same<typename Json::array_t, CompatibleArrayType>::value,
+        is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value or
+        std::is_same<typename BasicJsonType::array_t, CompatibleArrayType>::value,
         int > = 0 >
-void to_json(Json& j, const  CompatibleArrayType& arr)
+void to_json(BasicJsonType& j, const  CompatibleArrayType& arr)
 {
     external_constructor<value_t::array>::construct(j, arr);
 }
 
 template <
-    typename Json, typename CompatibleObjectType,
-    enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
+    typename BasicJsonType, typename CompatibleObjectType,
+    enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value,
                 int> = 0 >
-void to_json(Json& j, const  CompatibleObjectType& arr)
+void to_json(BasicJsonType& j, const  CompatibleObjectType& arr)
 {
     external_constructor<value_t::object>::construct(j, arr);
 }
 
-template <typename Json>
-void from_json(const Json& j, typename Json::boolean_t& b)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
 {
     if (!j.is_boolean())
     {
         JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j)));
     }
-    b = *j.template get_ptr<const typename Json::boolean_t*>();
+    b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>();
 }
 
-template <typename Json>
-void from_json(const Json& j, typename Json::string_t& s)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)
 {
     if (!j.is_string())
     {
         JSON_THROW(std::domain_error("type must be string, but is " + type_name(j)));
     }
-    s = *j.template get_ptr<const typename Json::string_t*>();
+    s = *j.template get_ptr<const typename BasicJsonType::string_t*>();
 }
 
-template <typename Json>
-void from_json(const Json& j, typename Json::number_float_t& val)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename Json>
-void from_json(const Json& j, typename Json::number_unsigned_t& val)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename Json>
-void from_json(const Json& j, typename Json::number_integer_t& val)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename Json, typename UnscopedEnumType,
+template <typename BasicJsonType, typename UnscopedEnumType,
           enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void from_json(const  Json& j, UnscopedEnumType& e)
+void from_json(const  BasicJsonType& j, UnscopedEnumType& e)
 {
     typename std::underlying_type<UnscopedEnumType>::type val = e;
     get_arithmetic_value(j, val);
     e = static_cast<UnscopedEnumType>(val);
 }
 
-template <typename Json>
-void from_json(const  Json& j, typename Json::array_t& arr)
+template <typename BasicJsonType>
+void from_json(const  BasicJsonType& j, typename BasicJsonType::array_t& arr)
 {
     if (!j.is_array())
     {
         JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
-    arr = *j.template get_ptr<const typename Json::array_t*>();
+    arr = *j.template get_ptr<const typename BasicJsonType::array_t*>();
 }
 
 // forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
-template <typename Json, typename T, typename Allocator>
-void from_json(const Json& j, std::forward_list<T, Allocator>& l)
+template <typename BasicJsonType, typename T, typename Allocator>
+void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
 {
     // do not perform the check when user wants to retrieve jsons
     // (except when it's null.. ?)
@@ -655,7 +655,7 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l)
     {
         JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
-    if (not std::is_same<T, Json>::value)
+    if (not std::is_same<T, BasicJsonType>::value)
     {
         if (!j.is_array())
         {
@@ -668,23 +668,23 @@ void from_json(const Json& j, std::forward_list<T, Allocator>& l)
     }
 }
 
-template <typename Json, typename CompatibleArrayType>
-void from_json_array_impl(const  Json& j, CompatibleArrayType& arr, priority_tag<0>)
+template <typename BasicJsonType, typename CompatibleArrayType>
+void from_json_array_impl(const  BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>)
 {
     using std::begin;
     using std::end;
 
     std::transform(
-        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json & i)
+        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  BasicJsonType & i)
     {
-        // get<Json>() returns *this, this won't call a from_json method when
-        // value_type is Json
+        // get<BasicJsonType>() returns *this, this won't call a from_json method when
+        // value_type is BasicJsonType
         return i.template get<typename CompatibleArrayType::value_type>();
     });
 }
 
-template <typename Json, typename CompatibleArrayType>
-auto from_json_array_impl(const  Json& j, CompatibleArrayType& arr, priority_tag<1>)
+template <typename BasicJsonType, typename CompatibleArrayType>
+auto from_json_array_impl(const  BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>)
 -> decltype(
     arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
     void())
@@ -694,28 +694,28 @@ auto from_json_array_impl(const  Json& j, CompatibleArrayType& arr, priority_tag
 
     arr.reserve(j.size());
     std::transform(
-        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  Json & i)
+        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  BasicJsonType & i)
     {
-        // get<Json>() returns *this, this won't call a from_json method when
-        // value_type is Json
+        // get<BasicJsonType>() returns *this, this won't call a from_json method when
+        // value_type is BasicJsonType
         return i.template get<typename CompatibleArrayType::value_type>();
     });
 }
 
 template <
-    typename Json, typename CompatibleArrayType,
-    enable_if_t<is_compatible_array_type<Json, CompatibleArrayType>::value and
-                not std::is_same<typename Json::array_t,
+    typename BasicJsonType, typename CompatibleArrayType,
+    enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and
+                not std::is_same<typename BasicJsonType::array_t,
                                  CompatibleArrayType>::value,
                 int> = 0 >
-void from_json(const  Json& j, CompatibleArrayType& arr)
+void from_json(const  BasicJsonType& j, CompatibleArrayType& arr)
 {
     if (j.is_null())
     {
         JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
     }
-    // when T == Json, do not check if value_t is correct
-    if (not std::is_same<typename CompatibleArrayType::value_type, Json>::value)
+    // when T == BasicJsonType, do not check if value_t is correct
+    if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value)
     {
         if (!j.is_array())
         {
@@ -727,17 +727,17 @@ void from_json(const  Json& j, CompatibleArrayType& arr)
 
 
 template <
-    typename Json, typename CompatibleObjectType,
-    enable_if_t<is_compatible_object_type<Json, CompatibleObjectType>::value,
+    typename BasicJsonType, typename CompatibleObjectType,
+    enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value,
                 int> = 0 >
-void from_json(const  Json& j, CompatibleObjectType& obj)
+void from_json(const  BasicJsonType& j, CompatibleObjectType& obj)
 {
     if (!j.is_object())
     {
         JSON_THROW(std::domain_error("type must be object, but is " + type_name(j)));
     }
 
-    auto inner_object = j.template get_ptr<const typename Json::object_t*>();
+    auto inner_object = j.template get_ptr<const typename BasicJsonType::object_t*>();
     using std::begin;
     using std::end;
     // we could avoid the assignment, but this might require a for loop, which
@@ -750,36 +750,36 @@ void from_json(const  Json& j, CompatibleObjectType& obj)
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
 // in case of a custom BooleanType which is not an arithmetic type?
 template <
-    typename Json, typename ArithmeticType,
+    typename BasicJsonType, typename ArithmeticType,
     enable_if_t <
         std::is_arithmetic<ArithmeticType>::value and
         not std::is_same<ArithmeticType,
-                         typename Json::number_unsigned_t>::value and
+                         typename BasicJsonType::number_unsigned_t>::value and
         not std::is_same<ArithmeticType,
-                         typename Json::number_integer_t>::value and
+                         typename BasicJsonType::number_integer_t>::value and
         not std::is_same<ArithmeticType,
-                         typename Json::number_float_t>::value and
-        not std::is_same<ArithmeticType, typename Json::boolean_t>::value,
+                         typename BasicJsonType::number_float_t>::value and
+        not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value,
         int > = 0 >
-void from_json(const Json& j, ArithmeticType& val)
+void from_json(const BasicJsonType& j, ArithmeticType& val)
 {
     switch (static_cast<value_t>(j))
     {
         case value_t::number_unsigned:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_unsigned_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
             break;
         case value_t::number_integer:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_integer_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
             break;
         case value_t::number_float:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::number_float_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::number_float_t*>());
             break;
         case value_t::boolean:
             val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename Json::boolean_t*>());
+                      *j.template get_ptr<const typename BasicJsonType::boolean_t*>());
             break;
         default:
             JSON_THROW(
@@ -789,8 +789,8 @@ void from_json(const Json& j, ArithmeticType& val)
 
 struct to_json_fn
 {
-    template <typename Json, typename T>
-    auto call(Json& j, T&& val, priority_tag<1>) const
+    template <typename BasicJsonType, typename T>
+    auto call(BasicJsonType& j, T&& val, priority_tag<1>) const
     noexcept(noexcept(to_json(j, std::forward<T>(val))))
     -> decltype(to_json(j, std::forward<T>(val)),
                 void())
@@ -798,15 +798,15 @@ struct to_json_fn
         return to_json(j, std::forward<T>(val));
     }
 
-    template <typename Json, typename T>
-    void call(Json&, T&&, priority_tag<0>) const noexcept
+    template <typename BasicJsonType, typename T>
+    void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept
     {
-        static_assert(sizeof(Json) == 0, "to_json method in T's namespace can not be called");
+        static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called");
     }
 
   public:
-    template <typename Json, typename T>
-    void operator()(Json& j, T&& val) const
+    template <typename BasicJsonType, typename T>
+    void operator()(BasicJsonType& j, T&& val) const
     noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {})))
     {
         return call(j, std::forward<T>(val), priority_tag<1> {});
@@ -816,23 +816,23 @@ struct to_json_fn
 struct from_json_fn
 {
   private:
-    template <typename Json, typename T>
-    auto call(const  Json& j, T& val, priority_tag<1>) const
+    template <typename BasicJsonType, typename T>
+    auto call(const  BasicJsonType& j, T& val, priority_tag<1>) const
     noexcept(noexcept(from_json(j, val)))
     -> decltype(from_json(j, val), void())
     {
         return from_json(j, val);
     }
 
-    template <typename Json, typename T>
-    void call(const Json&, T&, priority_tag<0>) const noexcept
+    template <typename BasicJsonType, typename T>
+    void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept
     {
-        static_assert(sizeof(Json) == 0, "from_json method in T's namespace can not be called");
+        static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called");
     }
 
   public:
-    template <typename Json, typename T>
-    void operator()(const  Json& j, T& val) const
+    template <typename BasicJsonType, typename T>
+    void operator()(const  BasicJsonType& j, T& val) const
     noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {})))
     {
         return call(j, val, priority_tag<1> {});
@@ -881,14 +881,14 @@ constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::va
 template <typename = void, typename = void>
 struct adl_serializer
 {
-    template <typename Json, typename T>
-    static void from_json(Json&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<Json>(j), val)))
+    template <typename BasicJsonType, typename T>
+    static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))
     {
-        ::nlohmann::from_json(std::forward<Json>(j), val);
+        ::nlohmann::from_json(std::forward<BasicJsonType>(j), val);
     }
 
-    template <typename Json, typename T>
-    static void to_json(Json& j, T&& val) noexcept(
+    template <typename BasicJsonType, typename T>
+    static void to_json(BasicJsonType& j, T&& val) noexcept(
         noexcept(::nlohmann::to_json(j, std::forward<T>(val))))
     {
         ::nlohmann::to_json(j, std::forward<T>(val));
@@ -989,7 +989,7 @@ class basic_json
 {
   private:
     template <::nlohmann::value_t> friend struct detail::external_constructor;
-    template <typename Json> friend std::string detail::type_name(const  Json&);
+    template <typename BasicJsonType> friend std::string detail::type_name(const  BasicJsonType&);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 35f86440..7c297190 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -84,20 +84,20 @@ struct contact_book
 namespace udt
 {
 // templates because of the custom_json tests (see below)
-template <typename Json>
-void to_json(Json& j, age a)
+template <typename BasicJsonType>
+void to_json(BasicJsonType& j, age a)
 {
     j = a.m_val;
 }
 
-template <typename Json>
-void to_json(Json& j, const name& n)
+template <typename BasicJsonType>
+void to_json(BasicJsonType& j, const name& n)
 {
     j = n.m_val;
 }
 
-template <typename Json>
-void to_json(Json& j, country c)
+template <typename BasicJsonType>
+void to_json(BasicJsonType& j, country c)
 {
     switch (c)
     {
@@ -113,10 +113,10 @@ void to_json(Json& j, country c)
     }
 }
 
-template <typename Json>
-void to_json(Json& j, const person& p)
+template <typename BasicJsonType>
+void to_json(BasicJsonType& j, const person& p)
 {
-    j = Json{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}};
+    j = BasicJsonType{{"age", p.m_age}, {"name", p.m_name}, {"country", p.m_country}};
 }
 
 void to_json(nlohmann::json& j, const address& a)
@@ -171,20 +171,20 @@ bool operator==(const contact_book& lhs, const contact_book& rhs)
 // from_json methods
 namespace udt
 {
-template <typename Json>
-void from_json(const Json& j, age& a)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, age& a)
 {
     a.m_val = j.template get<int>();
 }
 
-template <typename Json>
-void from_json(const Json& j, name& n)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, name& n)
 {
     n.m_val = j.template get<std::string>();
 }
 
-template <typename Json>
-void from_json(const Json& j, country& c)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, country& c)
 {
     const auto str = j.template get<std::string>();
     static const std::map<std::string, country> m =
@@ -199,8 +199,8 @@ void from_json(const Json& j, country& c)
     c = it->second;
 }
 
-template <typename Json>
-void from_json(const Json& j, person& p)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, person& p)
 {
     p.m_age = j["age"].template get<age>();
     p.m_name = j["name"].template get<name>();
@@ -493,20 +493,20 @@ struct pod_serializer
 {
     // use adl for non-pods, or scalar types
     template <
-        typename Json, typename U = T,
+        typename BasicJsonType, typename U = T,
         typename std::enable_if <
             not(std::is_pod<U>::value and std::is_class<U>::value), int >::type = 0 >
-    static void from_json(const Json& j, U& t)
+    static void from_json(const BasicJsonType& j, U& t)
     {
         using nlohmann::from_json;
         from_json(j, t);
     }
 
     // special behaviour for pods
-    template <typename Json, typename U = T,
+    template <typename BasicJsonType, typename U = T,
               typename std::enable_if<
                   std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0>
-    static void from_json(const  Json& j, U& t)
+    static void from_json(const  BasicJsonType& j, U& t)
     {
         std::uint64_t value;
         // TODO The following block is no longer relevant in this serializer, make another one that shows the issue
@@ -529,19 +529,19 @@ struct pod_serializer
     }
 
     template <
-        typename Json, typename U = T,
+        typename BasicJsonType, typename U = T,
         typename std::enable_if <
             not(std::is_pod<U>::value and std::is_class<U>::value), int >::type = 0 >
-    static void to_json(Json& j, const  T& t)
+    static void to_json(BasicJsonType& j, const  T& t)
     {
         using nlohmann::to_json;
         to_json(j, t);
     }
 
-    template <typename Json, typename U = T,
+    template <typename BasicJsonType, typename U = T,
               typename std::enable_if<
                   std::is_pod<U>::value and std::is_class<U>::value, int>::type = 0>
-    static void to_json(Json& j, const  T& t) noexcept
+    static void to_json(BasicJsonType& j, const  T& t) noexcept
     {
         auto bytes = static_cast< const unsigned char*>(static_cast<const void*>(&t));
         std::uint64_t value = bytes[0];
@@ -565,14 +565,14 @@ struct non_pod
     std::string s;
 };
 
-template <typename Json>
-void to_json(Json& j, const non_pod& np)
+template <typename BasicJsonType>
+void to_json(BasicJsonType& j, const non_pod& np)
 {
     j = np.s;
 }
 
-template <typename Json>
-void from_json(const Json& j, non_pod& np)
+template <typename BasicJsonType>
+void from_json(const BasicJsonType& j, non_pod& np)
 {
     np.s = j.template get<std::string>();
 }

From 40ba5a8b7b4dffce2a24e43a4a108a04756dbfc6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 21 Jan 2017 16:45:08 +0100
Subject: [PATCH 120/174] remove inline keyword from anonymous namespace (not
 needed)

---
 src/json.hpp      | 2 +-
 src/json.hpp.re2c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 2524a694..8e2cfed0 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -870,7 +870,7 @@ struct DecimalSeparator : std::numpunct<char>
 };
 }
 
-inline namespace
+namespace
 {
 constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value;
 constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value;
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 94b72eb2..4fcdb23f 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -870,7 +870,7 @@ struct DecimalSeparator : std::numpunct<char>
 };
 }
 
-inline namespace
+namespace
 {
 constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value;
 constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value;

From f997758cad75c901262fc174481d622f5ff5a070 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 21 Jan 2017 16:47:41 +0100
Subject: [PATCH 121/174] remove useless forward declaration of
 primitive_iterator_t

---
 src/json.hpp      | 1 -
 src/json.hpp.re2c | 1 -
 2 files changed, 2 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 8e2cfed0..daa4e21b 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -994,7 +994,6 @@ class basic_json
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
           AllocatorType, JSONSerializer>;
-    class primitive_iterator_t;
 
   public:
     using value_t = ::nlohmann::value_t;
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 4fcdb23f..924a4ca1 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -994,7 +994,6 @@ class basic_json
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
           AllocatorType, JSONSerializer>;
-    class primitive_iterator_t;
 
   public:
     using value_t = ::nlohmann::value_t;

From 7d771c71ed3558e5affabe1c0ceb193fafbb431c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 21 Jan 2017 17:09:41 +0100
Subject: [PATCH 122/174] put back type_name in basic_json

This can however not be done easily for value_t, since
external_constructor depends on it, as is operator< which was moved
outside basic_json too.
This is not really an issue, since all basic_json classes share the same
enum
---
 src/json.hpp      | 63 ++++++++++++++++++++++-------------------------
 src/json.hpp.re2c | 63 ++++++++++++++++++++++-------------------------
 2 files changed, 60 insertions(+), 66 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index daa4e21b..124a794f 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -187,27 +187,6 @@ struct conjunction<B1, Bn...>
 
 template <class B> struct negation : std::integral_constant < bool, !B::value > {};
 
-template <typename BasicJsonType> std::string type_name(const  BasicJsonType& j)
-{
-    switch (j.m_type)
-    {
-        case value_t::null:
-            return "null";
-        case value_t::object:
-            return "object";
-        case value_t::array:
-            return "array";
-        case value_t::string:
-            return "string";
-        case value_t::boolean:
-            return "boolean";
-        case value_t::discarded:
-            return "discarded";
-        default:
-            return "number";
-    }
-}
-
 // dispatch utility (taken from ranges-v3)
 template <unsigned N> struct priority_tag : priority_tag < N - 1 > {};
 
@@ -514,7 +493,7 @@ void get_arithmetic_value(const  BasicJsonType& j, ArithmeticType& val)
             break;
         default:
             JSON_THROW(
-                std::domain_error("type must be number, but is " + type_name(j)));
+                std::domain_error("type must be number, but is " + j.type_name()));
     }
 }
 
@@ -593,7 +572,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
 {
     if (!j.is_boolean())
     {
-        JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be boolean, but is " + j.type_name()));
     }
     b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>();
 }
@@ -603,7 +582,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)
 {
     if (!j.is_string())
     {
-        JSON_THROW(std::domain_error("type must be string, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be string, but is " + j.type_name()));
     }
     s = *j.template get_ptr<const typename BasicJsonType::string_t*>();
 }
@@ -640,7 +619,7 @@ void from_json(const  BasicJsonType& j, typename BasicJsonType::array_t& arr)
 {
     if (!j.is_array())
     {
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
     }
     arr = *j.template get_ptr<const typename BasicJsonType::array_t*>();
 }
@@ -653,13 +632,13 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
     // (except when it's null.. ?)
     if (j.is_null())
     {
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
     }
     if (not std::is_same<T, BasicJsonType>::value)
     {
         if (!j.is_array())
         {
-            JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
+            JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
         }
     }
     for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
@@ -712,14 +691,14 @@ void from_json(const  BasicJsonType& j, CompatibleArrayType& arr)
 {
     if (j.is_null())
     {
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
     }
     // when T == BasicJsonType, do not check if value_t is correct
     if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value)
     {
         if (!j.is_array())
         {
-            JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
+            JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
         }
     }
     from_json_array_impl(j, arr, priority_tag<1> {});
@@ -734,7 +713,7 @@ void from_json(const  BasicJsonType& j, CompatibleObjectType& obj)
 {
     if (!j.is_object())
     {
-        JSON_THROW(std::domain_error("type must be object, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be object, but is " + j.type_name()));
     }
 
     auto inner_object = j.template get_ptr<const typename BasicJsonType::object_t*>();
@@ -783,7 +762,7 @@ void from_json(const BasicJsonType& j, ArithmeticType& val)
             break;
         default:
             JSON_THROW(
-                std::domain_error("type must be number, but is " + type_name(j)));
+                std::domain_error("type must be number, but is " + j.type_name()));
     }
 }
 
@@ -989,7 +968,6 @@ class basic_json
 {
   private:
     template <::nlohmann::value_t> friend struct detail::external_constructor;
-    template <typename BasicJsonType> friend std::string detail::type_name(const  BasicJsonType&);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -7914,7 +7892,26 @@ class basic_json
     */
     std::string type_name() const
     {
-        return detail::type_name(*this);
+        {
+            switch (m_type)
+            {
+                case value_t::null:
+                    return "null";
+                case value_t::object:
+                    return "object";
+                case value_t::array:
+                    return "array";
+                case value_t::string:
+                    return "string";
+                case value_t::boolean:
+                    return "boolean";
+                case value_t::discarded:
+                    return "discarded";
+                default:
+                    return "number";
+            }
+        }
+
     }
 
   private:
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 924a4ca1..7ba1cc85 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -187,27 +187,6 @@ struct conjunction<B1, Bn...>
 
 template <class B> struct negation : std::integral_constant < bool, !B::value > {};
 
-template <typename BasicJsonType> std::string type_name(const  BasicJsonType& j)
-{
-    switch (j.m_type)
-    {
-        case value_t::null:
-            return "null";
-        case value_t::object:
-            return "object";
-        case value_t::array:
-            return "array";
-        case value_t::string:
-            return "string";
-        case value_t::boolean:
-            return "boolean";
-        case value_t::discarded:
-            return "discarded";
-        default:
-            return "number";
-    }
-}
-
 // dispatch utility (taken from ranges-v3)
 template <unsigned N> struct priority_tag : priority_tag < N - 1 > {};
 
@@ -514,7 +493,7 @@ void get_arithmetic_value(const  BasicJsonType& j, ArithmeticType& val)
             break;
         default:
             JSON_THROW(
-                std::domain_error("type must be number, but is " + type_name(j)));
+                std::domain_error("type must be number, but is " + j.type_name()));
     }
 }
 
@@ -593,7 +572,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
 {
     if (!j.is_boolean())
     {
-        JSON_THROW(std::domain_error("type must be boolean, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be boolean, but is " + j.type_name()));
     }
     b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>();
 }
@@ -603,7 +582,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)
 {
     if (!j.is_string())
     {
-        JSON_THROW(std::domain_error("type must be string, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be string, but is " + j.type_name()));
     }
     s = *j.template get_ptr<const typename BasicJsonType::string_t*>();
 }
@@ -640,7 +619,7 @@ void from_json(const  BasicJsonType& j, typename BasicJsonType::array_t& arr)
 {
     if (!j.is_array())
     {
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
     }
     arr = *j.template get_ptr<const typename BasicJsonType::array_t*>();
 }
@@ -653,13 +632,13 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
     // (except when it's null.. ?)
     if (j.is_null())
     {
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
     }
     if (not std::is_same<T, BasicJsonType>::value)
     {
         if (!j.is_array())
         {
-            JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
+            JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
         }
     }
     for (auto it = j.rbegin(), end = j.rend(); it != end; ++it)
@@ -712,14 +691,14 @@ void from_json(const  BasicJsonType& j, CompatibleArrayType& arr)
 {
     if (j.is_null())
     {
-        JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
     }
     // when T == BasicJsonType, do not check if value_t is correct
     if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value)
     {
         if (!j.is_array())
         {
-            JSON_THROW(std::domain_error("type must be array, but is " + type_name(j)));
+            JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
         }
     }
     from_json_array_impl(j, arr, priority_tag<1> {});
@@ -734,7 +713,7 @@ void from_json(const  BasicJsonType& j, CompatibleObjectType& obj)
 {
     if (!j.is_object())
     {
-        JSON_THROW(std::domain_error("type must be object, but is " + type_name(j)));
+        JSON_THROW(std::domain_error("type must be object, but is " + j.type_name()));
     }
 
     auto inner_object = j.template get_ptr<const typename BasicJsonType::object_t*>();
@@ -783,7 +762,7 @@ void from_json(const BasicJsonType& j, ArithmeticType& val)
             break;
         default:
             JSON_THROW(
-                std::domain_error("type must be number, but is " + type_name(j)));
+                std::domain_error("type must be number, but is " + j.type_name()));
     }
 }
 
@@ -989,7 +968,6 @@ class basic_json
 {
   private:
     template <::nlohmann::value_t> friend struct detail::external_constructor;
-    template <typename BasicJsonType> friend std::string detail::type_name(const  BasicJsonType&);
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -7914,7 +7892,26 @@ class basic_json
     */
     std::string type_name() const
     {
-        return detail::type_name(*this);
+        {
+            switch (m_type)
+            {
+                case value_t::null:
+                    return "null";
+                case value_t::object:
+                    return "object";
+                case value_t::array:
+                    return "array";
+                case value_t::string:
+                    return "string";
+                case value_t::boolean:
+                    return "boolean";
+                case value_t::discarded:
+                    return "discarded";
+                default:
+                    return "number";
+            }
+        }
+
     }
 
   private:

From 37fd20b2eb6a03c0b1681db19283d4d770c9a1c0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 21 Jan 2017 17:17:13 +0100
Subject: [PATCH 123/174] put uncvref_t, enable_if_t, value_t and
 operator<(value_t) in detail

---
 src/json.hpp      | 127 +++++++++++++++++++++++-----------------------
 src/json.hpp.re2c | 127 +++++++++++++++++++++++-----------------------
 2 files changed, 126 insertions(+), 128 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 124a794f..c40691a5 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -107,7 +107,14 @@ SOFTWARE.
 */
 namespace nlohmann
 {
+// TODO update this doc
+/*!
+@brief unnamed namespace with internal helper functions
+@since version 1.0.0
+*/
 
+namespace detail
+{
 ///////////////////////////
 // JSON type enumeration //
 ///////////////////////////
@@ -147,6 +154,45 @@ enum class value_t : uint8_t
     discarded        ///< discarded by the the parser callback function
 };
 
+//////////////////////////////////////////
+// lexicographical comparison operators //
+//////////////////////////////////////////
+
+/// @name lexicographical comparison operators
+/// @{
+/*!
+@brief comparison operator for JSON types
+
+Returns an ordering that is similar to Python:
+- order: null < boolean < number < object < array < string
+- furthermore, each type is not smaller than itself
+
+@since version 1.0.0
+*/
+inline bool operator<(const value_t lhs, const value_t rhs) noexcept
+{
+    static constexpr std::array<uint8_t, 8> order = {{
+            0, // null
+            3, // object
+            4, // array
+            5, // string
+            1, // boolean
+            2, // integer
+            2, // unsigned
+            2, // float
+        }
+    };
+
+    // discarded values are not comparable
+    if (lhs == value_t::discarded or rhs == value_t::discarded)
+    {
+        return false;
+    }
+
+    return order[static_cast<std::size_t>(lhs)] <
+           order[static_cast<std::size_t>(rhs)];
+}
+
 // alias templates to reduce boilerplate
 template <bool B, typename T = void>
 using enable_if_t = typename std::enable_if<B, T>::type;
@@ -160,14 +206,6 @@ using is_unscoped_enum =
     std::integral_constant<bool, std::is_convertible<T, int>::value and
     std::is_enum<T>::value>;
 
-// TODO update this doc
-/*!
-@brief unnamed namespace with internal helper functions
-@since version 1.0.0
-*/
-
-namespace detail
-{
 // Implementation of 2 C++17 constructs: conjunction, negation.
 // This is needed to avoid evaluating all the traits in a condition
 //
@@ -967,14 +1005,14 @@ template <
 class basic_json
 {
   private:
-    template <::nlohmann::value_t> friend struct detail::external_constructor;
+    template <detail::value_t> friend struct detail::external_constructor;
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
           AllocatorType, JSONSerializer>;
 
   public:
-    using value_t = ::nlohmann::value_t;
+    using value_t = detail::value_t;
     // forward declarations
     template<typename U> class iter_impl;
     template<typename Base> class json_reverse_iterator;
@@ -1866,13 +1904,13 @@ class basic_json
 
     @since version 2.1.0
     */
-    template <typename T, typename U = uncvref_t<T>,
-              enable_if_t<not std::is_base_of<std::istream, U>::value and
-                          not std::is_same<U, basic_json_t>::value and
-                          not detail::is_basic_json_nested_type<
-                              basic_json_t, U>::value and
-                          detail::has_to_json<basic_json, U>::value,
-                          int> = 0>
+    template <typename T, typename U = detail::uncvref_t<T>,
+              detail::enable_if_t<not std::is_base_of<std::istream, U>::value and
+                                  not std::is_same<U, basic_json_t>::value and
+                                  not detail::is_basic_json_nested_type<
+                                      basic_json_t, U>::value and
+                                  detail::has_to_json<basic_json, U>::value,
+                                  int> = 0>
     basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json(
             std::declval<basic_json_t&>(), std::forward<T>(val))))
     {
@@ -3036,7 +3074,7 @@ class basic_json
     @since version 2.1.0
     */
     template <typename T,
-              enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
+              detail::enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
     basic_json get() const
     {
         return *this;
@@ -3059,8 +3097,8 @@ class basic_json
     */
     template <
         typename T,
-        typename U = uncvref_t<T>,
-        enable_if_t <
+        typename U = detail::uncvref_t<T>,
+        detail::enable_if_t <
             not std::is_same<basic_json_t, U>::value and
             detail::has_from_json<basic_json_t, U>::value and
             not detail::has_non_default_from_json<basic_json_t,
@@ -3099,11 +3137,11 @@ class basic_json
     */
     template <
         typename T,
-        enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                    detail::has_non_default_from_json<basic_json_t,
-                            uncvref_t<T>>::value,
-                    int> = 0 >
-    uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
+        detail::enable_if_t<not std::is_same<basic_json_t, detail::uncvref_t<T>>::value and
+                            detail::has_non_default_from_json<basic_json_t,
+                                    detail::uncvref_t<T>>::value,
+                            int> = 0 >
+    detail::uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
         return JSONSerializer<T>::from_json(*this);
     }
@@ -12401,45 +12439,6 @@ basic_json_parser_66:
     /// @}
 };
 
-//////////////////////////////////////////
-// lexicographical comparison operators //
-//////////////////////////////////////////
-
-/// @name lexicographical comparison operators
-/// @{
-/*!
-@brief comparison operator for JSON types
-
-Returns an ordering that is similar to Python:
-- order: null < boolean < number < object < array < string
-- furthermore, each type is not smaller than itself
-
-@since version 1.0.0
-*/
-inline bool operator<(const value_t lhs, const value_t rhs) noexcept
-{
-    static constexpr std::array<uint8_t, 8> order = {{
-            0, // null
-            3, // object
-            4, // array
-            5, // string
-            1, // boolean
-            2, // integer
-            2, // unsigned
-            2, // float
-        }
-    };
-
-    // discarded values are not comparable
-    if (lhs == value_t::discarded or rhs == value_t::discarded)
-    {
-        return false;
-    }
-
-    return order[static_cast<std::size_t>(lhs)] <
-           order[static_cast<std::size_t>(rhs)];
-}
-
 /////////////
 // presets //
 /////////////
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 7ba1cc85..e3fee848 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -107,7 +107,14 @@ SOFTWARE.
 */
 namespace nlohmann
 {
+// TODO update this doc
+/*!
+@brief unnamed namespace with internal helper functions
+@since version 1.0.0
+*/
 
+namespace detail
+{
 ///////////////////////////
 // JSON type enumeration //
 ///////////////////////////
@@ -147,6 +154,45 @@ enum class value_t : uint8_t
     discarded        ///< discarded by the the parser callback function
 };
 
+//////////////////////////////////////////
+// lexicographical comparison operators //
+//////////////////////////////////////////
+
+/// @name lexicographical comparison operators
+/// @{
+/*!
+@brief comparison operator for JSON types
+
+Returns an ordering that is similar to Python:
+- order: null < boolean < number < object < array < string
+- furthermore, each type is not smaller than itself
+
+@since version 1.0.0
+*/
+inline bool operator<(const value_t lhs, const value_t rhs) noexcept
+{
+    static constexpr std::array<uint8_t, 8> order = {{
+            0, // null
+            3, // object
+            4, // array
+            5, // string
+            1, // boolean
+            2, // integer
+            2, // unsigned
+            2, // float
+        }
+    };
+
+    // discarded values are not comparable
+    if (lhs == value_t::discarded or rhs == value_t::discarded)
+    {
+        return false;
+    }
+
+    return order[static_cast<std::size_t>(lhs)] <
+           order[static_cast<std::size_t>(rhs)];
+}
+
 // alias templates to reduce boilerplate
 template <bool B, typename T = void>
 using enable_if_t = typename std::enable_if<B, T>::type;
@@ -160,14 +206,6 @@ using is_unscoped_enum =
     std::integral_constant<bool, std::is_convertible<T, int>::value and
     std::is_enum<T>::value>;
 
-// TODO update this doc
-/*!
-@brief unnamed namespace with internal helper functions
-@since version 1.0.0
-*/
-
-namespace detail
-{
 // Implementation of 2 C++17 constructs: conjunction, negation.
 // This is needed to avoid evaluating all the traits in a condition
 //
@@ -967,14 +1005,14 @@ template <
 class basic_json
 {
   private:
-    template <::nlohmann::value_t> friend struct detail::external_constructor;
+    template <detail::value_t> friend struct detail::external_constructor;
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
           AllocatorType, JSONSerializer>;
 
   public:
-    using value_t = ::nlohmann::value_t;
+    using value_t = detail::value_t;
     // forward declarations
     template<typename U> class iter_impl;
     template<typename Base> class json_reverse_iterator;
@@ -1866,13 +1904,13 @@ class basic_json
 
     @since version 2.1.0
     */
-    template <typename T, typename U = uncvref_t<T>,
-              enable_if_t<not std::is_base_of<std::istream, U>::value and
-                          not std::is_same<U, basic_json_t>::value and
-                          not detail::is_basic_json_nested_type<
-                              basic_json_t, U>::value and
-                          detail::has_to_json<basic_json, U>::value,
-                          int> = 0>
+    template <typename T, typename U = detail::uncvref_t<T>,
+              detail::enable_if_t<not std::is_base_of<std::istream, U>::value and
+                                  not std::is_same<U, basic_json_t>::value and
+                                  not detail::is_basic_json_nested_type<
+                                      basic_json_t, U>::value and
+                                  detail::has_to_json<basic_json, U>::value,
+                                  int> = 0>
     basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json(
             std::declval<basic_json_t&>(), std::forward<T>(val))))
     {
@@ -3036,7 +3074,7 @@ class basic_json
     @since version 2.1.0
     */
     template <typename T,
-              enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
+              detail::enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
     basic_json get() const
     {
         return *this;
@@ -3059,8 +3097,8 @@ class basic_json
     */
     template <
         typename T,
-        typename U = uncvref_t<T>,
-        enable_if_t <
+        typename U = detail::uncvref_t<T>,
+        detail::enable_if_t <
             not std::is_same<basic_json_t, U>::value and
             detail::has_from_json<basic_json_t, U>::value and
             not detail::has_non_default_from_json<basic_json_t,
@@ -3099,11 +3137,11 @@ class basic_json
     */
     template <
         typename T,
-        enable_if_t<not std::is_same<basic_json_t, uncvref_t<T>>::value and
-                    detail::has_non_default_from_json<basic_json_t,
-                            uncvref_t<T>>::value,
-                    int> = 0 >
-    uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
+        detail::enable_if_t<not std::is_same<basic_json_t, detail::uncvref_t<T>>::value and
+                            detail::has_non_default_from_json<basic_json_t,
+                                    detail::uncvref_t<T>>::value,
+                            int> = 0 >
+    detail::uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
         return JSONSerializer<T>::from_json(*this);
     }
@@ -11551,45 +11589,6 @@ class basic_json
     /// @}
 };
 
-//////////////////////////////////////////
-// lexicographical comparison operators //
-//////////////////////////////////////////
-
-/// @name lexicographical comparison operators
-/// @{
-/*!
-@brief comparison operator for JSON types
-
-Returns an ordering that is similar to Python:
-- order: null < boolean < number < object < array < string
-- furthermore, each type is not smaller than itself
-
-@since version 1.0.0
-*/
-inline bool operator<(const value_t lhs, const value_t rhs) noexcept
-{
-    static constexpr std::array<uint8_t, 8> order = {{
-            0, // null
-            3, // object
-            4, // array
-            5, // string
-            1, // boolean
-            2, // integer
-            2, // unsigned
-            2, // float
-        }
-    };
-
-    // discarded values are not comparable
-    if (lhs == value_t::discarded or rhs == value_t::discarded)
-    {
-        return false;
-    }
-
-    return order[static_cast<std::size_t>(lhs)] <
-           order[static_cast<std::size_t>(rhs)];
-}
-
 /////////////
 // presets //
 /////////////

From ba0b35f414af97aba682cd4d29c405f358a53cd4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 21 Jan 2017 17:20:32 +0100
Subject: [PATCH 124/174] use typename U = uncvref_t where appropriate

---
 src/json.hpp      | 18 +++++++++---------
 src/json.hpp.re2c | 18 +++++++++---------
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index c40691a5..d238a28f 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -3107,14 +3107,13 @@ class basic_json
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
     // static assert ?
     // i know there is a special behaviour for boolean_t* and such
-    auto get() const noexcept(noexcept(JSONSerializer<U>::from_json(
-                                           std::declval<const basic_json_t&>(), std::declval<U&>())))
-    -> U
+    U get() const noexcept(noexcept(JSONSerializer<U>::from_json(
+                                        std::declval<const basic_json_t&>(), std::declval<U&>())))
     {
         static_assert(std::is_default_constructible<U>::value and
-        std::is_copy_constructible<U>::value,
-        "Types must be DefaultConstructible and "
-        "CopyConstructible when used with get");
+                      std::is_copy_constructible<U>::value,
+                      "Types must be DefaultConstructible and "
+                      "CopyConstructible when used with get");
         U ret;
         JSONSerializer<U>::from_json(*this, ret);
         return ret;
@@ -3137,11 +3136,12 @@ class basic_json
     */
     template <
         typename T,
-        detail::enable_if_t<not std::is_same<basic_json_t, detail::uncvref_t<T>>::value and
+        typename U = detail::uncvref_t<T>,
+        detail::enable_if_t<not std::is_same<basic_json_t, U>::value and
                             detail::has_non_default_from_json<basic_json_t,
-                                    detail::uncvref_t<T>>::value,
+                                    U>::value,
                             int> = 0 >
-    detail::uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
+    U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
         return JSONSerializer<T>::from_json(*this);
     }
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index e3fee848..9510cddc 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -3107,14 +3107,13 @@ class basic_json
     // do we really want the uncvref ? if a user call get<int &>, shouldn't we
     // static assert ?
     // i know there is a special behaviour for boolean_t* and such
-    auto get() const noexcept(noexcept(JSONSerializer<U>::from_json(
-                                           std::declval<const basic_json_t&>(), std::declval<U&>())))
-    -> U
+    U get() const noexcept(noexcept(JSONSerializer<U>::from_json(
+                                        std::declval<const basic_json_t&>(), std::declval<U&>())))
     {
         static_assert(std::is_default_constructible<U>::value and
-        std::is_copy_constructible<U>::value,
-        "Types must be DefaultConstructible and "
-        "CopyConstructible when used with get");
+                      std::is_copy_constructible<U>::value,
+                      "Types must be DefaultConstructible and "
+                      "CopyConstructible when used with get");
         U ret;
         JSONSerializer<U>::from_json(*this, ret);
         return ret;
@@ -3137,11 +3136,12 @@ class basic_json
     */
     template <
         typename T,
-        detail::enable_if_t<not std::is_same<basic_json_t, detail::uncvref_t<T>>::value and
+        typename U = detail::uncvref_t<T>,
+        detail::enable_if_t<not std::is_same<basic_json_t, U>::value and
                             detail::has_non_default_from_json<basic_json_t,
-                                    detail::uncvref_t<T>>::value,
+                                    U>::value,
                             int> = 0 >
-    detail::uncvref_t<T> get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
+    U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
         return JSONSerializer<T>::from_json(*this);
     }

From 9c6ef74a28a2bbad33f84a5370227e77c9eb6c12 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 21 Jan 2017 17:56:59 +0100
Subject: [PATCH 125/174] add static_asserts/remove the need for
 CopyConstructible in get

---
 src/json.hpp      | 22 +++++++++++++---------
 src/json.hpp.re2c | 20 +++++++++++---------
 2 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index d238a28f..f7101d14 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -3073,8 +3073,11 @@ class basic_json
 
     @since version 2.1.0
     */
-    template <typename T,
-              detail::enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
+    template <
+        typename T,
+        detail::enable_if_t<std::is_same<typename std::remove_const<T>::type,
+                                         basic_json_t>::value,
+                            int> = 0 >
     basic_json get() const
     {
         return *this;
@@ -3104,16 +3107,15 @@ class basic_json
             not detail::has_non_default_from_json<basic_json_t,
                     U>::value,
             int > = 0 >
-    // do we really want the uncvref ? if a user call get<int &>, shouldn't we
-    // static assert ?
-    // i know there is a special behaviour for boolean_t* and such
     U get() const noexcept(noexcept(JSONSerializer<U>::from_json(
                                         std::declval<const basic_json_t&>(), std::declval<U&>())))
     {
-        static_assert(std::is_default_constructible<U>::value and
-                      std::is_copy_constructible<U>::value,
-                      "Types must be DefaultConstructible and "
-                      "CopyConstructible when used with get");
+        // we cannot static_assert on T being non-const, because there is support
+        // for get<const basic_json_t>(), which is why we still need the uncvref
+        static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
+        static_assert(not std::is_pointer<T>::value, "get cannot be used with pointer types, you might want to use get_ptr");
+        static_assert(std::is_default_constructible<U>::value,
+                      "Types must be DefaultConstructible when used with get");
         U ret;
         JSONSerializer<U>::from_json(*this, ret);
         return ret;
@@ -3143,6 +3145,8 @@ class basic_json
                             int> = 0 >
     U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
+        static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
+        static_assert(not std::is_pointer<T>::value, "get cannot be used with pointer types, you might want to use get_ptr");
         return JSONSerializer<T>::from_json(*this);
     }
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 9510cddc..65860c4d 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -3073,8 +3073,11 @@ class basic_json
 
     @since version 2.1.0
     */
-    template <typename T,
-              detail::enable_if_t<std::is_same<T, basic_json_t>::value, int> = 0>
+    template <
+        typename T,
+        detail::enable_if_t<std::is_same<typename std::remove_const<T>::type,
+                                         basic_json_t>::value,
+                            int> = 0 >
     basic_json get() const
     {
         return *this;
@@ -3104,16 +3107,14 @@ class basic_json
             not detail::has_non_default_from_json<basic_json_t,
                     U>::value,
             int > = 0 >
-    // do we really want the uncvref ? if a user call get<int &>, shouldn't we
-    // static assert ?
-    // i know there is a special behaviour for boolean_t* and such
     U get() const noexcept(noexcept(JSONSerializer<U>::from_json(
                                         std::declval<const basic_json_t&>(), std::declval<U&>())))
     {
-        static_assert(std::is_default_constructible<U>::value and
-                      std::is_copy_constructible<U>::value,
-                      "Types must be DefaultConstructible and "
-                      "CopyConstructible when used with get");
+        // we cannot static_assert on T being non-const, because there is support
+        // for get<const basic_json_t>(), which is why we still need the uncvref
+        static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
+        static_assert(std::is_default_constructible<U>::value,
+                      "Types must be DefaultConstructible when used with get");
         U ret;
         JSONSerializer<U>::from_json(*this, ret);
         return ret;
@@ -3143,6 +3144,7 @@ class basic_json
                             int> = 0 >
     U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
+        static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
         return JSONSerializer<T>::from_json(*this);
     }
 

From 9f8b270ed91808b621e26cab9c6c1dfa81459317 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 22 Jan 2017 14:07:28 +0100
Subject: [PATCH 126/174] fix some warnings

---
 src/json.hpp          | 4 +---
 src/json.hpp.re2c     | 2 +-
 test/src/unit-udt.cpp | 4 ++--
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index f7101d14..7f17a555 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -372,7 +372,7 @@ contains a `mapped_type`, whereas `std::vector` fails the test.
     public:                                                                   \
         static constexpr bool value =                                         \
                 std::is_integral<decltype(detect(std::declval<T>()))>::value; \
-    };
+    }
 
 NLOHMANN_JSON_HAS_HELPER(mapped_type);
 NLOHMANN_JSON_HAS_HELPER(key_type);
@@ -3113,7 +3113,6 @@ class basic_json
         // we cannot static_assert on T being non-const, because there is support
         // for get<const basic_json_t>(), which is why we still need the uncvref
         static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
-        static_assert(not std::is_pointer<T>::value, "get cannot be used with pointer types, you might want to use get_ptr");
         static_assert(std::is_default_constructible<U>::value,
                       "Types must be DefaultConstructible when used with get");
         U ret;
@@ -3146,7 +3145,6 @@ class basic_json
     U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
         static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
-        static_assert(not std::is_pointer<T>::value, "get cannot be used with pointer types, you might want to use get_ptr");
         return JSONSerializer<T>::from_json(*this);
     }
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 65860c4d..8c670c90 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -372,7 +372,7 @@ contains a `mapped_type`, whereas `std::vector` fails the test.
     public:                                                                   \
         static constexpr bool value =                                         \
                 std::is_integral<decltype(detect(std::declval<T>()))>::value; \
-    };
+    }
 
 NLOHMANN_JSON_HAS_HELPER(mapped_type);
 NLOHMANN_JSON_HAS_HELPER(key_type);
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 7c297190..98a60c34 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -348,7 +348,7 @@ TEST_CASE("adl_serializer specialization", "[udt]")
             json j = optPerson;
             CHECK(j.is_null());
 
-            optPerson.reset(new udt::person{{42}, {"John Doe"}});
+            optPerson.reset(new udt::person{{42}, {"John Doe"}, udt::country::russia});
             j = optPerson;
             CHECK_FALSE(j.is_null());
 
@@ -357,7 +357,7 @@ TEST_CASE("adl_serializer specialization", "[udt]")
 
         SECTION("from_json")
         {
-            auto person = udt::person{{42}, {"John Doe"}};
+            auto person = udt::person{{42}, {"John Doe"}, udt::country::russia};
             json j = person;
 
             auto optPerson = j.get<std::shared_ptr<udt::person>>();

From 9f103d19d7a2df9f88f6d4749adc9071e2e6ad1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sun, 22 Jan 2017 14:23:24 +0100
Subject: [PATCH 127/174] add implicit conversions test (operator T())

---
 test/src/unit-udt.cpp | 67 +++++++++++++++++++++++++++++++------------
 1 file changed, 48 insertions(+), 19 deletions(-)

diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 98a60c34..07f85b37 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -261,26 +261,55 @@ TEST_CASE("basic usage", "[udt]")
     {
         const auto big_json =
             u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json;
-        const auto parsed_book = big_json.get<udt::contact_book>();
-        const auto book_name = big_json["name"].get<udt::name>();
-        const auto contacts = big_json["contacts"].get<std::vector<udt::contact>>();
-        const auto contact_json = big_json["contacts"].at(0);
-        const auto contact = contact_json.get<udt::contact>();
-        const auto person = contact_json["person"].get<udt::person>();
-        const auto address = contact_json["address"].get<udt::address>();
-        const auto age = contact_json["person"]["age"].get<udt::age>();
-        const auto country = contact_json["person"]["country"].get<udt::country>();
-        const auto name = contact_json["person"]["name"].get<udt::name>();
+        SECTION("via explicit calls to get")
+        {
+          const auto parsed_book = big_json.get<udt::contact_book>();
+          const auto book_name = big_json["name"].get<udt::name>();
+          const auto contacts =
+              big_json["contacts"].get<std::vector<udt::contact>>();
+          const auto contact_json = big_json["contacts"].at(0);
+          const auto contact = contact_json.get<udt::contact>();
+          const auto person = contact_json["person"].get<udt::person>();
+          const auto address = contact_json["address"].get<udt::address>();
+          const auto age = contact_json["person"]["age"].get<udt::age>();
+          const auto country =
+              contact_json["person"]["country"].get<udt::country>();
+          const auto name = contact_json["person"]["name"].get<udt::name>();
 
-        CHECK(age == a);
-        CHECK(name == n);
-        CHECK(country == c);
-        CHECK(address == addr);
-        CHECK(person == sfinae_addict);
-        CHECK(contact == cpp_programmer);
-        CHECK(contacts == book.m_contacts);
-        CHECK(book_name == udt::name{"C++"});
-        CHECK(book == parsed_book);
+          CHECK(age == a);
+          CHECK(name == n);
+          CHECK(country == c);
+          CHECK(address == addr);
+          CHECK(person == sfinae_addict);
+          CHECK(contact == cpp_programmer);
+          CHECK(contacts == book.m_contacts);
+          CHECK(book_name == udt::name{"C++"});
+          CHECK(book == parsed_book);
+        }
+
+        SECTION("implicit conversions")
+        {
+          const udt::contact_book parsed_book = big_json;
+          const udt::name book_name = big_json["name"];
+          const std::vector<udt::contact> contacts = big_json["contacts"];
+          const auto contact_json = big_json["contacts"].at(0);
+          const udt::contact contact = contact_json;
+          const udt::person person = contact_json["person"];
+          const udt::address address = contact_json["address"];
+          const udt::age age = contact_json["person"]["age"];
+          const udt::country country = contact_json["person"]["country"];
+          const udt::name name = contact_json["person"]["name"];
+
+          CHECK(age == a);
+          CHECK(name == n);
+          CHECK(country == c);
+          CHECK(address == addr);
+          CHECK(person == sfinae_addict);
+          CHECK(contact == cpp_programmer);
+          CHECK(contacts == book.m_contacts);
+          CHECK(book_name == udt::name{"C++"});
+          CHECK(book == parsed_book);
+        }
     }
 }
 

From 3857e55290fa735a5910b678be2f7186d3ff97c9 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 24 Jan 2017 12:43:43 +0100
Subject: [PATCH 128/174] :lipstick: ran "make pretty"

---
 test/src/unit-udt.cpp | 80 +++++++++++++++++++++----------------------
 1 file changed, 40 insertions(+), 40 deletions(-)

diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 07f85b37..4231e687 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -263,52 +263,52 @@ TEST_CASE("basic usage", "[udt]")
             u8R"({"name":"C++", "contacts" : [{"person" : {"age":23, "name":"theo", "country":"France"}, "address":"Paris"}, {"person" : {"age":42, "country":"中华人民共和国", "name":"王芳"}, "address":"Paris"}]})"_json;
         SECTION("via explicit calls to get")
         {
-          const auto parsed_book = big_json.get<udt::contact_book>();
-          const auto book_name = big_json["name"].get<udt::name>();
-          const auto contacts =
-              big_json["contacts"].get<std::vector<udt::contact>>();
-          const auto contact_json = big_json["contacts"].at(0);
-          const auto contact = contact_json.get<udt::contact>();
-          const auto person = contact_json["person"].get<udt::person>();
-          const auto address = contact_json["address"].get<udt::address>();
-          const auto age = contact_json["person"]["age"].get<udt::age>();
-          const auto country =
-              contact_json["person"]["country"].get<udt::country>();
-          const auto name = contact_json["person"]["name"].get<udt::name>();
+            const auto parsed_book = big_json.get<udt::contact_book>();
+            const auto book_name = big_json["name"].get<udt::name>();
+            const auto contacts =
+                big_json["contacts"].get<std::vector<udt::contact>>();
+            const auto contact_json = big_json["contacts"].at(0);
+            const auto contact = contact_json.get<udt::contact>();
+            const auto person = contact_json["person"].get<udt::person>();
+            const auto address = contact_json["address"].get<udt::address>();
+            const auto age = contact_json["person"]["age"].get<udt::age>();
+            const auto country =
+                contact_json["person"]["country"].get<udt::country>();
+            const auto name = contact_json["person"]["name"].get<udt::name>();
 
-          CHECK(age == a);
-          CHECK(name == n);
-          CHECK(country == c);
-          CHECK(address == addr);
-          CHECK(person == sfinae_addict);
-          CHECK(contact == cpp_programmer);
-          CHECK(contacts == book.m_contacts);
-          CHECK(book_name == udt::name{"C++"});
-          CHECK(book == parsed_book);
+            CHECK(age == a);
+            CHECK(name == n);
+            CHECK(country == c);
+            CHECK(address == addr);
+            CHECK(person == sfinae_addict);
+            CHECK(contact == cpp_programmer);
+            CHECK(contacts == book.m_contacts);
+            CHECK(book_name == udt::name{"C++"});
+            CHECK(book == parsed_book);
         }
 
         SECTION("implicit conversions")
         {
-          const udt::contact_book parsed_book = big_json;
-          const udt::name book_name = big_json["name"];
-          const std::vector<udt::contact> contacts = big_json["contacts"];
-          const auto contact_json = big_json["contacts"].at(0);
-          const udt::contact contact = contact_json;
-          const udt::person person = contact_json["person"];
-          const udt::address address = contact_json["address"];
-          const udt::age age = contact_json["person"]["age"];
-          const udt::country country = contact_json["person"]["country"];
-          const udt::name name = contact_json["person"]["name"];
+            const udt::contact_book parsed_book = big_json;
+            const udt::name book_name = big_json["name"];
+            const std::vector<udt::contact> contacts = big_json["contacts"];
+            const auto contact_json = big_json["contacts"].at(0);
+            const udt::contact contact = contact_json;
+            const udt::person person = contact_json["person"];
+            const udt::address address = contact_json["address"];
+            const udt::age age = contact_json["person"]["age"];
+            const udt::country country = contact_json["person"]["country"];
+            const udt::name name = contact_json["person"]["name"];
 
-          CHECK(age == a);
-          CHECK(name == n);
-          CHECK(country == c);
-          CHECK(address == addr);
-          CHECK(person == sfinae_addict);
-          CHECK(contact == cpp_programmer);
-          CHECK(contacts == book.m_contacts);
-          CHECK(book_name == udt::name{"C++"});
-          CHECK(book == parsed_book);
+            CHECK(age == a);
+            CHECK(name == n);
+            CHECK(country == c);
+            CHECK(address == addr);
+            CHECK(person == sfinae_addict);
+            CHECK(contact == cpp_programmer);
+            CHECK(contacts == book.m_contacts);
+            CHECK(book_name == udt::name{"C++"});
+            CHECK(book == parsed_book);
         }
     }
 }

From 030cf674ef93992a789e513be82908af56e3005e Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 24 Jan 2017 12:49:38 +0100
Subject: [PATCH 129/174] :construction: fixed a warning

---
 test/src/unit-udt.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 4231e687..241336f3 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -668,7 +668,7 @@ TEST_CASE("custom serializer that does adl by default", "[udt]")
 {
     using json = nlohmann::json;
 
-    auto me = udt::person{23, "theo", udt::country::france};
+    auto me = udt::person{{23}, {"theo"}, udt::country::france};
 
     json j = me;
     custom_json cj = me;

From 250e5bf43d58eabe17b970ae15b8c37218b628b4 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 24 Jan 2017 13:47:33 +0100
Subject: [PATCH 130/174] :lipstick: overworked documentation and indentation

---
 src/json.hpp      | 461 ++++++++++++++++++++++++----------------------
 src/json.hpp.re2c | 461 ++++++++++++++++++++++++----------------------
 2 files changed, 486 insertions(+), 436 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 7f17a555..5987b385 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -107,12 +107,15 @@ SOFTWARE.
 */
 namespace nlohmann
 {
-// TODO update this doc
+
 /*!
 @brief unnamed namespace with internal helper functions
-@since version 1.0.0
-*/
 
+This namespace collects some functions that could not be defined inside the
+@ref basic_json class.
+
+@since version 2.1.0
+*/
 namespace detail
 {
 ///////////////////////////
@@ -122,22 +125,24 @@ namespace detail
 /*!
 @brief the JSON type enumeration
 
-This enumeration collects the different JSON types. It is internally used
-to distinguish the stored values, and the functions @ref basic_json::is_null(), @ref
-basic_json::is_object(), @ref basic_json::is_array(), @ref basic_json::is_string(), @ref basic_json::is_boolean(), @ref
-basic_json::is_number() (with @ref basic_json::is_number_integer(), @ref basic_json::is_number_unsigned(), and
-@ref basic_json::is_number_float()), @ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and
+This enumeration collects the different JSON types. It is internally used to
+distinguish the stored values, and the functions @ref basic_json::is_null(),
+@ref basic_json::is_object(), @ref basic_json::is_array(),
+@ref basic_json::is_string(), @ref basic_json::is_boolean(),
+@ref basic_json::is_number() (with @ref basic_json::is_number_integer(),
+@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()),
+@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and
 @ref basic_json::is_structured() rely on it.
 
-@note There are three enumeration entries (number_integer,
-number_unsigned, and number_float), because the library distinguishes
-these three types for numbers: @ref basic_json::number_unsigned_t is used for unsigned
-integers, @ref basic_json::number_integer_t is used for signed integers, and @ref
-basic_json::number_float_t is used for floating-point numbers or to approximate
-integers which do not fit in the limits of their respective type.
+@note There are three enumeration entries (number_integer, number_unsigned, and
+number_float), because the library distinguishes these three types for numbers:
+@ref basic_json::number_unsigned_t is used for unsigned integers,
+@ref basic_json::number_integer_t is used for signed integers, and
+@ref basic_json::number_float_t is used for floating-point numbers or to
+approximate integers which do not fit in the limits of their respective type.
 
-@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON value with
-the default value for a given type
+@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON
+value with the default value for a given type
 
 @since version 1.0.0
 */
@@ -154,12 +159,6 @@ enum class value_t : uint8_t
     discarded        ///< discarded by the the parser callback function
 };
 
-//////////////////////////////////////////
-// lexicographical comparison operators //
-//////////////////////////////////////////
-
-/// @name lexicographical comparison operators
-/// @{
 /*!
 @brief comparison operator for JSON types
 
@@ -193,51 +192,62 @@ inline bool operator<(const value_t lhs, const value_t rhs) noexcept
            order[static_cast<std::size_t>(rhs)];
 }
 
+
+/////////////
+// helpers //
+/////////////
+
 // alias templates to reduce boilerplate
-template <bool B, typename T = void>
+template<bool B, typename T = void>
 using enable_if_t = typename std::enable_if<B, T>::type;
 
-template <typename T>
+template<typename T>
 using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;
 
 // Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait
-template <typename T>
+template<typename T>
 using is_unscoped_enum =
     std::integral_constant<bool, std::is_convertible<T, int>::value and
     std::is_enum<T>::value>;
 
-// Implementation of 2 C++17 constructs: conjunction, negation.
-// This is needed to avoid evaluating all the traits in a condition
-//
-// For example: not std::is_same<void, T>::value and has_value_type<T>::value
-// will not compile when T = void (on MSVC at least)
-// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value
-// will stop evaluating if negation<...>::value == false
-//
-// Please note that those constructs must be used with caution, since symbols can
-// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors)
-// Only use it when you have too (see example ahead)
-template <class...> struct conjunction : std::true_type {};
-template <class B1> struct conjunction<B1> : B1 {};
-template <class B1, class... Bn>
-struct conjunction<B1, Bn...>
-: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
+/*
+Implementation of 2 C++17 constructs: conjunction, negation. This is needed
+to avoid evaluating all the traits in a condition
 
-template <class B> struct negation : std::integral_constant < bool, !B::value > {};
+For example: not std::is_same<void, T>::value and has_value_type<T>::value
+will not compile when T = void (on MSVC at least). Whereas
+conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value will
+stop evaluating if negation<...>::value == false
+
+Please note that those constructs must be used with caution, since symbols can
+become very long quickly (which can slow down compilation and cause MSVC
+internal compiler errors). Only use it when you have to (see example ahead).
+*/
+template<class...> struct conjunction : std::true_type {};
+template<class B1> struct conjunction<B1> : B1 {};
+template<class B1, class... Bn>
+struct conjunction<B1, Bn...> : std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
+
+template<class B> struct negation : std::integral_constant < bool, !B::value > {};
 
 // dispatch utility (taken from ranges-v3)
-template <unsigned N> struct priority_tag : priority_tag < N - 1 > {};
+template<unsigned N> struct priority_tag : priority_tag < N - 1 > {};
+template<> struct priority_tag<0> {};
 
-template <> struct priority_tag<0> {};
+
+//////////////////
+// constructors //
+//////////////////
 
 // This is an experiment. I need this to move constructors out of basic_json.
-// I'm sure there is a better way, but this might need a big basic_json refactoring
-template <value_t> struct external_constructor;
+// I'm sure there is a better way, but this might need a big basic_json
+// refactoring
+template<value_t> struct external_constructor;
 
-template <>
+template<>
 struct external_constructor<value_t::boolean>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept
     {
         j.m_type = value_t::boolean;
@@ -246,10 +256,10 @@ struct external_constructor<value_t::boolean>
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::string>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s)
     {
         j.m_type = value_t::string;
@@ -258,15 +268,17 @@ struct external_constructor<value_t::string>
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::number_float>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept
     {
         // replace infinity and NAN by null
         if (not std::isfinite(val))
+        {
             j = BasicJsonType{};
+        }
         else
         {
             j.m_type = value_t::number_float;
@@ -276,10 +288,10 @@ struct external_constructor<value_t::number_float>
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::number_unsigned>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept
     {
         j.m_type = value_t::number_unsigned;
@@ -288,10 +300,10 @@ struct external_constructor<value_t::number_unsigned>
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::number_integer>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept
     {
         j.m_type = value_t::number_integer;
@@ -300,10 +312,10 @@ struct external_constructor<value_t::number_integer>
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::array>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr)
     {
         j.m_type = value_t::array;
@@ -311,25 +323,24 @@ struct external_constructor<value_t::array>
         j.assert_invariant();
     }
 
-    template <typename BasicJsonType, typename CompatibleArrayType,
-              enable_if_t<not std::is_same<CompatibleArrayType,
-                                           typename BasicJsonType::array_t>::value,
-                          int> = 0>
+    template<typename BasicJsonType, typename CompatibleArrayType,
+             enable_if_t<not std::is_same<CompatibleArrayType,
+                                          typename BasicJsonType::array_t>::value,
+                         int> = 0>
     static void construct(BasicJsonType& j, const CompatibleArrayType& arr)
     {
         using std::begin;
         using std::end;
         j.m_type = value_t::array;
-        j.m_value.array =
-            j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr));
+        j.m_value.array = j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr));
         j.assert_invariant();
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::object>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj)
     {
         j.m_type = value_t::object;
@@ -337,22 +348,26 @@ struct external_constructor<value_t::object>
         j.assert_invariant();
     }
 
-    template <typename BasicJsonType, typename CompatibleObjectType,
-              enable_if_t<not std::is_same<CompatibleObjectType,
-                                           typename BasicJsonType::object_t>::value,
-                          int> = 0>
+    template<typename BasicJsonType, typename CompatibleObjectType,
+             enable_if_t<not std::is_same<CompatibleObjectType,
+                                          typename BasicJsonType::object_t>::value,
+                         int> = 0>
     static void construct(BasicJsonType& j, const CompatibleObjectType& obj)
     {
         using std::begin;
         using std::end;
 
         j.m_type = value_t::object;
-        j.m_value.object =
-            j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj));
+        j.m_value.object = j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj));
         j.assert_invariant();
     }
 };
 
+
+////////////////////////
+// has_/is_ functions //
+////////////////////////
+
 /*!
 @brief Helper to determine whether there's a key_type for T.
 
@@ -364,9 +379,9 @@ contains a `mapped_type`, whereas `std::vector` fails the test.
 @since version 1.0.0, overworked in version 2.0.6
 */
 #define NLOHMANN_JSON_HAS_HELPER(type)                                        \
-    template <typename T> struct has_##type {                                 \
+    template<typename T> struct has_##type {                                  \
     private:                                                                  \
-        template <typename U, typename = typename U::type>                    \
+        template<typename U, typename = typename U::type>                     \
         static int detect(U &&);                                              \
         static void detect(...);                                              \
     public:                                                                   \
@@ -381,10 +396,10 @@ NLOHMANN_JSON_HAS_HELPER(iterator);
 
 #undef NLOHMANN_JSON_HAS_HELPER
 
-template <bool B, class RealType, class CompatibleObjectType>
+template<bool B, class RealType, class CompatibleObjectType>
 struct is_compatible_object_type_impl : std::false_type {};
 
-template <class RealType, class CompatibleObjectType>
+template<class RealType, class CompatibleObjectType>
 struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 {
     static constexpr auto value =
@@ -404,7 +419,7 @@ struct is_compatible_object_type
                                   typename BasicJsonType::object_t, CompatibleObjectType >::value;
 };
 
-template <typename BasicJsonType, typename T>
+template<typename BasicJsonType, typename T>
 struct is_basic_json_nested_type
 {
     static auto constexpr value = std::is_same<T, typename BasicJsonType::iterator>::value or
@@ -414,11 +429,9 @@ struct is_basic_json_nested_type
                                   std::is_same<T, typename BasicJsonType::json_pointer>::value;
 };
 
-template <class BasicJsonType, class CompatibleArrayType>
+template<class BasicJsonType, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-    // TODO concept Container?
-    // this might not make VS happy
     static auto constexpr value =
         conjunction<negation<std::is_same<void, CompatibleArrayType>>,
         negation<is_compatible_object_type<
@@ -430,10 +443,10 @@ struct is_compatible_array_type
         has_iterator<CompatibleArrayType>>::value;
 };
 
-template <bool, typename, typename>
+template<bool, typename, typename>
 struct is_compatible_integer_type_impl : std::false_type {};
 
-template <typename RealIntegerType, typename CompatibleNumberIntegerType>
+template<typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
 {
     // is there an assert somewhere on overflows?
@@ -447,24 +460,25 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn
         RealLimits::is_signed == CompatibleLimits::is_signed;
 };
 
-template <typename RealIntegerType, typename CompatibleNumberIntegerType>
+template<typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
-    static constexpr auto
-    value = is_compatible_integer_type_impl <
-            std::is_integral<CompatibleNumberIntegerType>::value and
-            not std::is_same<bool, CompatibleNumberIntegerType>::value,
-            RealIntegerType, CompatibleNumberIntegerType > ::value;
+    static constexpr auto value =
+        is_compatible_integer_type_impl <
+        std::is_integral<CompatibleNumberIntegerType>::value and
+        not std::is_same<bool, CompatibleNumberIntegerType>::value,
+        RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
 
+
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
-template <typename BasicJsonType, typename T>
+template<typename BasicJsonType, typename T>
 struct has_from_json
 {
   private:
     // also check the return type of from_json
-    template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
-                  std::declval<BasicJsonType>(), std::declval<T&>()))>::value>>
+    template<typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
+                 std::declval<BasicJsonType>(), std::declval<T&>()))>::value>>
     static int detect(U&&);
     static void detect(...);
 
@@ -475,7 +489,7 @@ struct has_from_json
 
 // This trait checks if JSONSerializer<T>::from_json(json const&) exists
 // this overload is used for non-default-constructible user-defined-types
-template <typename BasicJsonType, typename T>
+template<typename BasicJsonType, typename T>
 struct has_non_default_from_json
 {
   private:
@@ -492,12 +506,12 @@ struct has_non_default_from_json
 };
 
 // This trait checks if BasicJsonType::json_serializer<T>::to_json exists
-template <typename BasicJsonType, typename T>
+template<typename BasicJsonType, typename T>
 struct has_to_json
 {
   private:
-    template <typename U, typename = decltype(uncvref_t<U>::to_json(
-                  std::declval<BasicJsonType&>(), std::declval<T>()))>
+    template<typename U, typename = decltype(uncvref_t<U>::to_json(
+                 std::declval<BasicJsonType&>(), std::declval<T>()))>
     static int detect(U&&);
     static void detect(...);
 
@@ -506,58 +520,33 @@ struct has_to_json
                                       std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value;
 };
 
-// overloads for basic_json template parameters
 
-template <typename BasicJsonType, typename ArithmeticType,
-          enable_if_t<std::is_arithmetic<ArithmeticType>::value and
-                      not std::is_same<ArithmeticType,
-                                       typename BasicJsonType::boolean_t>::value,
-                      int> = 0>
-void get_arithmetic_value(const  BasicJsonType& j, ArithmeticType& val)
-{
-    switch (static_cast<value_t>(j))
-    {
-        case value_t::number_unsigned:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
-            break;
-        case value_t::number_integer:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
-            break;
-        case value_t::number_float:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_float_t*>());
-            break;
-        default:
-            JSON_THROW(
-                std::domain_error("type must be number, but is " + j.type_name()));
-    }
-}
+/////////////
+// to_json //
+/////////////
 
-template <typename BasicJsonType>
+template<typename BasicJsonType>
 void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept
 {
     external_constructor<value_t::boolean>::construct(j, b);
 }
 
-template <typename BasicJsonType, typename CompatibleString,
-          enable_if_t<std::is_constructible<typename BasicJsonType::string_t,
-                      CompatibleString>::value,
-                      int> = 0>
+template<typename BasicJsonType, typename CompatibleString,
+         enable_if_t<std::is_constructible<typename BasicJsonType::string_t,
+                     CompatibleString>::value,
+                     int> = 0>
 void to_json(BasicJsonType& j, const CompatibleString& s)
 {
     external_constructor<value_t::string>::construct(j, s);
 }
 
-template <typename BasicJsonType, typename FloatType,
-          enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
+template<typename BasicJsonType, typename FloatType,
+         enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
 void to_json(BasicJsonType& j, FloatType val) noexcept
 {
     external_constructor<value_t::number_float>::construct(j, static_cast<typename BasicJsonType::number_float_t>(val));
 }
 
-
 template <
     typename BasicJsonType, typename CompatibleNumberUnsignedType,
     enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t,
@@ -578,8 +567,8 @@ void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
     external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val));
 }
 
-template <typename BasicJsonType, typename UnscopedEnumType,
-          enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
+template<typename BasicJsonType, typename UnscopedEnumType,
+         enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
 void to_json(BasicJsonType& j, UnscopedEnumType e) noexcept
 {
     external_constructor<value_t::number_integer>::construct(j, e);
@@ -605,7 +594,48 @@ void to_json(BasicJsonType& j, const  CompatibleObjectType& arr)
     external_constructor<value_t::object>::construct(j, arr);
 }
 
-template <typename BasicJsonType>
+
+///////////////
+// from_json //
+///////////////
+
+// overloads for basic_json template parameters
+template<typename BasicJsonType, typename ArithmeticType,
+         enable_if_t<std::is_arithmetic<ArithmeticType>::value and
+                     not std::is_same<ArithmeticType,
+                                      typename BasicJsonType::boolean_t>::value,
+                     int> = 0>
+void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
+{
+    switch (static_cast<value_t>(j))
+    {
+        case value_t::number_unsigned:
+        {
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
+            break;
+        }
+        case value_t::number_integer:
+        {
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
+            break;
+        }
+        case value_t::number_float:
+        {
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename BasicJsonType::number_float_t*>());
+            break;
+        }
+        default:
+        {
+            JSON_THROW(
+                std::domain_error("type must be number, but is " + j.type_name()));
+        }
+    }
+}
+
+template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
 {
     if (!j.is_boolean())
@@ -615,7 +645,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
     b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>();
 }
 
-template <typename BasicJsonType>
+template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)
 {
     if (!j.is_string())
@@ -625,35 +655,35 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)
     s = *j.template get_ptr<const typename BasicJsonType::string_t*>();
 }
 
-template <typename BasicJsonType>
+template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename BasicJsonType>
+template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename BasicJsonType>
+template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename BasicJsonType, typename UnscopedEnumType,
-          enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void from_json(const  BasicJsonType& j, UnscopedEnumType& e)
+template<typename BasicJsonType, typename UnscopedEnumType,
+         enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
+void from_json(const BasicJsonType& j, UnscopedEnumType& e)
 {
     typename std::underlying_type<UnscopedEnumType>::type val = e;
     get_arithmetic_value(j, val);
     e = static_cast<UnscopedEnumType>(val);
 }
 
-template <typename BasicJsonType>
-void from_json(const  BasicJsonType& j, typename BasicJsonType::array_t& arr)
+template<typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr)
 {
     if (!j.is_array())
     {
@@ -662,8 +692,9 @@ void from_json(const  BasicJsonType& j, typename BasicJsonType::array_t& arr)
     arr = *j.template get_ptr<const typename BasicJsonType::array_t*>();
 }
 
-// forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
-template <typename BasicJsonType, typename T, typename Allocator>
+// forward_list doesn't have an insert method
+// TODO find a way to avoid including forward_list
+template<typename BasicJsonType, typename T, typename Allocator>
 void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
 {
     // do not perform the check when user wants to retrieve jsons
@@ -685,23 +716,23 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
     }
 }
 
-template <typename BasicJsonType, typename CompatibleArrayType>
-void from_json_array_impl(const  BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>)
+template<typename BasicJsonType, typename CompatibleArrayType>
+void from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>)
 {
     using std::begin;
     using std::end;
 
-    std::transform(
-        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  BasicJsonType & i)
+    std::transform(j.begin(), j.end(),
+                   std::inserter(arr, end(arr)), [](const BasicJsonType & i)
     {
-        // get<BasicJsonType>() returns *this, this won't call a from_json method when
-        // value_type is BasicJsonType
+        // get<BasicJsonType>() returns *this, this won't call a from_json
+        // method when value_type is BasicJsonType
         return i.template get<typename CompatibleArrayType::value_type>();
     });
 }
 
-template <typename BasicJsonType, typename CompatibleArrayType>
-auto from_json_array_impl(const  BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>)
+template<typename BasicJsonType, typename CompatibleArrayType>
+auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>)
 -> decltype(
     arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
     void())
@@ -711,26 +742,24 @@ auto from_json_array_impl(const  BasicJsonType& j, CompatibleArrayType& arr, pri
 
     arr.reserve(j.size());
     std::transform(
-        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  BasicJsonType & i)
+        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i)
     {
-        // get<BasicJsonType>() returns *this, this won't call a from_json method when
-        // value_type is BasicJsonType
+        // get<BasicJsonType>() returns *this, this won't call a from_json
+        // method when value_type is BasicJsonType
         return i.template get<typename CompatibleArrayType::value_type>();
     });
 }
 
-template <
-    typename BasicJsonType, typename CompatibleArrayType,
-    enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and
-                not std::is_same<typename BasicJsonType::array_t,
-                                 CompatibleArrayType>::value,
-                int> = 0 >
-void from_json(const  BasicJsonType& j, CompatibleArrayType& arr)
+template<typename BasicJsonType, typename CompatibleArrayType,
+         enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and
+                     not std::is_same<typename BasicJsonType::array_t, CompatibleArrayType>::value, int> = 0>
+void from_json(const BasicJsonType& j, CompatibleArrayType& arr)
 {
     if (j.is_null())
     {
         JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
     }
+
     // when T == BasicJsonType, do not check if value_t is correct
     if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value)
     {
@@ -742,12 +771,9 @@ void from_json(const  BasicJsonType& j, CompatibleArrayType& arr)
     from_json_array_impl(j, arr, priority_tag<1> {});
 }
 
-
-template <
-    typename BasicJsonType, typename CompatibleObjectType,
-    enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value,
-                int> = 0 >
-void from_json(const  BasicJsonType& j, CompatibleObjectType& obj)
+template<typename BasicJsonType, typename CompatibleObjectType,
+         enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0>
+void from_json(const BasicJsonType& j, CompatibleObjectType& obj)
 {
     if (!j.is_object())
     {
@@ -766,63 +792,52 @@ void from_json(const  BasicJsonType& j, CompatibleObjectType& obj)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
 // in case of a custom BooleanType which is not an arithmetic type?
-template <
-    typename BasicJsonType, typename ArithmeticType,
-    enable_if_t <
-        std::is_arithmetic<ArithmeticType>::value and
-        not std::is_same<ArithmeticType,
-                         typename BasicJsonType::number_unsigned_t>::value and
-        not std::is_same<ArithmeticType,
-                         typename BasicJsonType::number_integer_t>::value and
-        not std::is_same<ArithmeticType,
-                         typename BasicJsonType::number_float_t>::value and
-        not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value,
-        int > = 0 >
+template<typename BasicJsonType, typename ArithmeticType,
+         enable_if_t <
+             std::is_arithmetic<ArithmeticType>::value and
+             not std::is_same<ArithmeticType, typename BasicJsonType::number_unsigned_t>::value and
+             not std::is_same<ArithmeticType, typename BasicJsonType::number_integer_t>::value and
+             not std::is_same<ArithmeticType, typename BasicJsonType::number_float_t>::value and
+             not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value,
+             int> = 0>
 void from_json(const BasicJsonType& j, ArithmeticType& val)
 {
     switch (static_cast<value_t>(j))
     {
         case value_t::number_unsigned:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
+            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
             break;
         case value_t::number_integer:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
+            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
             break;
         case value_t::number_float:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_float_t*>());
+            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>());
             break;
         case value_t::boolean:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::boolean_t*>());
+            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>());
             break;
         default:
-            JSON_THROW(
-                std::domain_error("type must be number, but is " + j.type_name()));
+            JSON_THROW(std::domain_error("type must be number, but is " + j.type_name()));
     }
 }
 
 struct to_json_fn
 {
-    template <typename BasicJsonType, typename T>
-    auto call(BasicJsonType& j, T&& val, priority_tag<1>) const
-    noexcept(noexcept(to_json(j, std::forward<T>(val))))
-    -> decltype(to_json(j, std::forward<T>(val)),
-                void())
+    template<typename BasicJsonType, typename T>
+    auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val))))
+    -> decltype(to_json(j, std::forward<T>(val)), void())
     {
         return to_json(j, std::forward<T>(val));
     }
 
-    template <typename BasicJsonType, typename T>
+    template<typename BasicJsonType, typename T>
     void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept
     {
         static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called");
     }
 
   public:
-    template <typename BasicJsonType, typename T>
+    template<typename BasicJsonType, typename T>
     void operator()(BasicJsonType& j, T&& val) const
     noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {})))
     {
@@ -833,23 +848,23 @@ struct to_json_fn
 struct from_json_fn
 {
   private:
-    template <typename BasicJsonType, typename T>
-    auto call(const  BasicJsonType& j, T& val, priority_tag<1>) const
+    template<typename BasicJsonType, typename T>
+    auto call(const BasicJsonType& j, T& val, priority_tag<1>) const
     noexcept(noexcept(from_json(j, val)))
     -> decltype(from_json(j, val), void())
     {
         return from_json(j, val);
     }
 
-    template <typename BasicJsonType, typename T>
+    template<typename BasicJsonType, typename T>
     void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept
     {
         static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called");
     }
 
   public:
-    template <typename BasicJsonType, typename T>
-    void operator()(const  BasicJsonType& j, T& val) const
+    template<typename BasicJsonType, typename T>
+    void operator()(const BasicJsonType& j, T& val) const
     noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {})))
     {
         return call(j, val, priority_tag<1> {});
@@ -857,15 +872,16 @@ struct from_json_fn
 };
 
 // taken from ranges-v3
-template <typename T>
+template<typename T>
 struct static_const
 {
     static constexpr T value{};
 };
 
-template <typename T>
+template<typename T>
 constexpr T static_const<T>::value;
 
+
 /*!
 @brief helper class to create locales with decimal point
 
@@ -885,7 +901,8 @@ struct DecimalSeparator : std::numpunct<char>
         return '.';
     }
 };
-}
+} // namespace detail
+
 
 namespace
 {
@@ -895,16 +912,16 @@ constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::va
 
 // default JSONSerializer template argument, doesn't care about template argument
 // will use ADL for serialization
-template <typename = void, typename = void>
+template<typename = void, typename = void>
 struct adl_serializer
 {
-    template <typename BasicJsonType, typename T>
+    template<typename BasicJsonType, typename T>
     static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))
     {
         ::nlohmann::from_json(std::forward<BasicJsonType>(j), val);
     }
 
-    template <typename BasicJsonType, typename T>
+    template<typename BasicJsonType, typename T>
     static void to_json(BasicJsonType& j, T&& val) noexcept(
         noexcept(::nlohmann::to_json(j, std::forward<T>(val))))
     {
@@ -912,6 +929,7 @@ struct adl_serializer
     }
 };
 
+
 /*!
 @brief a class to store JSON values
 
@@ -1005,7 +1023,7 @@ template <
 class basic_json
 {
   private:
-    template <detail::value_t> friend struct detail::external_constructor;
+    template<detail::value_t> friend struct detail::external_constructor;
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -1017,7 +1035,7 @@ class basic_json
     template<typename U> class iter_impl;
     template<typename Base> class json_reverse_iterator;
     class json_pointer;
-    template <typename T, typename SFINAE>
+    template<typename T, typename SFINAE>
     using json_serializer = JSONSerializer<T, SFINAE>;
 
     /////////////////////
@@ -1904,13 +1922,13 @@ class basic_json
 
     @since version 2.1.0
     */
-    template <typename T, typename U = detail::uncvref_t<T>,
-              detail::enable_if_t<not std::is_base_of<std::istream, U>::value and
-                                  not std::is_same<U, basic_json_t>::value and
-                                  not detail::is_basic_json_nested_type<
-                                      basic_json_t, U>::value and
-                                  detail::has_to_json<basic_json, U>::value,
-                                  int> = 0>
+    template<typename T, typename U = detail::uncvref_t<T>,
+             detail::enable_if_t<not std::is_base_of<std::istream, U>::value and
+                                 not std::is_same<U, basic_json_t>::value and
+                                 not detail::is_basic_json_nested_type<
+                                     basic_json_t, U>::value and
+                                 detail::has_to_json<basic_json, U>::value,
+                                 int> = 0>
     basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json(
             std::declval<basic_json_t&>(), std::forward<T>(val))))
     {
@@ -5714,6 +5732,13 @@ class basic_json
     /// @}
 
   public:
+    //////////////////////////////////////////
+    // lexicographical comparison operators //
+    //////////////////////////////////////////
+
+    /// @name lexicographical comparison operators
+    /// @{
+
     /*!
     @brief comparison: equal
 
@@ -10795,7 +10820,7 @@ basic_json_parser_66:
             for (; curptr < m_cursor; curptr++)
             {
                 // quickly skip tests if a digit
-                if (*curptr < '0' || *curptr > '9')
+                if (*curptr < '0' or* curptr > '9')
                 {
                     if (*curptr == '.')
                     {
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 8c670c90..0a7f207d 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -107,12 +107,15 @@ SOFTWARE.
 */
 namespace nlohmann
 {
-// TODO update this doc
+
 /*!
 @brief unnamed namespace with internal helper functions
-@since version 1.0.0
-*/
 
+This namespace collects some functions that could not be defined inside the
+@ref basic_json class.
+
+@since version 2.1.0
+*/
 namespace detail
 {
 ///////////////////////////
@@ -122,22 +125,24 @@ namespace detail
 /*!
 @brief the JSON type enumeration
 
-This enumeration collects the different JSON types. It is internally used
-to distinguish the stored values, and the functions @ref basic_json::is_null(), @ref
-basic_json::is_object(), @ref basic_json::is_array(), @ref basic_json::is_string(), @ref basic_json::is_boolean(), @ref
-basic_json::is_number() (with @ref basic_json::is_number_integer(), @ref basic_json::is_number_unsigned(), and
-@ref basic_json::is_number_float()), @ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and
+This enumeration collects the different JSON types. It is internally used to
+distinguish the stored values, and the functions @ref basic_json::is_null(),
+@ref basic_json::is_object(), @ref basic_json::is_array(),
+@ref basic_json::is_string(), @ref basic_json::is_boolean(),
+@ref basic_json::is_number() (with @ref basic_json::is_number_integer(),
+@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()),
+@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and
 @ref basic_json::is_structured() rely on it.
 
-@note There are three enumeration entries (number_integer,
-number_unsigned, and number_float), because the library distinguishes
-these three types for numbers: @ref basic_json::number_unsigned_t is used for unsigned
-integers, @ref basic_json::number_integer_t is used for signed integers, and @ref
-basic_json::number_float_t is used for floating-point numbers or to approximate
-integers which do not fit in the limits of their respective type.
+@note There are three enumeration entries (number_integer, number_unsigned, and
+number_float), because the library distinguishes these three types for numbers:
+@ref basic_json::number_unsigned_t is used for unsigned integers,
+@ref basic_json::number_integer_t is used for signed integers, and
+@ref basic_json::number_float_t is used for floating-point numbers or to
+approximate integers which do not fit in the limits of their respective type.
 
-@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON value with
-the default value for a given type
+@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON
+value with the default value for a given type
 
 @since version 1.0.0
 */
@@ -154,12 +159,6 @@ enum class value_t : uint8_t
     discarded        ///< discarded by the the parser callback function
 };
 
-//////////////////////////////////////////
-// lexicographical comparison operators //
-//////////////////////////////////////////
-
-/// @name lexicographical comparison operators
-/// @{
 /*!
 @brief comparison operator for JSON types
 
@@ -193,51 +192,62 @@ inline bool operator<(const value_t lhs, const value_t rhs) noexcept
            order[static_cast<std::size_t>(rhs)];
 }
 
+
+/////////////
+// helpers //
+/////////////
+
 // alias templates to reduce boilerplate
-template <bool B, typename T = void>
+template<bool B, typename T = void>
 using enable_if_t = typename std::enable_if<B, T>::type;
 
-template <typename T>
+template<typename T>
 using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;
 
 // Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait
-template <typename T>
+template<typename T>
 using is_unscoped_enum =
     std::integral_constant<bool, std::is_convertible<T, int>::value and
     std::is_enum<T>::value>;
 
-// Implementation of 2 C++17 constructs: conjunction, negation.
-// This is needed to avoid evaluating all the traits in a condition
-//
-// For example: not std::is_same<void, T>::value and has_value_type<T>::value
-// will not compile when T = void (on MSVC at least)
-// Whereas conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value
-// will stop evaluating if negation<...>::value == false
-//
-// Please note that those constructs must be used with caution, since symbols can
-// become very long quickly (which can slow down compilation and cause MSVC internal compiler errors)
-// Only use it when you have too (see example ahead)
-template <class...> struct conjunction : std::true_type {};
-template <class B1> struct conjunction<B1> : B1 {};
-template <class B1, class... Bn>
-struct conjunction<B1, Bn...>
-: std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
+/*
+Implementation of 2 C++17 constructs: conjunction, negation. This is needed
+to avoid evaluating all the traits in a condition
 
-template <class B> struct negation : std::integral_constant < bool, !B::value > {};
+For example: not std::is_same<void, T>::value and has_value_type<T>::value
+will not compile when T = void (on MSVC at least). Whereas
+conjunction<negation<std::is_same<void, T>>, has_value_type<T>>::value will
+stop evaluating if negation<...>::value == false
+
+Please note that those constructs must be used with caution, since symbols can
+become very long quickly (which can slow down compilation and cause MSVC
+internal compiler errors). Only use it when you have to (see example ahead).
+*/
+template<class...> struct conjunction : std::true_type {};
+template<class B1> struct conjunction<B1> : B1 {};
+template<class B1, class... Bn>
+struct conjunction<B1, Bn...> : std::conditional<bool(B1::value), conjunction<Bn...>, B1>::type {};
+
+template<class B> struct negation : std::integral_constant < bool, !B::value > {};
 
 // dispatch utility (taken from ranges-v3)
-template <unsigned N> struct priority_tag : priority_tag < N - 1 > {};
+template<unsigned N> struct priority_tag : priority_tag < N - 1 > {};
+template<> struct priority_tag<0> {};
 
-template <> struct priority_tag<0> {};
+
+//////////////////
+// constructors //
+//////////////////
 
 // This is an experiment. I need this to move constructors out of basic_json.
-// I'm sure there is a better way, but this might need a big basic_json refactoring
-template <value_t> struct external_constructor;
+// I'm sure there is a better way, but this might need a big basic_json
+// refactoring
+template<value_t> struct external_constructor;
 
-template <>
+template<>
 struct external_constructor<value_t::boolean>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept
     {
         j.m_type = value_t::boolean;
@@ -246,10 +256,10 @@ struct external_constructor<value_t::boolean>
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::string>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s)
     {
         j.m_type = value_t::string;
@@ -258,15 +268,17 @@ struct external_constructor<value_t::string>
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::number_float>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept
     {
         // replace infinity and NAN by null
         if (not std::isfinite(val))
+        {
             j = BasicJsonType{};
+        }
         else
         {
             j.m_type = value_t::number_float;
@@ -276,10 +288,10 @@ struct external_constructor<value_t::number_float>
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::number_unsigned>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept
     {
         j.m_type = value_t::number_unsigned;
@@ -288,10 +300,10 @@ struct external_constructor<value_t::number_unsigned>
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::number_integer>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept
     {
         j.m_type = value_t::number_integer;
@@ -300,10 +312,10 @@ struct external_constructor<value_t::number_integer>
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::array>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr)
     {
         j.m_type = value_t::array;
@@ -311,25 +323,24 @@ struct external_constructor<value_t::array>
         j.assert_invariant();
     }
 
-    template <typename BasicJsonType, typename CompatibleArrayType,
-              enable_if_t<not std::is_same<CompatibleArrayType,
-                                           typename BasicJsonType::array_t>::value,
-                          int> = 0>
+    template<typename BasicJsonType, typename CompatibleArrayType,
+             enable_if_t<not std::is_same<CompatibleArrayType,
+                                          typename BasicJsonType::array_t>::value,
+                         int> = 0>
     static void construct(BasicJsonType& j, const CompatibleArrayType& arr)
     {
         using std::begin;
         using std::end;
         j.m_type = value_t::array;
-        j.m_value.array =
-            j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr));
+        j.m_value.array = j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr));
         j.assert_invariant();
     }
 };
 
-template <>
+template<>
 struct external_constructor<value_t::object>
 {
-    template <typename BasicJsonType>
+    template<typename BasicJsonType>
     static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj)
     {
         j.m_type = value_t::object;
@@ -337,22 +348,26 @@ struct external_constructor<value_t::object>
         j.assert_invariant();
     }
 
-    template <typename BasicJsonType, typename CompatibleObjectType,
-              enable_if_t<not std::is_same<CompatibleObjectType,
-                                           typename BasicJsonType::object_t>::value,
-                          int> = 0>
+    template<typename BasicJsonType, typename CompatibleObjectType,
+             enable_if_t<not std::is_same<CompatibleObjectType,
+                                          typename BasicJsonType::object_t>::value,
+                         int> = 0>
     static void construct(BasicJsonType& j, const CompatibleObjectType& obj)
     {
         using std::begin;
         using std::end;
 
         j.m_type = value_t::object;
-        j.m_value.object =
-            j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj));
+        j.m_value.object = j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj));
         j.assert_invariant();
     }
 };
 
+
+////////////////////////
+// has_/is_ functions //
+////////////////////////
+
 /*!
 @brief Helper to determine whether there's a key_type for T.
 
@@ -364,9 +379,9 @@ contains a `mapped_type`, whereas `std::vector` fails the test.
 @since version 1.0.0, overworked in version 2.0.6
 */
 #define NLOHMANN_JSON_HAS_HELPER(type)                                        \
-    template <typename T> struct has_##type {                                 \
+    template<typename T> struct has_##type {                                  \
     private:                                                                  \
-        template <typename U, typename = typename U::type>                    \
+        template<typename U, typename = typename U::type>                     \
         static int detect(U &&);                                              \
         static void detect(...);                                              \
     public:                                                                   \
@@ -381,10 +396,10 @@ NLOHMANN_JSON_HAS_HELPER(iterator);
 
 #undef NLOHMANN_JSON_HAS_HELPER
 
-template <bool B, class RealType, class CompatibleObjectType>
+template<bool B, class RealType, class CompatibleObjectType>
 struct is_compatible_object_type_impl : std::false_type {};
 
-template <class RealType, class CompatibleObjectType>
+template<class RealType, class CompatibleObjectType>
 struct is_compatible_object_type_impl<true, RealType, CompatibleObjectType>
 {
     static constexpr auto value =
@@ -404,7 +419,7 @@ struct is_compatible_object_type
                                   typename BasicJsonType::object_t, CompatibleObjectType >::value;
 };
 
-template <typename BasicJsonType, typename T>
+template<typename BasicJsonType, typename T>
 struct is_basic_json_nested_type
 {
     static auto constexpr value = std::is_same<T, typename BasicJsonType::iterator>::value or
@@ -414,11 +429,9 @@ struct is_basic_json_nested_type
                                   std::is_same<T, typename BasicJsonType::json_pointer>::value;
 };
 
-template <class BasicJsonType, class CompatibleArrayType>
+template<class BasicJsonType, class CompatibleArrayType>
 struct is_compatible_array_type
 {
-    // TODO concept Container?
-    // this might not make VS happy
     static auto constexpr value =
         conjunction<negation<std::is_same<void, CompatibleArrayType>>,
         negation<is_compatible_object_type<
@@ -430,10 +443,10 @@ struct is_compatible_array_type
         has_iterator<CompatibleArrayType>>::value;
 };
 
-template <bool, typename, typename>
+template<bool, typename, typename>
 struct is_compatible_integer_type_impl : std::false_type {};
 
-template <typename RealIntegerType, typename CompatibleNumberIntegerType>
+template<typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIntegerType>
 {
     // is there an assert somewhere on overflows?
@@ -447,24 +460,25 @@ struct is_compatible_integer_type_impl<true, RealIntegerType, CompatibleNumberIn
         RealLimits::is_signed == CompatibleLimits::is_signed;
 };
 
-template <typename RealIntegerType, typename CompatibleNumberIntegerType>
+template<typename RealIntegerType, typename CompatibleNumberIntegerType>
 struct is_compatible_integer_type
 {
-    static constexpr auto
-    value = is_compatible_integer_type_impl <
-            std::is_integral<CompatibleNumberIntegerType>::value and
-            not std::is_same<bool, CompatibleNumberIntegerType>::value,
-            RealIntegerType, CompatibleNumberIntegerType > ::value;
+    static constexpr auto value =
+        is_compatible_integer_type_impl <
+        std::is_integral<CompatibleNumberIntegerType>::value and
+        not std::is_same<bool, CompatibleNumberIntegerType>::value,
+        RealIntegerType, CompatibleNumberIntegerType > ::value;
 };
 
+
 // This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
-template <typename BasicJsonType, typename T>
+template<typename BasicJsonType, typename T>
 struct has_from_json
 {
   private:
     // also check the return type of from_json
-    template <typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
-                  std::declval<BasicJsonType>(), std::declval<T&>()))>::value>>
+    template<typename U, typename = enable_if_t<std::is_same<void, decltype(uncvref_t<U>::from_json(
+                 std::declval<BasicJsonType>(), std::declval<T&>()))>::value>>
     static int detect(U&&);
     static void detect(...);
 
@@ -475,7 +489,7 @@ struct has_from_json
 
 // This trait checks if JSONSerializer<T>::from_json(json const&) exists
 // this overload is used for non-default-constructible user-defined-types
-template <typename BasicJsonType, typename T>
+template<typename BasicJsonType, typename T>
 struct has_non_default_from_json
 {
   private:
@@ -492,12 +506,12 @@ struct has_non_default_from_json
 };
 
 // This trait checks if BasicJsonType::json_serializer<T>::to_json exists
-template <typename BasicJsonType, typename T>
+template<typename BasicJsonType, typename T>
 struct has_to_json
 {
   private:
-    template <typename U, typename = decltype(uncvref_t<U>::to_json(
-                  std::declval<BasicJsonType&>(), std::declval<T>()))>
+    template<typename U, typename = decltype(uncvref_t<U>::to_json(
+                 std::declval<BasicJsonType&>(), std::declval<T>()))>
     static int detect(U&&);
     static void detect(...);
 
@@ -506,58 +520,33 @@ struct has_to_json
                                       std::declval<typename BasicJsonType::template json_serializer<T, void>>()))>::value;
 };
 
-// overloads for basic_json template parameters
 
-template <typename BasicJsonType, typename ArithmeticType,
-          enable_if_t<std::is_arithmetic<ArithmeticType>::value and
-                      not std::is_same<ArithmeticType,
-                                       typename BasicJsonType::boolean_t>::value,
-                      int> = 0>
-void get_arithmetic_value(const  BasicJsonType& j, ArithmeticType& val)
-{
-    switch (static_cast<value_t>(j))
-    {
-        case value_t::number_unsigned:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
-            break;
-        case value_t::number_integer:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
-            break;
-        case value_t::number_float:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_float_t*>());
-            break;
-        default:
-            JSON_THROW(
-                std::domain_error("type must be number, but is " + j.type_name()));
-    }
-}
+/////////////
+// to_json //
+/////////////
 
-template <typename BasicJsonType>
+template<typename BasicJsonType>
 void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept
 {
     external_constructor<value_t::boolean>::construct(j, b);
 }
 
-template <typename BasicJsonType, typename CompatibleString,
-          enable_if_t<std::is_constructible<typename BasicJsonType::string_t,
-                      CompatibleString>::value,
-                      int> = 0>
+template<typename BasicJsonType, typename CompatibleString,
+         enable_if_t<std::is_constructible<typename BasicJsonType::string_t,
+                     CompatibleString>::value,
+                     int> = 0>
 void to_json(BasicJsonType& j, const CompatibleString& s)
 {
     external_constructor<value_t::string>::construct(j, s);
 }
 
-template <typename BasicJsonType, typename FloatType,
-          enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
+template<typename BasicJsonType, typename FloatType,
+         enable_if_t<std::is_floating_point<FloatType>::value, int> = 0>
 void to_json(BasicJsonType& j, FloatType val) noexcept
 {
     external_constructor<value_t::number_float>::construct(j, static_cast<typename BasicJsonType::number_float_t>(val));
 }
 
-
 template <
     typename BasicJsonType, typename CompatibleNumberUnsignedType,
     enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t,
@@ -578,8 +567,8 @@ void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
     external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val));
 }
 
-template <typename BasicJsonType, typename UnscopedEnumType,
-          enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
+template<typename BasicJsonType, typename UnscopedEnumType,
+         enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
 void to_json(BasicJsonType& j, UnscopedEnumType e) noexcept
 {
     external_constructor<value_t::number_integer>::construct(j, e);
@@ -605,7 +594,48 @@ void to_json(BasicJsonType& j, const  CompatibleObjectType& arr)
     external_constructor<value_t::object>::construct(j, arr);
 }
 
-template <typename BasicJsonType>
+
+///////////////
+// from_json //
+///////////////
+
+// overloads for basic_json template parameters
+template<typename BasicJsonType, typename ArithmeticType,
+         enable_if_t<std::is_arithmetic<ArithmeticType>::value and
+                     not std::is_same<ArithmeticType,
+                                      typename BasicJsonType::boolean_t>::value,
+                     int> = 0>
+void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
+{
+    switch (static_cast<value_t>(j))
+    {
+        case value_t::number_unsigned:
+        {
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
+            break;
+        }
+        case value_t::number_integer:
+        {
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
+            break;
+        }
+        case value_t::number_float:
+        {
+            val = static_cast<ArithmeticType>(
+                      *j.template get_ptr<const typename BasicJsonType::number_float_t*>());
+            break;
+        }
+        default:
+        {
+            JSON_THROW(
+                std::domain_error("type must be number, but is " + j.type_name()));
+        }
+    }
+}
+
+template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
 {
     if (!j.is_boolean())
@@ -615,7 +645,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
     b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>();
 }
 
-template <typename BasicJsonType>
+template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)
 {
     if (!j.is_string())
@@ -625,35 +655,35 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)
     s = *j.template get_ptr<const typename BasicJsonType::string_t*>();
 }
 
-template <typename BasicJsonType>
+template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename BasicJsonType>
+template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename BasicJsonType>
+template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val)
 {
     get_arithmetic_value(j, val);
 }
 
-template <typename BasicJsonType, typename UnscopedEnumType,
-          enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
-void from_json(const  BasicJsonType& j, UnscopedEnumType& e)
+template<typename BasicJsonType, typename UnscopedEnumType,
+         enable_if_t<is_unscoped_enum<UnscopedEnumType>::value, int> = 0>
+void from_json(const BasicJsonType& j, UnscopedEnumType& e)
 {
     typename std::underlying_type<UnscopedEnumType>::type val = e;
     get_arithmetic_value(j, val);
     e = static_cast<UnscopedEnumType>(val);
 }
 
-template <typename BasicJsonType>
-void from_json(const  BasicJsonType& j, typename BasicJsonType::array_t& arr)
+template<typename BasicJsonType>
+void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr)
 {
     if (!j.is_array())
     {
@@ -662,8 +692,9 @@ void from_json(const  BasicJsonType& j, typename BasicJsonType::array_t& arr)
     arr = *j.template get_ptr<const typename BasicJsonType::array_t*>();
 }
 
-// forward_list doesn't have an insert method, TODO find a way to avoid including forward_list
-template <typename BasicJsonType, typename T, typename Allocator>
+// forward_list doesn't have an insert method
+// TODO find a way to avoid including forward_list
+template<typename BasicJsonType, typename T, typename Allocator>
 void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
 {
     // do not perform the check when user wants to retrieve jsons
@@ -685,23 +716,23 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
     }
 }
 
-template <typename BasicJsonType, typename CompatibleArrayType>
-void from_json_array_impl(const  BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>)
+template<typename BasicJsonType, typename CompatibleArrayType>
+void from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<0>)
 {
     using std::begin;
     using std::end;
 
-    std::transform(
-        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  BasicJsonType & i)
+    std::transform(j.begin(), j.end(),
+                   std::inserter(arr, end(arr)), [](const BasicJsonType & i)
     {
-        // get<BasicJsonType>() returns *this, this won't call a from_json method when
-        // value_type is BasicJsonType
+        // get<BasicJsonType>() returns *this, this won't call a from_json
+        // method when value_type is BasicJsonType
         return i.template get<typename CompatibleArrayType::value_type>();
     });
 }
 
-template <typename BasicJsonType, typename CompatibleArrayType>
-auto from_json_array_impl(const  BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>)
+template<typename BasicJsonType, typename CompatibleArrayType>
+auto from_json_array_impl(const BasicJsonType& j, CompatibleArrayType& arr, priority_tag<1>)
 -> decltype(
     arr.reserve(std::declval<typename CompatibleArrayType::size_type>()),
     void())
@@ -711,26 +742,24 @@ auto from_json_array_impl(const  BasicJsonType& j, CompatibleArrayType& arr, pri
 
     arr.reserve(j.size());
     std::transform(
-        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const  BasicJsonType & i)
+        j.begin(), j.end(), std::inserter(arr, end(arr)), [](const BasicJsonType & i)
     {
-        // get<BasicJsonType>() returns *this, this won't call a from_json method when
-        // value_type is BasicJsonType
+        // get<BasicJsonType>() returns *this, this won't call a from_json
+        // method when value_type is BasicJsonType
         return i.template get<typename CompatibleArrayType::value_type>();
     });
 }
 
-template <
-    typename BasicJsonType, typename CompatibleArrayType,
-    enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and
-                not std::is_same<typename BasicJsonType::array_t,
-                                 CompatibleArrayType>::value,
-                int> = 0 >
-void from_json(const  BasicJsonType& j, CompatibleArrayType& arr)
+template<typename BasicJsonType, typename CompatibleArrayType,
+         enable_if_t<is_compatible_array_type<BasicJsonType, CompatibleArrayType>::value and
+                     not std::is_same<typename BasicJsonType::array_t, CompatibleArrayType>::value, int> = 0>
+void from_json(const BasicJsonType& j, CompatibleArrayType& arr)
 {
     if (j.is_null())
     {
         JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
     }
+
     // when T == BasicJsonType, do not check if value_t is correct
     if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value)
     {
@@ -742,12 +771,9 @@ void from_json(const  BasicJsonType& j, CompatibleArrayType& arr)
     from_json_array_impl(j, arr, priority_tag<1> {});
 }
 
-
-template <
-    typename BasicJsonType, typename CompatibleObjectType,
-    enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value,
-                int> = 0 >
-void from_json(const  BasicJsonType& j, CompatibleObjectType& obj)
+template<typename BasicJsonType, typename CompatibleObjectType,
+         enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0>
+void from_json(const BasicJsonType& j, CompatibleObjectType& obj)
 {
     if (!j.is_object())
     {
@@ -766,63 +792,52 @@ void from_json(const  BasicJsonType& j, CompatibleObjectType& obj)
 //
 // note: Is it really necessary to provide explicit overloads for boolean_t etc..
 // in case of a custom BooleanType which is not an arithmetic type?
-template <
-    typename BasicJsonType, typename ArithmeticType,
-    enable_if_t <
-        std::is_arithmetic<ArithmeticType>::value and
-        not std::is_same<ArithmeticType,
-                         typename BasicJsonType::number_unsigned_t>::value and
-        not std::is_same<ArithmeticType,
-                         typename BasicJsonType::number_integer_t>::value and
-        not std::is_same<ArithmeticType,
-                         typename BasicJsonType::number_float_t>::value and
-        not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value,
-        int > = 0 >
+template<typename BasicJsonType, typename ArithmeticType,
+         enable_if_t <
+             std::is_arithmetic<ArithmeticType>::value and
+             not std::is_same<ArithmeticType, typename BasicJsonType::number_unsigned_t>::value and
+             not std::is_same<ArithmeticType, typename BasicJsonType::number_integer_t>::value and
+             not std::is_same<ArithmeticType, typename BasicJsonType::number_float_t>::value and
+             not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value,
+             int> = 0>
 void from_json(const BasicJsonType& j, ArithmeticType& val)
 {
     switch (static_cast<value_t>(j))
     {
         case value_t::number_unsigned:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
+            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
             break;
         case value_t::number_integer:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
+            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
             break;
         case value_t::number_float:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::number_float_t*>());
+            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>());
             break;
         case value_t::boolean:
-            val = static_cast<ArithmeticType>(
-                      *j.template get_ptr<const typename BasicJsonType::boolean_t*>());
+            val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>());
             break;
         default:
-            JSON_THROW(
-                std::domain_error("type must be number, but is " + j.type_name()));
+            JSON_THROW(std::domain_error("type must be number, but is " + j.type_name()));
     }
 }
 
 struct to_json_fn
 {
-    template <typename BasicJsonType, typename T>
-    auto call(BasicJsonType& j, T&& val, priority_tag<1>) const
-    noexcept(noexcept(to_json(j, std::forward<T>(val))))
-    -> decltype(to_json(j, std::forward<T>(val)),
-                void())
+    template<typename BasicJsonType, typename T>
+    auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val))))
+    -> decltype(to_json(j, std::forward<T>(val)), void())
     {
         return to_json(j, std::forward<T>(val));
     }
 
-    template <typename BasicJsonType, typename T>
+    template<typename BasicJsonType, typename T>
     void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept
     {
         static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called");
     }
 
   public:
-    template <typename BasicJsonType, typename T>
+    template<typename BasicJsonType, typename T>
     void operator()(BasicJsonType& j, T&& val) const
     noexcept(noexcept(std::declval<to_json_fn>().call(j, std::forward<T>(val), priority_tag<1> {})))
     {
@@ -833,23 +848,23 @@ struct to_json_fn
 struct from_json_fn
 {
   private:
-    template <typename BasicJsonType, typename T>
-    auto call(const  BasicJsonType& j, T& val, priority_tag<1>) const
+    template<typename BasicJsonType, typename T>
+    auto call(const BasicJsonType& j, T& val, priority_tag<1>) const
     noexcept(noexcept(from_json(j, val)))
     -> decltype(from_json(j, val), void())
     {
         return from_json(j, val);
     }
 
-    template <typename BasicJsonType, typename T>
+    template<typename BasicJsonType, typename T>
     void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept
     {
         static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called");
     }
 
   public:
-    template <typename BasicJsonType, typename T>
-    void operator()(const  BasicJsonType& j, T& val) const
+    template<typename BasicJsonType, typename T>
+    void operator()(const BasicJsonType& j, T& val) const
     noexcept(noexcept(std::declval<from_json_fn>().call(j, val, priority_tag<1> {})))
     {
         return call(j, val, priority_tag<1> {});
@@ -857,15 +872,16 @@ struct from_json_fn
 };
 
 // taken from ranges-v3
-template <typename T>
+template<typename T>
 struct static_const
 {
     static constexpr T value{};
 };
 
-template <typename T>
+template<typename T>
 constexpr T static_const<T>::value;
 
+
 /*!
 @brief helper class to create locales with decimal point
 
@@ -885,7 +901,8 @@ struct DecimalSeparator : std::numpunct<char>
         return '.';
     }
 };
-}
+} // namespace detail
+
 
 namespace
 {
@@ -895,16 +912,16 @@ constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::va
 
 // default JSONSerializer template argument, doesn't care about template argument
 // will use ADL for serialization
-template <typename = void, typename = void>
+template<typename = void, typename = void>
 struct adl_serializer
 {
-    template <typename BasicJsonType, typename T>
+    template<typename BasicJsonType, typename T>
     static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))
     {
         ::nlohmann::from_json(std::forward<BasicJsonType>(j), val);
     }
 
-    template <typename BasicJsonType, typename T>
+    template<typename BasicJsonType, typename T>
     static void to_json(BasicJsonType& j, T&& val) noexcept(
         noexcept(::nlohmann::to_json(j, std::forward<T>(val))))
     {
@@ -912,6 +929,7 @@ struct adl_serializer
     }
 };
 
+
 /*!
 @brief a class to store JSON values
 
@@ -1005,7 +1023,7 @@ template <
 class basic_json
 {
   private:
-    template <detail::value_t> friend struct detail::external_constructor;
+    template<detail::value_t> friend struct detail::external_constructor;
     /// workaround type for MSVC
     using basic_json_t = basic_json<ObjectType, ArrayType, StringType,
           BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType,
@@ -1017,7 +1035,7 @@ class basic_json
     template<typename U> class iter_impl;
     template<typename Base> class json_reverse_iterator;
     class json_pointer;
-    template <typename T, typename SFINAE>
+    template<typename T, typename SFINAE>
     using json_serializer = JSONSerializer<T, SFINAE>;
 
     /////////////////////
@@ -1904,13 +1922,13 @@ class basic_json
 
     @since version 2.1.0
     */
-    template <typename T, typename U = detail::uncvref_t<T>,
-              detail::enable_if_t<not std::is_base_of<std::istream, U>::value and
-                                  not std::is_same<U, basic_json_t>::value and
-                                  not detail::is_basic_json_nested_type<
-                                      basic_json_t, U>::value and
-                                  detail::has_to_json<basic_json, U>::value,
-                                  int> = 0>
+    template<typename T, typename U = detail::uncvref_t<T>,
+             detail::enable_if_t<not std::is_base_of<std::istream, U>::value and
+                                 not std::is_same<U, basic_json_t>::value and
+                                 not detail::is_basic_json_nested_type<
+                                     basic_json_t, U>::value and
+                                 detail::has_to_json<basic_json, U>::value,
+                                 int> = 0>
     basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json(
             std::declval<basic_json_t&>(), std::forward<T>(val))))
     {
@@ -5714,6 +5732,13 @@ class basic_json
     /// @}
 
   public:
+    //////////////////////////////////////////
+    // lexicographical comparison operators //
+    //////////////////////////////////////////
+
+    /// @name lexicographical comparison operators
+    /// @{
+
     /*!
     @brief comparison: equal
 
@@ -9945,7 +9970,7 @@ class basic_json
             for (; curptr < m_cursor; curptr++)
             {
                 // quickly skip tests if a digit
-                if (*curptr < '0' || *curptr > '9')
+                if (*curptr < '0' or* curptr > '9')
                 {
                     if (*curptr == '.')
                     {

From daf8dcdb32a3c1e121ed12232e7c00557277aa4b Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 24 Jan 2017 14:37:25 +0100
Subject: [PATCH 131/174] :memo: overworked README

---
 README.md | 227 +++++++++++++++++++++++++++---------------------------
 1 file changed, 114 insertions(+), 113 deletions(-)

diff --git a/README.md b/README.md
index b64c1417..30c76f07 100644
--- a/README.md
+++ b/README.md
@@ -442,15 +442,20 @@ int vi = jn.get<int>();
 
 // etc.
 ```
+
 ### Arbitrary types conversions
 
-Every type can be serialized in JSON, not just STL-containers and scalar types.
-Usually, you would do something along those lines:
+Every type can be serialized in JSON, not just STL-containers and scalar types. Usually, you would do something along those lines:
 
 ```cpp
 namespace ns {
-struct person { std::string name; std::string address; int age; };
+    struct person {
+        std::string name;
+        std::string address;
+        int age;
+    };
 }
+
 // convert to JSON
 json j;
 ns::person p = createSomeone();
@@ -461,10 +466,14 @@ j["age"] = p.age;
 // ...
 
 // convert from JSON
-ns::person p {j["name"].get<std::string>(), j["address"].get<std::string>(), j["age"].get<int>()};
+ns::person p {
+    j["name"].get<std::string>(),
+    j["address"].get<std::string>(),
+    j["age"].get<int>()
+};
 ```
 
-It works, but that's quite a lot of boilerplate.. Hopefully, there's a better way:
+It works, but that's quite a lot of boilerplate... Hopefully, there's a better way:
 
 ```cpp
 ns::person p = createPerson();
@@ -482,27 +491,25 @@ To make this work with one of your types, you only need to provide two methods:
 using nlohmann::json;
 
 namespace ns {
-void to_json(json& j, person const& p)
-{
-  j = json{{"name", p.name}, {"address", p.address}, {"age", p.age}};
-}
+    void to_json(json& j, person const& p) {
+        j = json{{"name", p.name}, {"address", p.address}, {"age", p.age}};
+    }
 
-void from_json(json const& j, person& p)
-{
-  p.name = j["name"].get<std::string>();
-  p.address = j["address"].get<std::string>();
-  p.age = j["age"].get<int>();
-}
+    void from_json(json const& j, person& p) {
+        p.name = j["name"].get<std::string>();
+        p.address = j["address"].get<std::string>();
+        p.age = j["age"].get<int>();
+    }
 } // namespace ns
 ```
 
-That's all. When calling the json constructor with your type, your custom `to_json` method will be automatically called.
+That's all! When calling the `json` constructor with your type, your custom `to_json` method will be automatically called.
 Likewise, when calling `get<your_type>()`, the `from_json` method will be called.
 
 Some important things:
 
 * Those methods **MUST** be in your type's namespace, or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined).
-* When using `get<your_type>()`, `your_type` **MUST** be DefaultConstructible and CopyConstructible (There is a way to bypass those requirements described later)
+* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible) and [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible). (There is a way to bypass those requirements described later.)
 
 #### How do I convert third-party types?
 
@@ -510,124 +517,117 @@ This requires a bit more advanced technique.
 But first, let's see how this conversion mechanism works:
 
 The library uses **JSON Serializers** to convert types to json.
-The default serializer for `nlohmann::json` is `nlohmann::adl_serializer` (ADL means [Argument-Dependent Lookup](http://en.cppreference.com/w/cpp/language/adl))
+The default serializer for `nlohmann::json` is `nlohmann::adl_serializer` (ADL means [Argument-Dependent Lookup](http://en.cppreference.com/w/cpp/language/adl)).
 
 It is implemented like this (simplified):
 
 ```cpp
 template <typename T>
-struct adl_serializer
-{
-  static void to_json(json& j, const T& value)
-  {
-    // calls the "to_json" method in T's namespace
-  }
-  
-  static void from_json(const json& j, T& value)
-  {
-    // same thing, but with the "from_json" method
-  }
+struct adl_serializer {
+    static void to_json(json& j, const T& value) {
+        // calls the "to_json" method in T's namespace
+    }
+
+    static void from_json(const json& j, T& value) {
+        // same thing, but with the "from_json" method
+    }
 };
 ```
 
-This serializer works fine when you have control over the type's namespace.
-However, what about `boost::optional`, or `std::filesystem::path` (C++17)?
-
-Hijacking the `boost` namespace is pretty bad, and it's illegal to add something other than template specializations to `std`...
+This serializer works fine when you have control over the type's namespace. However, what about `boost::optional`, or `std::filesystem::path` (C++17)? Hijacking the `boost` namespace is pretty bad, and it's illegal to add something other than template specializations to `std`...
 
 To solve this, you need to add a specialization of `adl_serializer` to the `nlohmann` namespace, here's an example:
 
 ```cpp
 // partial specialization (full specialization works too)
 namespace nlohmann {
-template <typename T>
-struct adl_serializer<boost::optional<T>>
-{
-  static void to_json(json& j, const boost::optional<T>& opt)
-  {
-    if (opt == boost::none)
-      j = nullptr;
-    else
-      j = *opt; // this will call adl_serializer<T>::to_json, which will find the free function to_json in T's namespace!
-  }
-  
-  static void from_json(const json& j, boost::optional<T>& opt)
-  {
-    if (!j.is_null())
-      opt = j.get<T>(); // same as above, but with adl_serializer<T>::from_json
-  }
-};
+    template <typename T>
+    struct adl_serializer<boost::optional<T>> {
+        static void to_json(json& j, const boost::optional<T>& opt) {
+            if (opt == boost::none) {
+                j = nullptr;
+            } else {
+              j = *opt; // this will call adl_serializer<T>::to_json
+                        // which will find the free function to_json
+                        // in T's namespace!
+            }
+        }
+
+        static void from_json(const json& j, boost::optional<T>& opt) {
+            if (!j.is_null()) {
+                opt = j.get<T>(); // same as above, but with 
+                                  // adl_serializer<T>::from_json
+            }
+        }
+    };
 }
 ```
 
 #### How can I use `get()` for non-default constructible/non-copyable types?
 
-There is a way, if your type is **MoveConstructible**.
-You will need to specialize the `adl_serializer` as well, but with a special `from_json` overload:
+There is a way, if your type is [MoveConstructible](http://en.cppreference.com/w/cpp/concept/MoveConstructible). You will need to specialize the `adl_serializer` as well, but with a special `from_json` overload:
 
 ```cpp
 struct move_only_type {
-  move_only_type() = delete;
-  move_only_type(int ii): i(ii) {}
-  move_only_type(const move_only_type&) = delete;
-  move_only_type(move_only_type&&) = default;
-  :
-  int i;
+    move_only_type() = delete;
+    move_only_type(int ii): i(ii) {}
+    move_only_type(const move_only_type&) = delete;
+    move_only_type(move_only_type&&) = default;
+    
+    private:
+        int i;
 };
 
 namespace nlohmann {
-template <>
-struct adl_serializer<move_only_type>
-{
-  // note: the return type is no longer 'void', and the method only takes one argument
-  static move_only_type from_json(const json& j)
-  {
-    return {j.get<int>()};
-  }
-  
-  // Here's the catch! You must provide a to_json method!
-  // Otherwise you will not be able to convert move_only_type to json,
-  // since you fully specialized adl_serializer on that type
-  static void to_json(json& j, move_only_type t)
-  {
-    j = t.i;
-  }
-};
+    template <>
+    struct adl_serializer<move_only_type> {
+        // note: the return type is no longer 'void',
+        // and the method only takes one argument
+        static move_only_type from_json(const json& j) {
+            return {j.get<int>()};
+        }
+        
+        // Here's the catch! You must provide a to_json method!
+        // Otherwise you will not be able to convert move_only_type to json,
+        // since you fully specialized adl_serializer on that type
+        static void to_json(json& j, move_only_type t) {
+            j = t.i;
+        }
+    };
 }
 ```
 
 #### Can I write my own serializer? (Advanced use)
 
-Yes. You might want to take a look at `unit-udt.cpp` in the test suite, to see a few examples.
+Yes. You might want to take a look at `[unit-udt.cpp](https://github.com/nlohmann/json/blob/develop/test/src/unit-udt.cpp)` in the test suite, to see a few examples.
 
 If you write your own serializer, you'll need to do a few things:
 
-* use a different `basic_json` alias than nlohmann::json (the last template parameter of basic_json is the JSONSerializer)
+* use a different `basic_json` alias than `nlohmann::json` (the last template parameter of `basic_json` is the `JSONSerializer`)
 * use your `basic_json` alias (or a template parameter) in all your `to_json`/`from_json` methods
 * use `nlohmann::to_json` and `nlohmann::from_json` when you need ADL
 
 Here is an example, without simplifications, that only accepts types with a size <= 32, and uses ADL.
 
 ```cpp
-// You should use void as a second template argument if you don't need compile-time checks on T
-template <typename T, typename SFINAE = typename std::enable_if<sizeof(T) <= 32>::type>
-struct less_than_32_serializer // if someone tries to use a type bigger than 32, the compiler will complain
-{
-  template <typename Json>
-  static void to_json(Json& j, T value)
-  {
-    // we want to use ADL, and call the correct to_json overload
-    using nlohmann::to_json; // this method is called by adl_serializer, this is where the magic happens
-    to_json(j, value);
-  }
-  
-  template <typename Json>
-  static void from_json(const Json& j, T& value)
-  {
-    // same thing here
-    using nlohmann::from_json;
-    from_json(j, value);
-  }
+// You should use void as a second template argument
+// if you don't need compile-time checks on T
+template<typename T, typename SFINAE = typename std::enable_if<sizeof(T) <= 32>::type>
+struct less_than_32_serializer {
+    template <typename BasicJsonType>
+    static void to_json(BasicJsonType& j, T value) {
+        // we want to use ADL, and call the correct to_json overload
+        using nlohmann::to_json; // this method is called by adl_serializer,
+                                 // this is where the magic happens
+        to_json(j, value);
+    }
+    
+    template <typename BasicJsonType>
+    static void from_json(const BasicJsonType& j, T& value) {
+        // same thing here
+        using nlohmann::from_json;
+        from_json(j, value);
+    }
 };
 ```
 
@@ -637,21 +637,19 @@ Be **very** careful when reimplementing your serializer, you can stack overflow
 template <typename T, void>
 struct bad_serializer
 {
-  template <typename Json>
-  static void to_json(Json& j, const T& value)
-  {
-    // this calls Json::json_serializer<T>::to_json(j, value);
-    // if Json::json_serializer == bad_serializer ... oops!
-    j = value;
-  }
-  
-  template <typename Json>
-  static void to_json(const Json& j, T& value)
-  {
-    // this calls Json::json_serializer<T>::from_json(j, value);
-    // if Json::json_serializer == bad_serializer ... oops!
-    value = j.template get<T>(); // oops!
-  }
+    template <typename BasicJsonType>
+    static void to_json(BasicJsonType& j, const T& value) {
+      // this calls BasicJsonType::json_serializer<T>::to_json(j, value);
+      // if BasicJsonType::json_serializer == bad_serializer ... oops!
+      j = value;
+    }
+    
+    template <typename BasicJsonType>
+    static void to_json(const BasicJsonType& j, T& value) {
+      // this calls BasicJsonType::json_serializer<T>::from_json(j, value);
+      // if BasicJsonType::json_serializer == bad_serializer ... oops!
+      value = j.template get<T>(); // oops!
+    }
 };
 ```
 
@@ -759,7 +757,7 @@ I deeply appreciate the help of the following people.
 - [Eric Cornelius](https://github.com/EricMCornelius) pointed out a bug in the handling with NaN and infinity values. He also improved the performance of the string escaping.
 - [易思龙](https://github.com/likebeta) implemented a conversion from anonymous enums.
 - [kepkin](https://github.com/kepkin) patiently pushed forward the support for Microsoft Visual studio.
-- [gregmarr](https://github.com/gregmarr) simplified the implementation of reverse iterators and helped with numerous hints and improvements.
+- [gregmarr](https://github.com/gregmarr) simplified the implementation of reverse iterators and helped with numerous hints and improvements. In particular, he pushed forward the implementation of user-defined types.
 - [Caio Luppi](https://github.com/caiovlp) fixed a bug in the Unicode handling.
 - [dariomt](https://github.com/dariomt) fixed some typos in the examples.
 - [Daniel Frey](https://github.com/d-frey) cleaned up some pointers and implemented exception-safe memory allocation.
@@ -787,7 +785,7 @@ I deeply appreciate the help of the following people.
 - [duncanwerner](https://github.com/duncanwerner) found a really embarrassing performance regression in the 2.0.0 release.
 - [Damien](https://github.com/dtoma) fixed one of the last conversion warnings.
 - [Thomas Braun](https://github.com/t-b) fixed a warning in a test case.
-- [Théo DELRIEU](https://github.com/theodelrieu) patiently and constructively oversaw the long way toward [iterator-range parsing](https://github.com/nlohmann/json/issues/290).
+- [Théo DELRIEU](https://github.com/theodelrieu) patiently and constructively oversaw the long way toward [iterator-range parsing](https://github.com/nlohmann/json/issues/290). He also implemented the magic behind the serialization/deserialization of user-defined types.
 - [Stefan](https://github.com/5tefan) fixed a minor issue in the documentation.
 - [Vasil Dimov](https://github.com/vasild) fixed the documentation regarding conversions from `std::multiset`.
 - [ChristophJud](https://github.com/ChristophJud) overworked the CMake files to ease project inclusion.
@@ -801,6 +799,9 @@ I deeply appreciate the help of the following people.
 - [Bosswestfalen](https://github.com/Bosswestfalen) merged two iterator classes into a smaller one.
 - [Daniel599](https://github.com/Daniel599) helped to get Travis execute the tests with Clang's sanitizers.
 - [Jonathan Lee](https://github.com/vjon) fixed an example in the README file.
+- [gnzlbg](https://github.com/gnzlbg) supported the implementation of user-defined types.
+- [Alexej Harm](https://github.com/qis) helped to get the user-defined types working with Visual Studio.
+- [Jared Grubb](https://github.com/jaredgrubb) supported the implementation of user-defined types.
 
 Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone.
 

From 781fd09f2de382f0aeadf89a1dd527ff335c9eb2 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 24 Jan 2017 14:45:32 +0100
Subject: [PATCH 132/174] :memo: cleanup

---
 README.md | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/README.md b/README.md
index 30c76f07..dd54fe71 100644
--- a/README.md
+++ b/README.md
@@ -449,6 +449,7 @@ Every type can be serialized in JSON, not just STL-containers and scalar types.
 
 ```cpp
 namespace ns {
+    // a simple struct to model a person
     struct person {
         std::string name;
         std::string address;
@@ -456,7 +457,7 @@ namespace ns {
     };
 }
 
-// convert to JSON
+// convert to JSON: copy each value into the JSON object
 json j;
 ns::person p = createSomeone();
 j["name"] = p.name;
@@ -465,7 +466,7 @@ j["age"] = p.age;
 
 // ...
 
-// convert from JSON
+// convert from JSON: copy each value from the JSON object
 ns::person p {
     j["name"].get<std::string>(),
     j["address"].get<std::string>(),
@@ -476,9 +477,11 @@ ns::person p {
 It works, but that's quite a lot of boilerplate... Hopefully, there's a better way:
 
 ```cpp
+// person -> json
 ns::person p = createPerson();
 json j = p;
 
+// json -> person
 auto p2 = j.get<ns::person>();
 assert(p == p2);
 ```
@@ -547,9 +550,8 @@ namespace nlohmann {
             if (opt == boost::none) {
                 j = nullptr;
             } else {
-              j = *opt; // this will call adl_serializer<T>::to_json
-                        // which will find the free function to_json
-                        // in T's namespace!
+              j = *opt; // this will call adl_serializer<T>::to_json which will
+                        // find the free function to_json in T's namespace!
             }
         }
 
@@ -581,15 +583,15 @@ struct move_only_type {
 namespace nlohmann {
     template <>
     struct adl_serializer<move_only_type> {
-        // note: the return type is no longer 'void',
-        // and the method only takes one argument
+        // note: the return type is no longer 'void', and the method only takes
+        // one argument
         static move_only_type from_json(const json& j) {
             return {j.get<int>()};
         }
         
-        // Here's the catch! You must provide a to_json method!
-        // Otherwise you will not be able to convert move_only_type to json,
-        // since you fully specialized adl_serializer on that type
+        // Here's the catch! You must provide a to_json method! Otherwise you
+        // will not be able to convert move_only_type to json, since you fully
+        // specialized adl_serializer on that type
         static void to_json(json& j, move_only_type t) {
             j = t.i;
         }
@@ -599,7 +601,7 @@ namespace nlohmann {
 
 #### Can I write my own serializer? (Advanced use)
 
-Yes. You might want to take a look at `[unit-udt.cpp](https://github.com/nlohmann/json/blob/develop/test/src/unit-udt.cpp)` in the test suite, to see a few examples.
+Yes. You might want to take a look at [`unit-udt.cpp`](https://github.com/nlohmann/json/blob/develop/test/src/unit-udt.cpp) in the test suite, to see a few examples.
 
 If you write your own serializer, you'll need to do a few things:
 

From 50a3f3b301467d69c86d98d977c5db82764bda89 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 24 Jan 2017 14:55:51 +0100
Subject: [PATCH 133/174] :memo: added nicer example

---
 README.md | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index dd54fe71..3d05dc33 100644
--- a/README.md
+++ b/README.md
@@ -457,9 +457,10 @@ namespace ns {
     };
 }
 
+ns::person p = {"Ned Flanders", "744 Evergreen Terrace", 60};
+
 // convert to JSON: copy each value into the JSON object
 json j;
-ns::person p = createSomeone();
 j["name"] = p.name;
 j["address"] = p.address;
 j["age"] = p.age;
@@ -477,12 +478,19 @@ ns::person p {
 It works, but that's quite a lot of boilerplate... Hopefully, there's a better way:
 
 ```cpp
-// person -> json
-ns::person p = createPerson();
+// create a person
+ns::person p {"Ned Flanders", "744 Evergreen Terrace", 60};
+
+// conversion: person -> json
 json j = p;
 
-// json -> person
-auto p2 = j.get<ns::person>();
+std::cout << j << std::endl;
+// {"address":"744 Evergreen Terrace","age":60,"name":"Ned Flanders"}
+
+// conversion: json -> person
+ns::person p2 = j;
+
+// that's it
 assert(p == p2);
 ```
 

From c154f3133d300ba53be90a052bbd996be458b7a4 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 24 Jan 2017 15:02:35 +0100
Subject: [PATCH 134/174] :construction: rephrased assertions

---
 src/json.hpp      | 6 ++++--
 src/json.hpp.re2c | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 5987b385..f7af945a 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -833,7 +833,8 @@ struct to_json_fn
     template<typename BasicJsonType, typename T>
     void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept
     {
-        static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called");
+        static_assert(sizeof(BasicJsonType) == 0,
+                      "could not find to_json() method in T's namespace");
     }
 
   public:
@@ -859,7 +860,8 @@ struct from_json_fn
     template<typename BasicJsonType, typename T>
     void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept
     {
-        static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called");
+        static_assert(sizeof(BasicJsonType) == 0,
+                      "could not find from_json() method in T's namespace");
     }
 
   public:
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 0a7f207d..039fc9fb 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -833,7 +833,8 @@ struct to_json_fn
     template<typename BasicJsonType, typename T>
     void call(BasicJsonType&, T&&, priority_tag<0>) const noexcept
     {
-        static_assert(sizeof(BasicJsonType) == 0, "to_json method in T's namespace can not be called");
+        static_assert(sizeof(BasicJsonType) == 0,
+                      "could not find to_json() method in T's namespace");
     }
 
   public:
@@ -859,7 +860,8 @@ struct from_json_fn
     template<typename BasicJsonType, typename T>
     void call(const BasicJsonType&, T&, priority_tag<0>) const noexcept
     {
-        static_assert(sizeof(BasicJsonType) == 0, "from_json method in T's namespace can not be called");
+        static_assert(sizeof(BasicJsonType) == 0,
+                      "could not find from_json() method in T's namespace");
     }
 
   public:

From 4139bb65728cef0737804111891583fa6351ec9b Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Tue, 24 Jan 2017 15:20:20 +0100
Subject: [PATCH 135/174] :memo: adjusted test count

---
 README.md | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 3d05dc33..33d7518d 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@
   - [Conversion from STL containers](#conversion-from-stl-containers)
   - [JSON Pointer and JSON Patch](#json-pointer-and-json-patch)
   - [Implicit conversions](#implicit-conversions)
-  - [Conversions to arbitrary types](#arbitrary-types-conversions)
+  - [Conversions to/from arbitrary types](#arbitrary-types-conversions)
   - [Binary formats (CBOR and MessagePack)](#binary-formats-cbor-and-messagepack)
 - [Supported compilers](#supported-compilers)
 - [License](#license)
@@ -835,10 +835,11 @@ Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I
 To compile and run the tests, you need to execute
 
 ```sh
-$ make check
+$ make json_unit -Ctest
+$ ./test/json_unit "*""
 
 ===============================================================================
-All tests passed (11202040 assertions in 44 test cases)
+All tests passed (11202052 assertions in 47 test cases)
 ```
 
 Alternatively, you can use [CMake](https://cmake.org) and run

From ec03c9c53ef7a0112fd6b065555129d8ec070452 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Wed, 25 Jan 2017 19:01:31 +0100
Subject: [PATCH 136/174] :memo: overworked docs #435

---
 README.md         | 15 +++++++--------
 src/json.hpp      |  3 ---
 src/json.hpp.re2c |  3 ---
 3 files changed, 7 insertions(+), 14 deletions(-)

diff --git a/README.md b/README.md
index 33d7518d..8cf4865b 100644
--- a/README.md
+++ b/README.md
@@ -475,7 +475,7 @@ ns::person p {
 };
 ```
 
-It works, but that's quite a lot of boilerplate... Hopefully, there's a better way:
+It works, but that's quite a lot of boilerplate... Fortunately, there's a better way:
 
 ```cpp
 // create a person
@@ -496,17 +496,17 @@ assert(p == p2);
 
 #### Basic usage
 
-To make this work with one of your types, you only need to provide two methods:
+To make this work with one of your types, you only need to provide two functions:
 
 ```cpp
 using nlohmann::json;
 
 namespace ns {
-    void to_json(json& j, person const& p) {
+    void to_json(json& j, const person& p) {
         j = json{{"name", p.name}, {"address", p.address}, {"age", p.age}};
     }
 
-    void from_json(json const& j, person& p) {
+    void from_json(const json& j, person& p) {
         p.name = j["name"].get<std::string>();
         p.address = j["address"].get<std::string>();
         p.age = j["age"].get<int>();
@@ -519,13 +519,12 @@ Likewise, when calling `get<your_type>()`, the `from_json` method will be called
 
 Some important things:
 
-* Those methods **MUST** be in your type's namespace, or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined).
-* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible) and [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible). (There is a way to bypass those requirements described later.)
+* Those methods **MUST** be in your type's namespace (which can be the global namespace), or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined).
+* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). (There is a way to bypass those requirements described later.)
 
 #### How do I convert third-party types?
 
-This requires a bit more advanced technique.
-But first, let's see how this conversion mechanism works:
+This requires a bit more advanced technique. But first, let's see how this conversion mechanism works:
 
 The library uses **JSON Serializers** to convert types to json.
 The default serializer for `nlohmann::json` is `nlohmann::adl_serializer` (ADL means [Argument-Dependent Lookup](http://en.cppreference.com/w/cpp/language/adl)).
diff --git a/src/json.hpp b/src/json.hpp
index f7af945a..13e7b07d 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -239,9 +239,6 @@ template<> struct priority_tag<0> {};
 // constructors //
 //////////////////
 
-// This is an experiment. I need this to move constructors out of basic_json.
-// I'm sure there is a better way, but this might need a big basic_json
-// refactoring
 template<value_t> struct external_constructor;
 
 template<>
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 039fc9fb..45e1ba58 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -239,9 +239,6 @@ template<> struct priority_tag<0> {};
 // constructors //
 //////////////////
 
-// This is an experiment. I need this to move constructors out of basic_json.
-// I'm sure there is a better way, but this might need a big basic_json
-// refactoring
 template<value_t> struct external_constructor;
 
 template<>

From 94d9b7bc8602b30c2220a74b8a74368c495a0d05 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Wed, 25 Jan 2017 21:59:54 +0100
Subject: [PATCH 137/174] :memo: overworked documentation (re-added constructor
 examples)

---
 .../basic_json__CompatibleArrayType.cpp       |  58 -----
 .../basic_json__CompatibleArrayType.link      |   1 -
 .../basic_json__CompatibleArrayType.output    |   9 -
 ...asic_json__CompatibleIntegerNumberType.cpp |  27 ---
 ...sic_json__CompatibleIntegerNumberType.link |   1 -
 ...c_json__CompatibleIntegerNumberType.output |   5 -
 .../basic_json__CompatibleNumberFloatType.cpp |  21 --
 ...basic_json__CompatibleNumberFloatType.link |   1 -
 ...sic_json__CompatibleNumberFloatType.output |   3 -
 .../basic_json__CompatibleObjectType.cpp      |  41 ----
 .../basic_json__CompatibleObjectType.link     |   1 -
 .../basic_json__CompatibleObjectType.output   |   4 -
 .../basic_json__CompatibleStringType.cpp      |  15 --
 .../basic_json__CompatibleStringType.link     |   1 -
 .../basic_json__CompatibleStringType.output   |   1 -
 doc/examples/basic_json__CompatibleType.cpp   | 211 ++++++++++++++++++
 doc/examples/basic_json__CompatibleType.link  |   1 +
 .../basic_json__CompatibleType.output         |  38 ++++
 doc/examples/basic_json__array_t.cpp          |  15 --
 doc/examples/basic_json__array_t.link         |   1 -
 doc/examples/basic_json__array_t.output       |   1 -
 doc/examples/basic_json__boolean_t.cpp        |  14 --
 doc/examples/basic_json__boolean_t.link       |   1 -
 doc/examples/basic_json__boolean_t.output     |   2 -
 doc/examples/basic_json__const_int.cpp        |  15 --
 doc/examples/basic_json__const_int.link       |   1 -
 doc/examples/basic_json__const_int.output     |   1 -
 doc/examples/basic_json__number_float_t.cpp   |  21 --
 doc/examples/basic_json__number_float_t.link  |   1 -
 .../basic_json__number_float_t.output         |   3 -
 doc/examples/basic_json__number_integer_t.cpp |  14 --
 .../basic_json__number_integer_t.link         |   1 -
 .../basic_json__number_integer_t.output       |   1 -
 doc/examples/basic_json__object_t.cpp         |  15 --
 doc/examples/basic_json__object_t.link        |   1 -
 doc/examples/basic_json__object_t.output      |   1 -
 doc/examples/basic_json__string_t.cpp         |  15 --
 doc/examples/basic_json__string_t.link        |   1 -
 doc/examples/basic_json__string_t.output      |   1 -
 .../basic_json__string_t_value_type.cpp       |  12 -
 .../basic_json__string_t_value_type.link      |   1 -
 .../basic_json__string_t_value_type.output    |   1 -
 src/json.hpp                                  |  64 ++++--
 src/json.hpp.re2c                             |  64 ++++--
 44 files changed, 352 insertions(+), 355 deletions(-)
 delete mode 100644 doc/examples/basic_json__CompatibleArrayType.cpp
 delete mode 100644 doc/examples/basic_json__CompatibleArrayType.link
 delete mode 100644 doc/examples/basic_json__CompatibleArrayType.output
 delete mode 100644 doc/examples/basic_json__CompatibleIntegerNumberType.cpp
 delete mode 100644 doc/examples/basic_json__CompatibleIntegerNumberType.link
 delete mode 100644 doc/examples/basic_json__CompatibleIntegerNumberType.output
 delete mode 100644 doc/examples/basic_json__CompatibleNumberFloatType.cpp
 delete mode 100644 doc/examples/basic_json__CompatibleNumberFloatType.link
 delete mode 100644 doc/examples/basic_json__CompatibleNumberFloatType.output
 delete mode 100644 doc/examples/basic_json__CompatibleObjectType.cpp
 delete mode 100644 doc/examples/basic_json__CompatibleObjectType.link
 delete mode 100644 doc/examples/basic_json__CompatibleObjectType.output
 delete mode 100644 doc/examples/basic_json__CompatibleStringType.cpp
 delete mode 100644 doc/examples/basic_json__CompatibleStringType.link
 delete mode 100644 doc/examples/basic_json__CompatibleStringType.output
 create mode 100644 doc/examples/basic_json__CompatibleType.cpp
 create mode 100644 doc/examples/basic_json__CompatibleType.link
 create mode 100644 doc/examples/basic_json__CompatibleType.output
 delete mode 100644 doc/examples/basic_json__array_t.cpp
 delete mode 100644 doc/examples/basic_json__array_t.link
 delete mode 100644 doc/examples/basic_json__array_t.output
 delete mode 100644 doc/examples/basic_json__boolean_t.cpp
 delete mode 100644 doc/examples/basic_json__boolean_t.link
 delete mode 100644 doc/examples/basic_json__boolean_t.output
 delete mode 100644 doc/examples/basic_json__const_int.cpp
 delete mode 100644 doc/examples/basic_json__const_int.link
 delete mode 100644 doc/examples/basic_json__const_int.output
 delete mode 100644 doc/examples/basic_json__number_float_t.cpp
 delete mode 100644 doc/examples/basic_json__number_float_t.link
 delete mode 100644 doc/examples/basic_json__number_float_t.output
 delete mode 100644 doc/examples/basic_json__number_integer_t.cpp
 delete mode 100644 doc/examples/basic_json__number_integer_t.link
 delete mode 100644 doc/examples/basic_json__number_integer_t.output
 delete mode 100644 doc/examples/basic_json__object_t.cpp
 delete mode 100644 doc/examples/basic_json__object_t.link
 delete mode 100644 doc/examples/basic_json__object_t.output
 delete mode 100644 doc/examples/basic_json__string_t.cpp
 delete mode 100644 doc/examples/basic_json__string_t.link
 delete mode 100644 doc/examples/basic_json__string_t.output
 delete mode 100644 doc/examples/basic_json__string_t_value_type.cpp
 delete mode 100644 doc/examples/basic_json__string_t_value_type.link
 delete mode 100644 doc/examples/basic_json__string_t_value_type.output

diff --git a/doc/examples/basic_json__CompatibleArrayType.cpp b/doc/examples/basic_json__CompatibleArrayType.cpp
deleted file mode 100644
index 26a1a101..00000000
--- a/doc/examples/basic_json__CompatibleArrayType.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#include <json.hpp>
-#include <deque>
-#include <list>
-#include <forward_list>
-#include <set>
-#include <unordered_set>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create an array from std::vector
-    std::vector<int> c_vector {1, 2, 3, 4};
-    json j_vec(c_vector);
-
-    // create an array from std::deque
-    std::deque<double> c_deque {1.2, 2.3, 3.4, 5.6};
-    json j_deque(c_deque);
-
-    // create an array from std::list
-    std::list<bool> c_list {true, true, false, true};
-    json j_list(c_list);
-
-    // create an array from std::forward_list
-    std::forward_list<int64_t> c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543};
-    json j_flist(c_flist);
-
-    // create an array from std::array
-    std::array<unsigned long, 4> c_array {{1, 2, 3, 4}};
-    json j_array(c_array);
-
-    // create an array from std::set
-    std::set<std::string> c_set {"one", "two", "three", "four", "one"};
-    json j_set(c_set); // only one entry for "one" is used
-
-    // create an array from std::unordered_set
-    std::unordered_set<std::string> c_uset {"one", "two", "three", "four", "one"};
-    json j_uset(c_uset); // only one entry for "one" is used
-
-    // create an array from std::multiset
-    std::multiset<std::string> c_mset {"one", "two", "one", "four"};
-    json j_mset(c_mset); // both entries for "one" are used
-
-    // create an array from std::unordered_multiset
-    std::unordered_multiset<std::string> c_umset {"one", "two", "one", "four"};
-    json j_umset(c_umset); // both entries for "one" are used
-
-    // serialize the JSON arrays
-    std::cout << j_vec << '\n';
-    std::cout << j_deque << '\n';
-    std::cout << j_list << '\n';
-    std::cout << j_flist << '\n';
-    std::cout << j_array << '\n';
-    std::cout << j_set << '\n';
-    std::cout << j_uset << '\n';
-    std::cout << j_mset << '\n';
-    std::cout << j_umset << '\n';
-}
diff --git a/doc/examples/basic_json__CompatibleArrayType.link b/doc/examples/basic_json__CompatibleArrayType.link
deleted file mode 100644
index 95ecb050..00000000
--- a/doc/examples/basic_json__CompatibleArrayType.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/3BIhBw91FUVuHE1D"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__CompatibleArrayType.output b/doc/examples/basic_json__CompatibleArrayType.output
deleted file mode 100644
index 428505a1..00000000
--- a/doc/examples/basic_json__CompatibleArrayType.output
+++ /dev/null
@@ -1,9 +0,0 @@
-[1,2,3,4]
-[1.2,2.3,3.4,5.6]
-[true,true,false,true]
-[12345678909876,23456789098765,34567890987654,45678909876543]
-[1,2,3,4]
-["four","one","three","two"]
-["four","three","two","one"]
-["four","one","one","two"]
-["four","two","one","one"]
diff --git a/doc/examples/basic_json__CompatibleIntegerNumberType.cpp b/doc/examples/basic_json__CompatibleIntegerNumberType.cpp
deleted file mode 100644
index 50e751d1..00000000
--- a/doc/examples/basic_json__CompatibleIntegerNumberType.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create values of different integer types
-    short n42 = 42;
-    int n23 = 23;
-    long n1024 = 1024;
-    int_least32_t n17 = 17;
-    uint8_t n8 = 8;
-
-    // create JSON numbers
-    json j42(n42);
-    json j23(n23);
-    json j1024(n1024);
-    json j17(n17);
-    json j8(n8);
-
-    // serialize the JSON numbers
-    std::cout << j42 << '\n';
-    std::cout << j23 << '\n';
-    std::cout << j1024 << '\n';
-    std::cout << j17 << '\n';
-    std::cout << j8 << '\n';
-}
diff --git a/doc/examples/basic_json__CompatibleIntegerNumberType.link b/doc/examples/basic_json__CompatibleIntegerNumberType.link
deleted file mode 100644
index 7a37e9eb..00000000
--- a/doc/examples/basic_json__CompatibleIntegerNumberType.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/PcMzhcu2RpD7KSwr"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__CompatibleIntegerNumberType.output b/doc/examples/basic_json__CompatibleIntegerNumberType.output
deleted file mode 100644
index c7f24d63..00000000
--- a/doc/examples/basic_json__CompatibleIntegerNumberType.output
+++ /dev/null
@@ -1,5 +0,0 @@
-42
-23
-1024
-17
-8
diff --git a/doc/examples/basic_json__CompatibleNumberFloatType.cpp b/doc/examples/basic_json__CompatibleNumberFloatType.cpp
deleted file mode 100644
index 6f8d3f67..00000000
--- a/doc/examples/basic_json__CompatibleNumberFloatType.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create values of different floating-point types
-    float f42 = 42.23;
-    float f_nan = 1.0f / 0.0f;
-    double f23 = 23.42;
-
-    // create JSON numbers
-    json j42(f42);
-    json j_nan(f_nan);
-    json j23(f23);
-
-    // serialize the JSON numbers
-    std::cout << j42 << '\n';
-    std::cout << j_nan << '\n';
-    std::cout << j23 << '\n';
-}
diff --git a/doc/examples/basic_json__CompatibleNumberFloatType.link b/doc/examples/basic_json__CompatibleNumberFloatType.link
deleted file mode 100644
index 9fbc7317..00000000
--- a/doc/examples/basic_json__CompatibleNumberFloatType.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/2TCYWSrOxnR05AZI"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__CompatibleNumberFloatType.output b/doc/examples/basic_json__CompatibleNumberFloatType.output
deleted file mode 100644
index 64bb796c..00000000
--- a/doc/examples/basic_json__CompatibleNumberFloatType.output
+++ /dev/null
@@ -1,3 +0,0 @@
-42.2299995422363
-null
-23.42
diff --git a/doc/examples/basic_json__CompatibleObjectType.cpp b/doc/examples/basic_json__CompatibleObjectType.cpp
deleted file mode 100644
index d284b697..00000000
--- a/doc/examples/basic_json__CompatibleObjectType.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <json.hpp>
-#include <unordered_map>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create an object from std::map
-    std::map<std::string, int> c_map
-    {
-        {"one", 1}, {"two", 2}, {"three", 3}
-    };
-    json j_map(c_map);
-
-    // create an object from std::unordered_map
-    std::unordered_map<const char*, double> c_umap
-    {
-        {"one", 1.2}, {"two", 2.3}, {"three", 3.4}
-    };
-    json j_umap(c_umap);
-
-    // create an object from std::multimap
-    std::multimap<std::string, bool> c_mmap
-    {
-        {"one", true}, {"two", true}, {"three", false}, {"three", true}
-    };
-    json j_mmap(c_mmap); // only one entry for key "three" is used
-
-    // create an object from std::unordered_multimap
-    std::unordered_multimap<std::string, bool> c_ummap
-    {
-        {"one", true}, {"two", true}, {"three", false}, {"three", true}
-    };
-    json j_ummap(c_ummap); // only one entry for key "three" is used
-
-    // serialize the JSON objects
-    std::cout << j_map << '\n';
-    std::cout << j_umap << '\n';
-    std::cout << j_mmap << '\n';
-    std::cout << j_ummap << '\n';
-}
diff --git a/doc/examples/basic_json__CompatibleObjectType.link b/doc/examples/basic_json__CompatibleObjectType.link
deleted file mode 100644
index 7512fb35..00000000
--- a/doc/examples/basic_json__CompatibleObjectType.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/JzLCMcSXNsh4uVWa"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__CompatibleObjectType.output b/doc/examples/basic_json__CompatibleObjectType.output
deleted file mode 100644
index c70f7184..00000000
--- a/doc/examples/basic_json__CompatibleObjectType.output
+++ /dev/null
@@ -1,4 +0,0 @@
-{"one":1,"three":3,"two":2}
-{"one":1.2,"three":3.4,"two":2.3}
-{"one":true,"three":false,"two":true}
-{"one":true,"three":false,"two":true}
diff --git a/doc/examples/basic_json__CompatibleStringType.cpp b/doc/examples/basic_json__CompatibleStringType.cpp
deleted file mode 100644
index a0f3b4f6..00000000
--- a/doc/examples/basic_json__CompatibleStringType.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create a string value
-    std::string s = "The quick brown fox jumps over the lazy dog.";
-
-    // create a JSON string value
-    json j = s;
-
-    // serialize the JSON string
-    std::cout << j << '\n';
-}
diff --git a/doc/examples/basic_json__CompatibleStringType.link b/doc/examples/basic_json__CompatibleStringType.link
deleted file mode 100644
index 351d6c0c..00000000
--- a/doc/examples/basic_json__CompatibleStringType.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/b9hbCY8zfOiTOuoK"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__CompatibleStringType.output b/doc/examples/basic_json__CompatibleStringType.output
deleted file mode 100644
index 1316dd98..00000000
--- a/doc/examples/basic_json__CompatibleStringType.output
+++ /dev/null
@@ -1 +0,0 @@
-"The quick brown fox jumps over the lazy dog."
diff --git a/doc/examples/basic_json__CompatibleType.cpp b/doc/examples/basic_json__CompatibleType.cpp
new file mode 100644
index 00000000..ff564a72
--- /dev/null
+++ b/doc/examples/basic_json__CompatibleType.cpp
@@ -0,0 +1,211 @@
+#include <json.hpp>
+#include <deque>
+#include <list>
+#include <forward_list>
+#include <set>
+#include <unordered_map>
+#include <unordered_set>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // ============
+    // object types
+    // ============
+
+    // create an object from an object_t value
+    json::object_t object_value = { {"one", 1}, {"two", 2} };
+    json j_object_t(object_value);
+
+    // create an object from std::map
+    std::map<std::string, int> c_map
+    {
+        {"one", 1}, {"two", 2}, {"three", 3}
+    };
+    json j_map(c_map);
+
+    // create an object from std::unordered_map
+    std::unordered_map<const char*, double> c_umap
+    {
+        {"one", 1.2}, {"two", 2.3}, {"three", 3.4}
+    };
+    json j_umap(c_umap);
+
+    // create an object from std::multimap
+    std::multimap<std::string, bool> c_mmap
+    {
+        {"one", true}, {"two", true}, {"three", false}, {"three", true}
+    };
+    json j_mmap(c_mmap); // only one entry for key "three" is used
+
+    // create an object from std::unordered_multimap
+    std::unordered_multimap<std::string, bool> c_ummap
+    {
+        {"one", true}, {"two", true}, {"three", false}, {"three", true}
+    };
+    json j_ummap(c_ummap); // only one entry for key "three" is used
+
+    // serialize the JSON objects
+    std::cout << j_object_t << '\n';
+    std::cout << j_map << '\n';
+    std::cout << j_umap << '\n';
+    std::cout << j_mmap << '\n';
+    std::cout << j_ummap << "\n\n";
+
+
+    // ===========
+    // array types
+    // ===========
+
+    // create an array from an array_t value
+    json::array_t array_value = {"one", "two", 3, 4.5, false};
+    json j_array_t(array_value);
+
+    // create an array from std::vector
+    std::vector<int> c_vector {1, 2, 3, 4};
+    json j_vec(c_vector);
+
+    // create an array from std::deque
+    std::deque<double> c_deque {1.2, 2.3, 3.4, 5.6};
+    json j_deque(c_deque);
+
+    // create an array from std::list
+    std::list<bool> c_list {true, true, false, true};
+    json j_list(c_list);
+
+    // create an array from std::forward_list
+    std::forward_list<int64_t> c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543};
+    json j_flist(c_flist);
+
+    // create an array from std::array
+    std::array<unsigned long, 4> c_array {{1, 2, 3, 4}};
+    json j_array(c_array);
+
+    // create an array from std::set
+    std::set<std::string> c_set {"one", "two", "three", "four", "one"};
+    json j_set(c_set); // only one entry for "one" is used
+
+    // create an array from std::unordered_set
+    std::unordered_set<std::string> c_uset {"one", "two", "three", "four", "one"};
+    json j_uset(c_uset); // only one entry for "one" is used
+
+    // create an array from std::multiset
+    std::multiset<std::string> c_mset {"one", "two", "one", "four"};
+    json j_mset(c_mset); // both entries for "one" are used
+
+    // create an array from std::unordered_multiset
+    std::unordered_multiset<std::string> c_umset {"one", "two", "one", "four"};
+    json j_umset(c_umset); // both entries for "one" are used
+
+    // serialize the JSON arrays
+    std::cout << j_array_t << '\n';
+    std::cout << j_vec << '\n';
+    std::cout << j_deque << '\n';
+    std::cout << j_list << '\n';
+    std::cout << j_flist << '\n';
+    std::cout << j_array << '\n';
+    std::cout << j_set << '\n';
+    std::cout << j_uset << '\n';
+    std::cout << j_mset << '\n';
+    std::cout << j_umset << "\n\n";
+
+
+    // ============
+    // string types
+    // ============
+
+    // create string from a string_t value
+    json::string_t string_value = "The quick brown fox jumps over the lazy dog.";
+    json j_string_t(string_value);
+
+    // create a JSON string directly from a string literal
+    json j_string_literal("The quick brown fox jumps over the lazy dog.");
+
+    // create string from std::string
+    std::string s_stdstring = "The quick brown fox jumps over the lazy dog.";
+    json j_stdstring(s_stdstring);
+
+    // serialize the JSON strings
+    std::cout << j_string_t << '\n';
+    std::cout << j_string_literal << '\n';
+    std::cout << j_stdstring << "\n\n";
+
+
+    // ============
+    // number types
+    // ============
+
+    // create a JSON number from number_integer_t
+    json::number_integer_t value_integer_t = -42;
+    json j_integer_t(value_integer_t);
+
+    // create a JSON number from number_unsigned_t
+    json::number_integer_t value_unsigned_t = 17;
+    json j_unsigned_t(value_unsigned_t);
+
+    // create a JSON number from an anonymous enum
+    enum { enum_value = 17 };
+    json j_enum(enum_value);
+
+    // create values of different integer types
+    short n_short = 42;
+    int n_int = -23;
+    long n_long = 1024;
+    int_least32_t n_int_least32_t = -17;
+    uint8_t n_uint8_t = 8;
+
+    // create (integer) JSON numbers
+    json j_short(n_short);
+    json j_int(n_int);
+    json j_long(n_long);
+    json j_int_least32_t(n_int_least32_t);
+    json j_uint8_t(n_uint8_t);
+
+    // create values of different floating-point types
+    json::number_float_t v_ok = 3.141592653589793;
+    json::number_float_t v_nan = NAN;
+    json::number_float_t v_infinity = INFINITY;
+
+    // create values of different floating-point types
+    float n_float = 42.23;
+    float n_float_nan = 1.0f / 0.0f;
+    double n_double = 23.42;
+
+    // create (floating point) JSON numbers
+    json j_ok(v_ok);
+    json j_nan(v_nan);
+    json j_infinity(v_infinity);
+    json j_float(n_float);
+    json j_float_nan(n_float_nan);
+    json j_double(n_double);
+
+    // serialize the JSON numbers
+    std::cout << j_integer_t << '\n';
+    std::cout << j_unsigned_t << '\n';
+    std::cout << j_enum << '\n';
+    std::cout << j_short << '\n';
+    std::cout << j_int << '\n';
+    std::cout << j_long << '\n';
+    std::cout << j_int_least32_t << '\n';
+    std::cout << j_uint8_t << '\n';
+    std::cout << j_ok << '\n';
+    std::cout << j_nan << '\n';
+    std::cout << j_infinity << '\n';
+    std::cout << j_float << '\n';
+    std::cout << j_float_nan << '\n';
+    std::cout << j_double << "\n\n";
+
+
+    // =============
+    // boolean types
+    // =============
+
+    // create boolean values
+    json j_truth = true;
+    json j_falsity = false;
+
+    // serialize the JSON booleans
+    std::cout << j_truth << '\n';
+    std::cout << j_falsity << '\n';
+}
diff --git a/doc/examples/basic_json__CompatibleType.link b/doc/examples/basic_json__CompatibleType.link
new file mode 100644
index 00000000..a78f01bb
--- /dev/null
+++ b/doc/examples/basic_json__CompatibleType.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/VM7W2kpE7sIYJ5DW"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__CompatibleType.output b/doc/examples/basic_json__CompatibleType.output
new file mode 100644
index 00000000..d69ff44f
--- /dev/null
+++ b/doc/examples/basic_json__CompatibleType.output
@@ -0,0 +1,38 @@
+{"one":1,"two":2}
+{"one":1,"three":3,"two":2}
+{"one":1.2,"three":3.4,"two":2.3}
+{"one":true,"three":false,"two":true}
+{"one":true,"three":false,"two":true}
+
+["one","two",3,4.5,false]
+[1,2,3,4]
+[1.2,2.3,3.4,5.6]
+[true,true,false,true]
+[12345678909876,23456789098765,34567890987654,45678909876543]
+[1,2,3,4]
+["four","one","three","two"]
+["four","three","two","one"]
+["four","one","one","two"]
+["four","two","one","one"]
+
+"The quick brown fox jumps over the lazy dog."
+"The quick brown fox jumps over the lazy dog."
+"The quick brown fox jumps over the lazy dog."
+
+-42
+17
+17
+42
+-23
+1024
+-17
+8
+3.14159265358979
+null
+null
+42.2299995422363
+null
+23.42
+
+true
+false
diff --git a/doc/examples/basic_json__array_t.cpp b/doc/examples/basic_json__array_t.cpp
deleted file mode 100644
index 1bb6931b..00000000
--- a/doc/examples/basic_json__array_t.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create an array_t value
-    json::array_t value = {"one", "two", 3, 4.5, false};
-
-    // create a JSON array from the value
-    json j(value);
-
-    // serialize the JSON array
-    std::cout << j << '\n';
-}
diff --git a/doc/examples/basic_json__array_t.link b/doc/examples/basic_json__array_t.link
deleted file mode 100644
index 70c9cb8c..00000000
--- a/doc/examples/basic_json__array_t.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/dTbSNAvl6TqrMEAn"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__array_t.output b/doc/examples/basic_json__array_t.output
deleted file mode 100644
index d379a756..00000000
--- a/doc/examples/basic_json__array_t.output
+++ /dev/null
@@ -1 +0,0 @@
-["one","two",3,4.5,false]
diff --git a/doc/examples/basic_json__boolean_t.cpp b/doc/examples/basic_json__boolean_t.cpp
deleted file mode 100644
index 38f014e0..00000000
--- a/doc/examples/basic_json__boolean_t.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create boolean values
-    json j_truth = true;
-    json j_falsity = false;
-
-    // serialize the JSON booleans
-    std::cout << j_truth << '\n';
-    std::cout << j_falsity << '\n';
-}
diff --git a/doc/examples/basic_json__boolean_t.link b/doc/examples/basic_json__boolean_t.link
deleted file mode 100644
index c64e1fc4..00000000
--- a/doc/examples/basic_json__boolean_t.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/VmVl9pyrQp8LyOnU"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__boolean_t.output b/doc/examples/basic_json__boolean_t.output
deleted file mode 100644
index da29283a..00000000
--- a/doc/examples/basic_json__boolean_t.output
+++ /dev/null
@@ -1,2 +0,0 @@
-true
-false
diff --git a/doc/examples/basic_json__const_int.cpp b/doc/examples/basic_json__const_int.cpp
deleted file mode 100644
index 7e38544b..00000000
--- a/doc/examples/basic_json__const_int.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // an anonymous enum
-    enum { t = 17 };
-
-    // create a JSON number from the enum
-    json j(t);
-
-    // serialize the JSON numbers
-    std::cout << j << '\n';
-}
diff --git a/doc/examples/basic_json__const_int.link b/doc/examples/basic_json__const_int.link
deleted file mode 100644
index 68a9e235..00000000
--- a/doc/examples/basic_json__const_int.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/3xQ1qy7BT9OrSSCo"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__const_int.output b/doc/examples/basic_json__const_int.output
deleted file mode 100644
index 98d9bcb7..00000000
--- a/doc/examples/basic_json__const_int.output
+++ /dev/null
@@ -1 +0,0 @@
-17
diff --git a/doc/examples/basic_json__number_float_t.cpp b/doc/examples/basic_json__number_float_t.cpp
deleted file mode 100644
index 92533b7d..00000000
--- a/doc/examples/basic_json__number_float_t.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create values of different floating-point types
-    json::number_float_t v_ok = 3.141592653589793;
-    json::number_float_t v_nan = NAN;
-    json::number_float_t v_infinity = INFINITY;
-
-    // create JSON numbers
-    json j_ok(v_ok);
-    json j_nan(v_nan);
-    json j_infinity(v_infinity);
-
-    // serialize the JSON numbers
-    std::cout << j_ok << '\n';
-    std::cout << j_nan << '\n';
-    std::cout << j_infinity << '\n';
-}
diff --git a/doc/examples/basic_json__number_float_t.link b/doc/examples/basic_json__number_float_t.link
deleted file mode 100644
index 47aa2553..00000000
--- a/doc/examples/basic_json__number_float_t.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/OTgOxjIAKFvxpFdm"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__number_float_t.output b/doc/examples/basic_json__number_float_t.output
deleted file mode 100644
index 964a7b1f..00000000
--- a/doc/examples/basic_json__number_float_t.output
+++ /dev/null
@@ -1,3 +0,0 @@
-3.14159265358979
-null
-null
diff --git a/doc/examples/basic_json__number_integer_t.cpp b/doc/examples/basic_json__number_integer_t.cpp
deleted file mode 100644
index 1078f360..00000000
--- a/doc/examples/basic_json__number_integer_t.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create a JSON number from number_integer_t
-    json::number_integer_t value = 42;
-
-    json j(value);
-
-    // serialize the JSON numbers
-    std::cout << j << '\n';
-}
diff --git a/doc/examples/basic_json__number_integer_t.link b/doc/examples/basic_json__number_integer_t.link
deleted file mode 100644
index 5d4499b5..00000000
--- a/doc/examples/basic_json__number_integer_t.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/cCQRCvjXdRM9YpT5"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__number_integer_t.output b/doc/examples/basic_json__number_integer_t.output
deleted file mode 100644
index d81cc071..00000000
--- a/doc/examples/basic_json__number_integer_t.output
+++ /dev/null
@@ -1 +0,0 @@
-42
diff --git a/doc/examples/basic_json__object_t.cpp b/doc/examples/basic_json__object_t.cpp
deleted file mode 100644
index 39e2fcc0..00000000
--- a/doc/examples/basic_json__object_t.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create an object_t value
-    json::object_t value = { {"one", 1}, {"two", 2} };
-
-    // create a JSON object from the value
-    json j(value);
-
-    // serialize the JSON object
-    std::cout << j << '\n';
-}
diff --git a/doc/examples/basic_json__object_t.link b/doc/examples/basic_json__object_t.link
deleted file mode 100644
index 2e07a3ef..00000000
--- a/doc/examples/basic_json__object_t.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/DgtHcz5L6JphTOGJ"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__object_t.output b/doc/examples/basic_json__object_t.output
deleted file mode 100644
index 62376d83..00000000
--- a/doc/examples/basic_json__object_t.output
+++ /dev/null
@@ -1 +0,0 @@
-{"one":1,"two":2}
diff --git a/doc/examples/basic_json__string_t.cpp b/doc/examples/basic_json__string_t.cpp
deleted file mode 100644
index 3205f623..00000000
--- a/doc/examples/basic_json__string_t.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create an string_t value
-    json::string_t value = "The quick brown fox jumps over the lazy doc";
-
-    // create a JSON string from the value
-    json j(value);
-
-    // serialize the JSON array
-    std::cout << j << '\n';
-}
diff --git a/doc/examples/basic_json__string_t.link b/doc/examples/basic_json__string_t.link
deleted file mode 100644
index d7d02f2f..00000000
--- a/doc/examples/basic_json__string_t.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/cwNYP1q2mT8CFLTk"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__string_t.output b/doc/examples/basic_json__string_t.output
deleted file mode 100644
index 89990044..00000000
--- a/doc/examples/basic_json__string_t.output
+++ /dev/null
@@ -1 +0,0 @@
-"The quick brown fox jumps over the lazy doc"
diff --git a/doc/examples/basic_json__string_t_value_type.cpp b/doc/examples/basic_json__string_t_value_type.cpp
deleted file mode 100644
index 5379ca06..00000000
--- a/doc/examples/basic_json__string_t_value_type.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <json.hpp>
-
-using json = nlohmann::json;
-
-int main()
-{
-    // create a JSON string directly from a string literal
-    json j("The quick brown fox jumps over the lazy doc");
-
-    // serialize the JSON array
-    std::cout << j << '\n';
-}
diff --git a/doc/examples/basic_json__string_t_value_type.link b/doc/examples/basic_json__string_t_value_type.link
deleted file mode 100644
index 56908768..00000000
--- a/doc/examples/basic_json__string_t_value_type.link
+++ /dev/null
@@ -1 +0,0 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/AtV4zVErfLwkileg"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/basic_json__string_t_value_type.output b/doc/examples/basic_json__string_t_value_type.output
deleted file mode 100644
index 89990044..00000000
--- a/doc/examples/basic_json__string_t_value_type.output
+++ /dev/null
@@ -1 +0,0 @@
-"The quick brown fox jumps over the lazy doc"
diff --git a/src/json.hpp b/src/json.hpp
index 13e7b07d..29c1a7ab 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -1907,31 +1907,70 @@ class basic_json
     }
 
     /*!
-    @brief forwards the parameter to json_serializer<U>::to_json method (U = uncvref_t<T>)
+    @brief create a JSON value
 
-    this constructor is chosen if:
-    - T is not derived from std::istream
-    - T is not @ref basic_json (to avoid hijacking copy/move constructors)
-    - T is not a @ref basic_json nested type (@ref json_pointer, @ref iterator, etc ...)
-    - @ref json_serializer<U> has a to_json(basic_json_t&, T&&) method
+    This is a "catch all" constructor for all compatible JSON types; that is,
+    types for which a `to_json()` method exsits. The constructor forwards the
+    parameter @a val to that method (to `json_serializer<U>::to_json` method
+    with `U = uncvref_t<CompatibleType>`, to be exact).
+
+    Template type @a CompatibleType includes, but is not limited to, the
+    following types:
+    - **arrays**: @ref array_t and all kinds of compatible containers such as
+      `std::vector`, `std::deque`, `std::list`, `std::forward_list`,
+      `std::array`, `std::set`, `std::unordered_set`, `std::multiset`, and
+      `unordered_multiset` with a `value_type` from which a @ref basic_json
+      value can be constructed.
+    - **objects**: @ref object_t and all kinds of compatible associative
+      containers such as `std::map`, `std::unordered_map`, `std::multimap`,
+      and `std::unordered_multimap` with a `key_type` compatible to
+      @ref string_t and a `value_type` from which a @ref basic_json value can
+      be constructed.
+    - **strings**: @ref string_t, string literals, and all compatible string
+      containers can be used.
+    - **numbers**: @ref number_integer_t, @ref number_unsigned_t,
+      @ref number_float_t, and all convertible number types such as `int`,
+      `size_t`, `int64_t`, `float` or `double` can be used.
+    - **boolean**: @ref boolean_t / `bool` can be used.
+
+    See the examples below.
+
+    @tparam CompatibleType a type such that:
+    - @a CompatibleType is not derived from `std::istream`,
+    - @a CompatibleType is not @ref basic_json (to avoid hijacking copy/move
+         constructors),
+    - @a CompatibleType is not a @ref basic_json nested type (e.g.,
+         @ref json_pointer, @ref iterator, etc ...)
+    - @ref @ref json_serializer<U> has a
+         `to_json(basic_json_t&, CompatibleType&&)` method
+
+    @tparam U = `uncvref_t<CompatibleType>`
 
     @param[in] val the value to be forwarded
 
-    @throw what json_serializer<U>::to_json throws
+    @complexity Usually linear in the size of the passed @a val, also
+                depending on the implementation of the called `to_json()`
+                method.
+
+    @throw what `json_serializer<U>::to_json()` throws
+
+    @liveexample{The following code shows the constructor with several
+    compatible types.,basic_json__CompatibleType}
 
     @since version 2.1.0
     */
-    template<typename T, typename U = detail::uncvref_t<T>,
+    template<typename CompatibleType, typename U = detail::uncvref_t<CompatibleType>,
              detail::enable_if_t<not std::is_base_of<std::istream, U>::value and
                                  not std::is_same<U, basic_json_t>::value and
                                  not detail::is_basic_json_nested_type<
                                      basic_json_t, U>::value and
                                  detail::has_to_json<basic_json, U>::value,
                                  int> = 0>
-    basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json(
-            std::declval<basic_json_t&>(), std::forward<T>(val))))
+    basic_json(CompatibleType && val) noexcept(noexcept(JSONSerializer<U>::to_json(
+                std::declval<basic_json_t&>(), std::forward<CompatibleType>(val))))
     {
-        JSONSerializer<U>::to_json(*this, std::forward<T>(val));
+        JSONSerializer<U>::to_json(*this, std::forward<CompatibleType>(val));
+        assert_invariant();
     }
 
     /*!
@@ -7950,7 +7989,7 @@ class basic_json
     @complexity Constant.
 
     @liveexample{The following code exemplifies `type_name()` for all JSON
-    types.,typename}
+    types.,type_name}
 
     @since version 1.0.0
     */
@@ -7975,7 +8014,6 @@ class basic_json
                     return "number";
             }
         }
-
     }
 
   private:
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 45e1ba58..ab180d9f 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -1907,31 +1907,70 @@ class basic_json
     }
 
     /*!
-    @brief forwards the parameter to json_serializer<U>::to_json method (U = uncvref_t<T>)
+    @brief create a JSON value
 
-    this constructor is chosen if:
-    - T is not derived from std::istream
-    - T is not @ref basic_json (to avoid hijacking copy/move constructors)
-    - T is not a @ref basic_json nested type (@ref json_pointer, @ref iterator, etc ...)
-    - @ref json_serializer<U> has a to_json(basic_json_t&, T&&) method
+    This is a "catch all" constructor for all compatible JSON types; that is,
+    types for which a `to_json()` method exsits. The constructor forwards the
+    parameter @a val to that method (to `json_serializer<U>::to_json` method
+    with `U = uncvref_t<CompatibleType>`, to be exact).
+
+    Template type @a CompatibleType includes, but is not limited to, the
+    following types:
+    - **arrays**: @ref array_t and all kinds of compatible containers such as
+      `std::vector`, `std::deque`, `std::list`, `std::forward_list`,
+      `std::array`, `std::set`, `std::unordered_set`, `std::multiset`, and
+      `unordered_multiset` with a `value_type` from which a @ref basic_json
+      value can be constructed.
+    - **objects**: @ref object_t and all kinds of compatible associative
+      containers such as `std::map`, `std::unordered_map`, `std::multimap`,
+      and `std::unordered_multimap` with a `key_type` compatible to
+      @ref string_t and a `value_type` from which a @ref basic_json value can
+      be constructed.
+    - **strings**: @ref string_t, string literals, and all compatible string
+      containers can be used.
+    - **numbers**: @ref number_integer_t, @ref number_unsigned_t,
+      @ref number_float_t, and all convertible number types such as `int`,
+      `size_t`, `int64_t`, `float` or `double` can be used.
+    - **boolean**: @ref boolean_t / `bool` can be used.
+
+    See the examples below.
+
+    @tparam CompatibleType a type such that:
+    - @a CompatibleType is not derived from `std::istream`,
+    - @a CompatibleType is not @ref basic_json (to avoid hijacking copy/move
+         constructors),
+    - @a CompatibleType is not a @ref basic_json nested type (e.g.,
+         @ref json_pointer, @ref iterator, etc ...)
+    - @ref @ref json_serializer<U> has a
+         `to_json(basic_json_t&, CompatibleType&&)` method
+
+    @tparam U = `uncvref_t<CompatibleType>`
 
     @param[in] val the value to be forwarded
 
-    @throw what json_serializer<U>::to_json throws
+    @complexity Usually linear in the size of the passed @a val, also
+                depending on the implementation of the called `to_json()`
+                method.
+
+    @throw what `json_serializer<U>::to_json()` throws
+
+    @liveexample{The following code shows the constructor with several
+    compatible types.,basic_json__CompatibleType}
 
     @since version 2.1.0
     */
-    template<typename T, typename U = detail::uncvref_t<T>,
+    template<typename CompatibleType, typename U = detail::uncvref_t<CompatibleType>,
              detail::enable_if_t<not std::is_base_of<std::istream, U>::value and
                                  not std::is_same<U, basic_json_t>::value and
                                  not detail::is_basic_json_nested_type<
                                      basic_json_t, U>::value and
                                  detail::has_to_json<basic_json, U>::value,
                                  int> = 0>
-    basic_json(T && val) noexcept(noexcept(JSONSerializer<U>::to_json(
-            std::declval<basic_json_t&>(), std::forward<T>(val))))
+    basic_json(CompatibleType && val) noexcept(noexcept(JSONSerializer<U>::to_json(
+                std::declval<basic_json_t&>(), std::forward<CompatibleType>(val))))
     {
-        JSONSerializer<U>::to_json(*this, std::forward<T>(val));
+        JSONSerializer<U>::to_json(*this, std::forward<CompatibleType>(val));
+        assert_invariant();
     }
 
     /*!
@@ -7950,7 +7989,7 @@ class basic_json
     @complexity Constant.
 
     @liveexample{The following code exemplifies `type_name()` for all JSON
-    types.,typename}
+    types.,type_name}
 
     @since version 1.0.0
     */
@@ -7975,7 +8014,6 @@ class basic_json
                     return "number";
             }
         }
-
     }
 
   private:

From 4d3053cd42c41dd4bcf6cf45f996a0d1af655fb3 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Wed, 25 Jan 2017 22:21:07 +0100
Subject: [PATCH 138/174] :lipstick: some cleanup

---
 src/json.hpp      | 44 +++++++++++++++++++++++++-------------------
 src/json.hpp.re2c | 44 +++++++++++++++++++++++++-------------------
 2 files changed, 50 insertions(+), 38 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 29c1a7ab..2bc35c4a 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -204,14 +204,14 @@ using enable_if_t = typename std::enable_if<B, T>::type;
 template<typename T>
 using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;
 
-// Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait
+// taken from http://stackoverflow.com/a/26936864/266378
 template<typename T>
 using is_unscoped_enum =
     std::integral_constant<bool, std::is_convertible<T, int>::value and
     std::is_enum<T>::value>;
 
 /*
-Implementation of 2 C++17 constructs: conjunction, negation. This is needed
+Implementation of two C++17 constructs: conjunction, negation. This is needed
 to avoid evaluating all the traits in a condition
 
 For example: not std::is_same<void, T>::value and has_value_type<T>::value
@@ -393,6 +393,7 @@ NLOHMANN_JSON_HAS_HELPER(iterator);
 
 #undef NLOHMANN_JSON_HAS_HELPER
 
+
 template<bool B, class RealType, class CompatibleObjectType>
 struct is_compatible_object_type_impl : std::false_type {};
 
@@ -468,7 +469,7 @@ struct is_compatible_integer_type
 };
 
 
-// This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
+// trait checking if JSONSerializer<T>::from_json(json const&, udt&) exists
 template<typename BasicJsonType, typename T>
 struct has_from_json
 {
@@ -530,8 +531,7 @@ void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept
 
 template<typename BasicJsonType, typename CompatibleString,
          enable_if_t<std::is_constructible<typename BasicJsonType::string_t,
-                     CompatibleString>::value,
-                     int> = 0>
+                     CompatibleString>::value, int> = 0>
 void to_json(BasicJsonType& j, const CompatibleString& s)
 {
     external_constructor<value_t::string>::construct(j, s);
@@ -547,8 +547,7 @@ void to_json(BasicJsonType& j, FloatType val) noexcept
 template <
     typename BasicJsonType, typename CompatibleNumberUnsignedType,
     enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t,
-                CompatibleNumberUnsignedType>::value,
-                int> = 0 >
+                CompatibleNumberUnsignedType>::value, int> = 0 >
 void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
 {
     external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename BasicJsonType::number_unsigned_t>(val));
@@ -557,8 +556,7 @@ void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
 template <
     typename BasicJsonType, typename CompatibleNumberIntegerType,
     enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_integer_t,
-                CompatibleNumberIntegerType>::value,
-                int> = 0 >
+                CompatibleNumberIntegerType>::value, int> = 0 >
 void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
 {
     external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val));
@@ -690,7 +688,6 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr)
 }
 
 // forward_list doesn't have an insert method
-// TODO find a way to avoid including forward_list
 template<typename BasicJsonType, typename T, typename Allocator>
 void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
 {
@@ -781,14 +778,15 @@ void from_json(const BasicJsonType& j, CompatibleObjectType& obj)
     using std::begin;
     using std::end;
     // we could avoid the assignment, but this might require a for loop, which
-    // might be less efficient than the container constructor for some containers (would it?)
+    // might be less efficient than the container constructor for some
+    // containers (would it?)
     obj = CompatibleObjectType(begin(*inner_object), end(*inner_object));
 }
 
-// overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
-//
-// note: Is it really necessary to provide explicit overloads for boolean_t etc..
-// in case of a custom BooleanType which is not an arithmetic type?
+// overload for arithmetic types, not chosen for basic_json template arguments
+// (BooleanType, etc..); note: Is it really necessary to provide explicit
+// overloads for boolean_t etc. in case of a custom BooleanType which is not
+// an arithmetic type?
 template<typename BasicJsonType, typename ArithmeticType,
          enable_if_t <
              std::is_arithmetic<ArithmeticType>::value and
@@ -802,19 +800,29 @@ void from_json(const BasicJsonType& j, ArithmeticType& val)
     switch (static_cast<value_t>(j))
     {
         case value_t::number_unsigned:
+        {
             val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
             break;
+        }
         case value_t::number_integer:
+        {
             val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
             break;
+        }
         case value_t::number_float:
+        {
             val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>());
             break;
+        }
         case value_t::boolean:
+        {
             val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>());
             break;
+        }
         default:
+        {
             JSON_THROW(std::domain_error("type must be number, but is " + j.type_name()));
+        }
     }
 }
 
@@ -3160,8 +3168,7 @@ class basic_json
         detail::enable_if_t <
             not std::is_same<basic_json_t, U>::value and
             detail::has_from_json<basic_json_t, U>::value and
-            not detail::has_non_default_from_json<basic_json_t,
-                    U>::value,
+            not detail::has_non_default_from_json<basic_json_t, U>::value,
             int > = 0 >
     U get() const noexcept(noexcept(JSONSerializer<U>::from_json(
                                         std::declval<const basic_json_t&>(), std::declval<U&>())))
@@ -3196,8 +3203,7 @@ class basic_json
         typename U = detail::uncvref_t<T>,
         detail::enable_if_t<not std::is_same<basic_json_t, U>::value and
                             detail::has_non_default_from_json<basic_json_t,
-                                    U>::value,
-                            int> = 0 >
+                                    U>::value, int> = 0 >
     U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
         static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index ab180d9f..5a9d2f88 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -204,14 +204,14 @@ using enable_if_t = typename std::enable_if<B, T>::type;
 template<typename T>
 using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;
 
-// Taken from http://stackoverflow.com/questions/26936640/how-to-implement-is-enum-class-type-trait
+// taken from http://stackoverflow.com/a/26936864/266378
 template<typename T>
 using is_unscoped_enum =
     std::integral_constant<bool, std::is_convertible<T, int>::value and
     std::is_enum<T>::value>;
 
 /*
-Implementation of 2 C++17 constructs: conjunction, negation. This is needed
+Implementation of two C++17 constructs: conjunction, negation. This is needed
 to avoid evaluating all the traits in a condition
 
 For example: not std::is_same<void, T>::value and has_value_type<T>::value
@@ -393,6 +393,7 @@ NLOHMANN_JSON_HAS_HELPER(iterator);
 
 #undef NLOHMANN_JSON_HAS_HELPER
 
+
 template<bool B, class RealType, class CompatibleObjectType>
 struct is_compatible_object_type_impl : std::false_type {};
 
@@ -468,7 +469,7 @@ struct is_compatible_integer_type
 };
 
 
-// This trait checks if JSONSerializer<T>::from_json(json const&, udt&) exists
+// trait checking if JSONSerializer<T>::from_json(json const&, udt&) exists
 template<typename BasicJsonType, typename T>
 struct has_from_json
 {
@@ -530,8 +531,7 @@ void to_json(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept
 
 template<typename BasicJsonType, typename CompatibleString,
          enable_if_t<std::is_constructible<typename BasicJsonType::string_t,
-                     CompatibleString>::value,
-                     int> = 0>
+                     CompatibleString>::value, int> = 0>
 void to_json(BasicJsonType& j, const CompatibleString& s)
 {
     external_constructor<value_t::string>::construct(j, s);
@@ -547,8 +547,7 @@ void to_json(BasicJsonType& j, FloatType val) noexcept
 template <
     typename BasicJsonType, typename CompatibleNumberUnsignedType,
     enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t,
-                CompatibleNumberUnsignedType>::value,
-                int> = 0 >
+                CompatibleNumberUnsignedType>::value, int> = 0 >
 void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
 {
     external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename BasicJsonType::number_unsigned_t>(val));
@@ -557,8 +556,7 @@ void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
 template <
     typename BasicJsonType, typename CompatibleNumberIntegerType,
     enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_integer_t,
-                CompatibleNumberIntegerType>::value,
-                int> = 0 >
+                CompatibleNumberIntegerType>::value, int> = 0 >
 void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
 {
     external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val));
@@ -690,7 +688,6 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr)
 }
 
 // forward_list doesn't have an insert method
-// TODO find a way to avoid including forward_list
 template<typename BasicJsonType, typename T, typename Allocator>
 void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
 {
@@ -781,14 +778,15 @@ void from_json(const BasicJsonType& j, CompatibleObjectType& obj)
     using std::begin;
     using std::end;
     // we could avoid the assignment, but this might require a for loop, which
-    // might be less efficient than the container constructor for some containers (would it?)
+    // might be less efficient than the container constructor for some
+    // containers (would it?)
     obj = CompatibleObjectType(begin(*inner_object), end(*inner_object));
 }
 
-// overload for arithmetic types, not chosen for basic_json template arguments (BooleanType, etc..)
-//
-// note: Is it really necessary to provide explicit overloads for boolean_t etc..
-// in case of a custom BooleanType which is not an arithmetic type?
+// overload for arithmetic types, not chosen for basic_json template arguments
+// (BooleanType, etc..); note: Is it really necessary to provide explicit
+// overloads for boolean_t etc. in case of a custom BooleanType which is not
+// an arithmetic type?
 template<typename BasicJsonType, typename ArithmeticType,
          enable_if_t <
              std::is_arithmetic<ArithmeticType>::value and
@@ -802,19 +800,29 @@ void from_json(const BasicJsonType& j, ArithmeticType& val)
     switch (static_cast<value_t>(j))
     {
         case value_t::number_unsigned:
+        {
             val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>());
             break;
+        }
         case value_t::number_integer:
+        {
             val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>());
             break;
+        }
         case value_t::number_float:
+        {
             val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>());
             break;
+        }
         case value_t::boolean:
+        {
             val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>());
             break;
+        }
         default:
+        {
             JSON_THROW(std::domain_error("type must be number, but is " + j.type_name()));
+        }
     }
 }
 
@@ -3160,8 +3168,7 @@ class basic_json
         detail::enable_if_t <
             not std::is_same<basic_json_t, U>::value and
             detail::has_from_json<basic_json_t, U>::value and
-            not detail::has_non_default_from_json<basic_json_t,
-                    U>::value,
+            not detail::has_non_default_from_json<basic_json_t, U>::value,
             int > = 0 >
     U get() const noexcept(noexcept(JSONSerializer<U>::from_json(
                                         std::declval<const basic_json_t&>(), std::declval<U&>())))
@@ -3196,8 +3203,7 @@ class basic_json
         typename U = detail::uncvref_t<T>,
         detail::enable_if_t<not std::is_same<basic_json_t, U>::value and
                             detail::has_non_default_from_json<basic_json_t,
-                                    U>::value,
-                            int> = 0 >
+                                    U>::value, int> = 0 >
     U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
     {
         static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");

From 77bb7af5d91606d90c0894ed61459d327c64dda9 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Thu, 26 Jan 2017 07:29:37 +0100
Subject: [PATCH 139/174] :memo: added more documentation

---
 src/json.hpp      | 132 +++++++++++++++++++++++++++++++++-------------
 src/json.hpp.re2c | 132 +++++++++++++++++++++++++++++++++-------------
 2 files changed, 188 insertions(+), 76 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 2bc35c4a..06c5683b 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -956,6 +956,8 @@ default; will be used in @ref number_integer_t)
 default; will be used in @ref number_float_t)
 @tparam AllocatorType type of the allocator to use (`std::allocator` by
 default)
+@tparam JSONSerializer the serializer to resolve internal calls to `to_json()`
+and `from_json()`
 
 @requirement The class satisfies the following concept requirements:
 - Basic
@@ -2997,6 +2999,10 @@ class basic_json
     /// @}
 
   private:
+    //////////////////
+    // value access //
+    //////////////////
+
     /// get a boolean (explicit)
     boolean_t get_impl(boolean_t* /*unused*/) const
     {
@@ -3124,12 +3130,17 @@ class basic_json
     }
 
   public:
+    /// @name value access
+    /// Direct access to the stored value of a JSON value.
+    /// @{
+
     /*!
     @brief get special-case overload
 
-    This overloads avoids a lot of template boilerplate, it can be seen as the identity method
+    This overloads avoids a lot of template boilerplate, it can be seen as the
+    identity method
 
-    @tparam T type; T == @ref basic_json
+    @tparam BasicJsonType == @ref basic_json
 
     @return a copy of *this
 
@@ -3138,8 +3149,8 @@ class basic_json
     @since version 2.1.0
     */
     template <
-        typename T,
-        detail::enable_if_t<std::is_same<typename std::remove_const<T>::type,
+        typename BasicJsonType,
+        detail::enable_if_t<std::is_same<typename std::remove_const<BasicJsonType>::type,
                                          basic_json_t>::value,
                             int> = 0 >
     basic_json get() const
@@ -3148,66 +3159,111 @@ class basic_json
     }
 
     /*!
-    @brief get overload for CopyConstructible and DefaultConstructible types
-    construct a default U value, and call @ref json_serializer<U> from_json method with it
+    @brief get a value (explicit)
+
+    Explicit type conversion between the JSON value and a compatible value
+    which is [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible)
+    and [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible).
+    The value is converted by calling the @ref json_serializer<ValueType>
+    `from_json()` method.
+
+    The function is equivalent to executing
+    @code {.cpp}
+    ValueType ret;
+    JSONSerializer<ValueType>::from_json(*this, ret);
+    return ret;
+    @endcode
 
     This overloads is chosen if:
-    - U is not @ref basic_json
-    - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&)
-    - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&);
+    - @a ValueType is not @ref basic_json,
+    - @ref json_serializer<ValueType> has a `from_json()` method of the form
+      `void from_json(const @ref basic_json&, ValueType&)`, and
+    - @ref json_serializer<ValueType> does not have a `from_json()` method of
+      the form `ValueType from_json(const @ref basic_json&)`
 
-    @return a value of type U
+    @tparam ValueTypeCV the provided value type
+    @tparam ValueType the returned value type
 
-    @throw what json_serializer<U> from_json method throws
+    @return copy of the JSON value, converted to @a ValueType
+
+    @throw what @ref json_serializer<ValueType> `from_json()` method throws
+
+    @liveexample{The example below shows several conversions from JSON values
+    to other types. There a few things to note: (1) Floating-point numbers can
+    be converted to integers\, (2) A JSON array can be converted to a standard
+    `std::vector<short>`\, (3) A JSON object can be converted to C++
+    associative containers such as `std::unordered_map<std::string\,
+    json>`.,get__ValueType_const}
 
     @since version 2.1.0
     */
     template <
-        typename T,
-        typename U = detail::uncvref_t<T>,
+        typename ValueTypeCV,
+        typename ValueType = detail::uncvref_t<ValueTypeCV>,
         detail::enable_if_t <
-            not std::is_same<basic_json_t, U>::value and
-            detail::has_from_json<basic_json_t, U>::value and
-            not detail::has_non_default_from_json<basic_json_t, U>::value,
+            not std::is_same<basic_json_t, ValueType>::value and
+            detail::has_from_json<basic_json_t, ValueType>::value and
+            not detail::has_non_default_from_json<basic_json_t, ValueType>::value,
             int > = 0 >
-    U get() const noexcept(noexcept(JSONSerializer<U>::from_json(
-                                        std::declval<const basic_json_t&>(), std::declval<U&>())))
+    ValueType get() const noexcept(noexcept(
+                                       JSONSerializer<ValueType>::from_json(std::declval<const basic_json_t&>(), std::declval<ValueType&>())))
     {
-        // we cannot static_assert on T being non-const, because there is support
-        // for get<const basic_json_t>(), which is why we still need the uncvref
-        static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
-        static_assert(std::is_default_constructible<U>::value,
-                      "Types must be DefaultConstructible when used with get");
-        U ret;
-        JSONSerializer<U>::from_json(*this, ret);
+        // we cannot static_assert on ValueTypeCV being non-const, because
+        // there is support for get<const basic_json_t>(), which is why we
+        // still need the uncvref
+        static_assert(not std::is_reference<ValueTypeCV>::value,
+                      "get() cannot be used with reference types, you might want to use get_ref()");
+        static_assert(std::is_default_constructible<ValueType>::value,
+                      "types must be DefaultConstructible when used with get()");
+
+        ValueType ret;
+        JSONSerializer<ValueType>::from_json(*this, ret);
         return ret;
     }
 
     /*!
-    @brief get overload for types than cannot be default constructed or copy constructed
+    @brief get a value (explicit); special case
 
-    If @ref json_serializer<U> has both overloads of from_json, this one is chosen
+    Explicit type conversion between the JSON value and a compatible value
+    which is **not** [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible)
+    and **not** [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible).
+    The value is converted by calling the @ref json_serializer<ValueType>
+    `from_json()` method.
+
+    The function is equivalent to executing
+    @code {.cpp}
+    return JSONSerializer<ValueTypeCV>::from_json(*this);
+    @endcode
 
     This overloads is chosen if:
-    - U is not @ref basic_json
-    - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&);
+    - @a ValueType is not @ref basic_json and
+    - @ref json_serializer<ValueType> has a `from_json()` method of the form
+      `ValueType from_json(const @ref basic_json&)`
 
-    @return a value of type U
+    @note If @ref json_serializer<ValueType> has both overloads of
+    `from_json()`, this one is chosen.
 
-    @throw what json_serializer<U> from_json method throws
+    @tparam ValueTypeCV the provided value type
+    @tparam ValueType the returned value type
+
+    @return copy of the JSON value, converted to @a ValueType
+
+    @throw what @ref json_serializer<ValueType> `from_json()` method throws
 
     @since version 2.1.0
     */
     template <
-        typename T,
-        typename U = detail::uncvref_t<T>,
-        detail::enable_if_t<not std::is_same<basic_json_t, U>::value and
+        typename ValueTypeCV,
+        typename ValueType = detail::uncvref_t<ValueTypeCV>,
+        detail::enable_if_t<not std::is_same<basic_json_t, ValueType>::value and
                             detail::has_non_default_from_json<basic_json_t,
-                                    U>::value, int> = 0 >
-    U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
+                                    ValueType>::value, int> = 0 >
+    ValueType get() const noexcept(noexcept(
+                                       JSONSerializer<ValueTypeCV>::from_json(std::declval<const basic_json_t&>())))
     {
-        static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
-        return JSONSerializer<T>::from_json(*this);
+        static_assert(not std::is_reference<ValueTypeCV>::value,
+                      "get() cannot be used with reference types, you might want to use get_ref()");
+        return JSONSerializer<ValueTypeCV>::from_json(*this);
     }
 
     /*!
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 5a9d2f88..0bf3db1d 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -956,6 +956,8 @@ default; will be used in @ref number_integer_t)
 default; will be used in @ref number_float_t)
 @tparam AllocatorType type of the allocator to use (`std::allocator` by
 default)
+@tparam JSONSerializer the serializer to resolve internal calls to `to_json()`
+and `from_json()`
 
 @requirement The class satisfies the following concept requirements:
 - Basic
@@ -2997,6 +2999,10 @@ class basic_json
     /// @}
 
   private:
+    //////////////////
+    // value access //
+    //////////////////
+
     /// get a boolean (explicit)
     boolean_t get_impl(boolean_t* /*unused*/) const
     {
@@ -3124,12 +3130,17 @@ class basic_json
     }
 
   public:
+    /// @name value access
+    /// Direct access to the stored value of a JSON value.
+    /// @{
+
     /*!
     @brief get special-case overload
 
-    This overloads avoids a lot of template boilerplate, it can be seen as the identity method
+    This overloads avoids a lot of template boilerplate, it can be seen as the
+    identity method
 
-    @tparam T type; T == @ref basic_json
+    @tparam BasicJsonType == @ref basic_json
 
     @return a copy of *this
 
@@ -3138,8 +3149,8 @@ class basic_json
     @since version 2.1.0
     */
     template <
-        typename T,
-        detail::enable_if_t<std::is_same<typename std::remove_const<T>::type,
+        typename BasicJsonType,
+        detail::enable_if_t<std::is_same<typename std::remove_const<BasicJsonType>::type,
                                          basic_json_t>::value,
                             int> = 0 >
     basic_json get() const
@@ -3148,66 +3159,111 @@ class basic_json
     }
 
     /*!
-    @brief get overload for CopyConstructible and DefaultConstructible types
-    construct a default U value, and call @ref json_serializer<U> from_json method with it
+    @brief get a value (explicit)
+
+    Explicit type conversion between the JSON value and a compatible value
+    which is [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible)
+    and [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible).
+    The value is converted by calling the @ref json_serializer<ValueType>
+    `from_json()` method.
+
+    The function is equivalent to executing
+    @code {.cpp}
+    ValueType ret;
+    JSONSerializer<ValueType>::from_json(*this, ret);
+    return ret;
+    @endcode
 
     This overloads is chosen if:
-    - U is not @ref basic_json
-    - @ref json_serializer<U> has a from_json method of the form: void from_json(const @ref basic_json&, U&)
-    - @ref json_serializer<U> does not have a from_json method of the form: U from_json(const @ref basic_json&);
+    - @a ValueType is not @ref basic_json,
+    - @ref json_serializer<ValueType> has a `from_json()` method of the form
+      `void from_json(const @ref basic_json&, ValueType&)`, and
+    - @ref json_serializer<ValueType> does not have a `from_json()` method of
+      the form `ValueType from_json(const @ref basic_json&)`
 
-    @return a value of type U
+    @tparam ValueTypeCV the provided value type
+    @tparam ValueType the returned value type
 
-    @throw what json_serializer<U> from_json method throws
+    @return copy of the JSON value, converted to @a ValueType
+
+    @throw what @ref json_serializer<ValueType> `from_json()` method throws
+
+    @liveexample{The example below shows several conversions from JSON values
+    to other types. There a few things to note: (1) Floating-point numbers can
+    be converted to integers\, (2) A JSON array can be converted to a standard
+    `std::vector<short>`\, (3) A JSON object can be converted to C++
+    associative containers such as `std::unordered_map<std::string\,
+    json>`.,get__ValueType_const}
 
     @since version 2.1.0
     */
     template <
-        typename T,
-        typename U = detail::uncvref_t<T>,
+        typename ValueTypeCV,
+        typename ValueType = detail::uncvref_t<ValueTypeCV>,
         detail::enable_if_t <
-            not std::is_same<basic_json_t, U>::value and
-            detail::has_from_json<basic_json_t, U>::value and
-            not detail::has_non_default_from_json<basic_json_t, U>::value,
+            not std::is_same<basic_json_t, ValueType>::value and
+            detail::has_from_json<basic_json_t, ValueType>::value and
+            not detail::has_non_default_from_json<basic_json_t, ValueType>::value,
             int > = 0 >
-    U get() const noexcept(noexcept(JSONSerializer<U>::from_json(
-                                        std::declval<const basic_json_t&>(), std::declval<U&>())))
+    ValueType get() const noexcept(noexcept(
+                                       JSONSerializer<ValueType>::from_json(std::declval<const basic_json_t&>(), std::declval<ValueType&>())))
     {
-        // we cannot static_assert on T being non-const, because there is support
-        // for get<const basic_json_t>(), which is why we still need the uncvref
-        static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
-        static_assert(std::is_default_constructible<U>::value,
-                      "Types must be DefaultConstructible when used with get");
-        U ret;
-        JSONSerializer<U>::from_json(*this, ret);
+        // we cannot static_assert on ValueTypeCV being non-const, because
+        // there is support for get<const basic_json_t>(), which is why we
+        // still need the uncvref
+        static_assert(not std::is_reference<ValueTypeCV>::value,
+                      "get() cannot be used with reference types, you might want to use get_ref()");
+        static_assert(std::is_default_constructible<ValueType>::value,
+                      "types must be DefaultConstructible when used with get()");
+
+        ValueType ret;
+        JSONSerializer<ValueType>::from_json(*this, ret);
         return ret;
     }
 
     /*!
-    @brief get overload for types than cannot be default constructed or copy constructed
+    @brief get a value (explicit); special case
 
-    If @ref json_serializer<U> has both overloads of from_json, this one is chosen
+    Explicit type conversion between the JSON value and a compatible value
+    which is **not** [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible)
+    and **not** [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible).
+    The value is converted by calling the @ref json_serializer<ValueType>
+    `from_json()` method.
+
+    The function is equivalent to executing
+    @code {.cpp}
+    return JSONSerializer<ValueTypeCV>::from_json(*this);
+    @endcode
 
     This overloads is chosen if:
-    - U is not @ref basic_json
-    - @ref json_serializer<U> has a from_json method of the form: U from_json(const @ref basic_json&);
+    - @a ValueType is not @ref basic_json and
+    - @ref json_serializer<ValueType> has a `from_json()` method of the form
+      `ValueType from_json(const @ref basic_json&)`
 
-    @return a value of type U
+    @note If @ref json_serializer<ValueType> has both overloads of
+    `from_json()`, this one is chosen.
 
-    @throw what json_serializer<U> from_json method throws
+    @tparam ValueTypeCV the provided value type
+    @tparam ValueType the returned value type
+
+    @return copy of the JSON value, converted to @a ValueType
+
+    @throw what @ref json_serializer<ValueType> `from_json()` method throws
 
     @since version 2.1.0
     */
     template <
-        typename T,
-        typename U = detail::uncvref_t<T>,
-        detail::enable_if_t<not std::is_same<basic_json_t, U>::value and
+        typename ValueTypeCV,
+        typename ValueType = detail::uncvref_t<ValueTypeCV>,
+        detail::enable_if_t<not std::is_same<basic_json_t, ValueType>::value and
                             detail::has_non_default_from_json<basic_json_t,
-                                    U>::value, int> = 0 >
-    U get() const noexcept(noexcept(JSONSerializer<T>::from_json(std::declval<const basic_json_t&>())))
+                                    ValueType>::value, int> = 0 >
+    ValueType get() const noexcept(noexcept(
+                                       JSONSerializer<ValueTypeCV>::from_json(std::declval<const basic_json_t&>())))
     {
-        static_assert(not std::is_reference<T>::value, "get cannot be used with reference types, you might want to use get_ref");
-        return JSONSerializer<T>::from_json(*this);
+        static_assert(not std::is_reference<ValueTypeCV>::value,
+                      "get() cannot be used with reference types, you might want to use get_ref()");
+        return JSONSerializer<ValueTypeCV>::from_json(*this);
     }
 
     /*!

From 1305e0355795e41521a1de9b3137b7c0ff4ea01e Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Thu, 26 Jan 2017 19:39:34 +0100
Subject: [PATCH 140/174] :memo: fixed documentation

---
 README.md | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 8cf4865b..e2e36fd1 100644
--- a/README.md
+++ b/README.md
@@ -520,7 +520,7 @@ Likewise, when calling `get<your_type>()`, the `from_json` method will be called
 Some important things:
 
 * Those methods **MUST** be in your type's namespace (which can be the global namespace), or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined).
-* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). (There is a way to bypass those requirements described later.)
+* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible). (There is a way to bypass this requirement described later.)
 
 #### How do I convert third-party types?
 
@@ -583,8 +583,7 @@ struct move_only_type {
     move_only_type(const move_only_type&) = delete;
     move_only_type(move_only_type&&) = default;
     
-    private:
-        int i;
+    int i;
 };
 
 namespace nlohmann {

From cd9701b123df0bc470c3ec15d71b35b3c5410088 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Thu, 26 Jan 2017 20:51:30 +0100
Subject: [PATCH 141/174] :lipstick: cleanup

---
 src/json.hpp      | 78 +++++++++++++++++++++++++----------------------
 src/json.hpp.re2c | 78 +++++++++++++++++++++++++----------------------
 2 files changed, 84 insertions(+), 72 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 06c5683b..6909553a 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -633,7 +633,7 @@ void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
 template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
 {
-    if (!j.is_boolean())
+    if (not j.is_boolean())
     {
         JSON_THROW(std::domain_error("type must be boolean, but is " + j.type_name()));
     }
@@ -643,7 +643,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
 template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)
 {
-    if (!j.is_string())
+    if (not j.is_string())
     {
         JSON_THROW(std::domain_error("type must be string, but is " + j.type_name()));
     }
@@ -680,7 +680,7 @@ void from_json(const BasicJsonType& j, UnscopedEnumType& e)
 template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr)
 {
-    if (!j.is_array())
+    if (not j.is_array())
     {
         JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
     }
@@ -699,7 +699,7 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
     }
     if (not std::is_same<T, BasicJsonType>::value)
     {
-        if (!j.is_array())
+        if (not j.is_array())
         {
             JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
         }
@@ -757,7 +757,7 @@ void from_json(const BasicJsonType& j, CompatibleArrayType& arr)
     // when T == BasicJsonType, do not check if value_t is correct
     if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value)
     {
-        if (!j.is_array())
+        if (not j.is_array())
         {
             JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
         }
@@ -769,7 +769,7 @@ template<typename BasicJsonType, typename CompatibleObjectType,
          enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0>
 void from_json(const BasicJsonType& j, CompatibleObjectType& obj)
 {
-    if (!j.is_object())
+    if (not j.is_object())
     {
         JSON_THROW(std::domain_error("type must be object, but is " + j.type_name()));
     }
@@ -828,6 +828,7 @@ void from_json(const BasicJsonType& j, ArithmeticType& val)
 
 struct to_json_fn
 {
+  private:
     template<typename BasicJsonType, typename T>
     auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val))))
     -> decltype(to_json(j, std::forward<T>(val)), void())
@@ -887,52 +888,57 @@ struct static_const
 
 template<typename T>
 constexpr T static_const<T>::value;
-
-
-/*!
-@brief helper class to create locales with decimal point
-
-This struct is used a default locale during the JSON serialization. JSON
-requires the decimal point to be `.`, so this function overloads the
-`do_decimal_point()` function to return `.`. This function is called by
-float-to-string conversions to retrieve the decimal separator between integer
-and fractional parts.
-
-@sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315
-@since version 2.0.0
-*/
-struct DecimalSeparator : std::numpunct<char>
-{
-    char do_decimal_point() const
-    {
-        return '.';
-    }
-};
 } // namespace detail
 
 
+/// namespace to hold default `to_json` / `from_json` functions
 namespace
 {
 constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value;
 constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value;
 }
 
-// default JSONSerializer template argument, doesn't care about template argument
-// will use ADL for serialization
+
+/*!
+@brief default JSONSerializer template argument
+
+This serializer ignores the template arguments and uses ADL
+([argument-dependent lookup](http://en.cppreference.com/w/cpp/language/adl))
+for serialization.
+*/
 template<typename = void, typename = void>
 struct adl_serializer
 {
-    template<typename BasicJsonType, typename T>
-    static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))
+    /*!
+    @brief convert a JSON value to any value type
+
+    This function is usually called by the `get()` function of the
+    @ref basic_json class (either explicit or via conversion operators).
+
+    @param[in] j         JSON value to read from
+    @param[in, out] val  value to write to
+    */
+    template<typename BasicJsonType, typename ValueType>
+    static void from_json(BasicJsonType&& j, ValueType& val) noexcept(
+        noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))
     {
         ::nlohmann::from_json(std::forward<BasicJsonType>(j), val);
     }
 
-    template<typename BasicJsonType, typename T>
-    static void to_json(BasicJsonType& j, T&& val) noexcept(
-        noexcept(::nlohmann::to_json(j, std::forward<T>(val))))
+    /*!
+    @brief convert any value type to a JSON value
+
+    This function is usually called by the constructors of the @ref basic_json
+    class.
+
+    @param[in, out] j  JSON value to write to
+    @param[in] val     value to read from
+    */
+    template<typename BasicJsonType, typename ValueType>
+    static void to_json(BasicJsonType& j, ValueType&& val) noexcept(
+        noexcept(::nlohmann::to_json(j, std::forward<ValueType>(val))))
     {
-        ::nlohmann::to_json(j, std::forward<T>(val));
+        ::nlohmann::to_json(j, std::forward<ValueType>(val));
     }
 };
 
@@ -957,7 +963,7 @@ default; will be used in @ref number_float_t)
 @tparam AllocatorType type of the allocator to use (`std::allocator` by
 default)
 @tparam JSONSerializer the serializer to resolve internal calls to `to_json()`
-and `from_json()`
+and `from_json()` (@ref adl_serializer by default)
 
 @requirement The class satisfies the following concept requirements:
 - Basic
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 0bf3db1d..b1df2bf7 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -633,7 +633,7 @@ void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
 template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
 {
-    if (!j.is_boolean())
+    if (not j.is_boolean())
     {
         JSON_THROW(std::domain_error("type must be boolean, but is " + j.type_name()));
     }
@@ -643,7 +643,7 @@ void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b)
 template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s)
 {
-    if (!j.is_string())
+    if (not j.is_string())
     {
         JSON_THROW(std::domain_error("type must be string, but is " + j.type_name()));
     }
@@ -680,7 +680,7 @@ void from_json(const BasicJsonType& j, UnscopedEnumType& e)
 template<typename BasicJsonType>
 void from_json(const BasicJsonType& j, typename BasicJsonType::array_t& arr)
 {
-    if (!j.is_array())
+    if (not j.is_array())
     {
         JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
     }
@@ -699,7 +699,7 @@ void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l)
     }
     if (not std::is_same<T, BasicJsonType>::value)
     {
-        if (!j.is_array())
+        if (not j.is_array())
         {
             JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
         }
@@ -757,7 +757,7 @@ void from_json(const BasicJsonType& j, CompatibleArrayType& arr)
     // when T == BasicJsonType, do not check if value_t is correct
     if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value)
     {
-        if (!j.is_array())
+        if (not j.is_array())
         {
             JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
         }
@@ -769,7 +769,7 @@ template<typename BasicJsonType, typename CompatibleObjectType,
          enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value, int> = 0>
 void from_json(const BasicJsonType& j, CompatibleObjectType& obj)
 {
-    if (!j.is_object())
+    if (not j.is_object())
     {
         JSON_THROW(std::domain_error("type must be object, but is " + j.type_name()));
     }
@@ -828,6 +828,7 @@ void from_json(const BasicJsonType& j, ArithmeticType& val)
 
 struct to_json_fn
 {
+  private:
     template<typename BasicJsonType, typename T>
     auto call(BasicJsonType& j, T&& val, priority_tag<1>) const noexcept(noexcept(to_json(j, std::forward<T>(val))))
     -> decltype(to_json(j, std::forward<T>(val)), void())
@@ -887,52 +888,57 @@ struct static_const
 
 template<typename T>
 constexpr T static_const<T>::value;
-
-
-/*!
-@brief helper class to create locales with decimal point
-
-This struct is used a default locale during the JSON serialization. JSON
-requires the decimal point to be `.`, so this function overloads the
-`do_decimal_point()` function to return `.`. This function is called by
-float-to-string conversions to retrieve the decimal separator between integer
-and fractional parts.
-
-@sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315
-@since version 2.0.0
-*/
-struct DecimalSeparator : std::numpunct<char>
-{
-    char do_decimal_point() const
-    {
-        return '.';
-    }
-};
 } // namespace detail
 
 
+/// namespace to hold default `to_json` / `from_json` functions
 namespace
 {
 constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value;
 constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value;
 }
 
-// default JSONSerializer template argument, doesn't care about template argument
-// will use ADL for serialization
+
+/*!
+@brief default JSONSerializer template argument
+
+This serializer ignores the template arguments and uses ADL
+([argument-dependent lookup](http://en.cppreference.com/w/cpp/language/adl))
+for serialization.
+*/
 template<typename = void, typename = void>
 struct adl_serializer
 {
-    template<typename BasicJsonType, typename T>
-    static void from_json(BasicJsonType&& j, T& val) noexcept(noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))
+    /*!
+    @brief convert a JSON value to any value type
+
+    This function is usually called by the `get()` function of the
+    @ref basic_json class (either explicit or via conversion operators).
+
+    @param[in] j         JSON value to read from
+    @param[in, out] val  value to write to
+    */
+    template<typename BasicJsonType, typename ValueType>
+    static void from_json(BasicJsonType&& j, ValueType& val) noexcept(
+        noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val)))
     {
         ::nlohmann::from_json(std::forward<BasicJsonType>(j), val);
     }
 
-    template<typename BasicJsonType, typename T>
-    static void to_json(BasicJsonType& j, T&& val) noexcept(
-        noexcept(::nlohmann::to_json(j, std::forward<T>(val))))
+    /*!
+    @brief convert any value type to a JSON value
+
+    This function is usually called by the constructors of the @ref basic_json
+    class.
+
+    @param[in, out] j  JSON value to write to
+    @param[in] val     value to read from
+    */
+    template<typename BasicJsonType, typename ValueType>
+    static void to_json(BasicJsonType& j, ValueType&& val) noexcept(
+        noexcept(::nlohmann::to_json(j, std::forward<ValueType>(val))))
     {
-        ::nlohmann::to_json(j, std::forward<T>(val));
+        ::nlohmann::to_json(j, std::forward<ValueType>(val));
     }
 };
 
@@ -957,7 +963,7 @@ default; will be used in @ref number_float_t)
 @tparam AllocatorType type of the allocator to use (`std::allocator` by
 default)
 @tparam JSONSerializer the serializer to resolve internal calls to `to_json()`
-and `from_json()`
+and `from_json()` (@ref adl_serializer by default)
 
 @requirement The class satisfies the following concept requirements:
 - Basic

From 2f6260751c15780c9217613cce69d3eb98570d2f Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Fri, 27 Jan 2017 18:50:52 +0100
Subject: [PATCH 142/174] :memo: fixed #434

---
 README.md                                     | 1 +
 doc/examples/at__object_t_key_type.cpp        | 2 +-
 doc/examples/at__object_t_key_type.link       | 2 +-
 doc/examples/at__object_t_key_type_const.cpp  | 2 +-
 doc/examples/at__object_t_key_type_const.link | 2 +-
 5 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index e2e36fd1..0f5fb760 100644
--- a/README.md
+++ b/README.md
@@ -810,6 +810,7 @@ I deeply appreciate the help of the following people.
 - [gnzlbg](https://github.com/gnzlbg) supported the implementation of user-defined types.
 - [Alexej Harm](https://github.com/qis) helped to get the user-defined types working with Visual Studio.
 - [Jared Grubb](https://github.com/jaredgrubb) supported the implementation of user-defined types.
+- [EnricoBilla](https://github.com/EnricoBilla) noted a typo in an example.
 
 Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone.
 
diff --git a/doc/examples/at__object_t_key_type.cpp b/doc/examples/at__object_t_key_type.cpp
index a8fc9998..83646f15 100644
--- a/doc/examples/at__object_t_key_type.cpp
+++ b/doc/examples/at__object_t_key_type.cpp
@@ -8,7 +8,7 @@ int main()
     json object =
     {
         {"the good", "il buono"},
-        {"the bad", "il cativo"},
+        {"the bad", "il cattivo"},
         {"the ugly", "il brutto"}
     };
 
diff --git a/doc/examples/at__object_t_key_type.link b/doc/examples/at__object_t_key_type.link
index e01197e6..4a050ecf 100644
--- a/doc/examples/at__object_t_key_type.link
+++ b/doc/examples/at__object_t_key_type.link
@@ -1 +1 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/rsnwWxpDjmtRRSzb"><b>online</b></a>
\ No newline at end of file
+<a target="_blank" href="http://melpon.org/wandbox/permlink/tb5CaFfsMWpAvi7m"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/at__object_t_key_type_const.cpp b/doc/examples/at__object_t_key_type_const.cpp
index 0686db45..0e8d9d72 100644
--- a/doc/examples/at__object_t_key_type_const.cpp
+++ b/doc/examples/at__object_t_key_type_const.cpp
@@ -8,7 +8,7 @@ int main()
     json object =
     {
         {"the good", "il buono"},
-        {"the bad", "il cativo"},
+        {"the bad", "il cattivo"},
         {"the ugly", "il brutto"}
     };
 
diff --git a/doc/examples/at__object_t_key_type_const.link b/doc/examples/at__object_t_key_type_const.link
index 2588529b..1ad9c07d 100644
--- a/doc/examples/at__object_t_key_type_const.link
+++ b/doc/examples/at__object_t_key_type_const.link
@@ -1 +1 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/aeoZrnhnb3HKClCY"><b>online</b></a>
\ No newline at end of file
+<a target="_blank" href="http://melpon.org/wandbox/permlink/NFG86H5khRUePc1s"><b>online</b></a>
\ No newline at end of file

From d870826811039034e517c4e64e35a833bddf666c Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sat, 28 Jan 2017 16:03:35 +0100
Subject: [PATCH 143/174] :bookmark: set version to 2.1.0

---
 CMakeLists.txt                         |  2 +-
 ChangeLog.md                           | 37 ++++++++++++++++++++++++++
 doc/Doxyfile                           |  2 +-
 doc/index.md                           |  2 +-
 src/json.hpp                           |  6 ++---
 src/json.hpp.re2c                      |  6 ++---
 test/src/fuzzer-driver_afl.cpp         |  2 +-
 test/src/fuzzer-parse_cbor.cpp         |  2 +-
 test/src/fuzzer-parse_json.cpp         |  2 +-
 test/src/fuzzer-parse_msgpack.cpp      |  2 +-
 test/src/unit-algorithms.cpp           |  2 +-
 test/src/unit-allocator.cpp            |  2 +-
 test/src/unit-capacity.cpp             |  2 +-
 test/src/unit-cbor.cpp                 |  2 +-
 test/src/unit-class_const_iterator.cpp |  2 +-
 test/src/unit-class_iterator.cpp       |  2 +-
 test/src/unit-class_lexer.cpp          |  2 +-
 test/src/unit-class_parser.cpp         |  2 +-
 test/src/unit-comparison.cpp           |  2 +-
 test/src/unit-concepts.cpp             |  2 +-
 test/src/unit-constructor1.cpp         |  2 +-
 test/src/unit-constructor2.cpp         |  2 +-
 test/src/unit-convenience.cpp          |  2 +-
 test/src/unit-conversions.cpp          |  2 +-
 test/src/unit-deserialization.cpp      |  2 +-
 test/src/unit-element_access1.cpp      |  2 +-
 test/src/unit-element_access2.cpp      |  2 +-
 test/src/unit-inspection.cpp           |  2 +-
 test/src/unit-iterator_wrapper.cpp     |  2 +-
 test/src/unit-iterators1.cpp           |  2 +-
 test/src/unit-iterators2.cpp           |  2 +-
 test/src/unit-json_patch.cpp           |  2 +-
 test/src/unit-json_pointer.cpp         |  2 +-
 test/src/unit-meta.cpp                 |  2 +-
 test/src/unit-modifiers.cpp            |  2 +-
 test/src/unit-msgpack.cpp              |  2 +-
 test/src/unit-noexcept.cpp             | 29 +++++++++++++++++++-
 test/src/unit-pointer_access.cpp       |  2 +-
 test/src/unit-readme.cpp               |  2 +-
 test/src/unit-reference_access.cpp     |  2 +-
 test/src/unit-regression.cpp           |  2 +-
 test/src/unit-serialization.cpp        |  2 +-
 test/src/unit-testsuites.cpp           |  2 +-
 test/src/unit-udt.cpp                  |  2 +-
 test/src/unit-unicode.cpp              |  2 +-
 test/src/unit.cpp                      |  2 +-
 46 files changed, 113 insertions(+), 49 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9f9931c4..f1ccf47e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.0)
 
 # define the project
-project(nlohmann_json VERSION 2.0.10 LANGUAGES CXX)
+project(nlohmann_json VERSION 2.1.0 LANGUAGES CXX)
 
 enable_testing()
 
diff --git a/ChangeLog.md b/ChangeLog.md
index ce82d14b..0e2f8dae 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,6 +1,43 @@
 # Change Log
 All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
 
+## [v2.1.0](https://github.com/nlohmann/json/releases/tag/v2.1.0) (2017-01-28)
+[Full Changelog](https://github.com/nlohmann/json/compare/v2.0.10...v2.1.0)
+
+- Parsing multiple JSON objects from a string or stream [\#438](https://github.com/nlohmann/json/issues/438)
+- Use-of-uninitialized-value \(OSS-Fuzz issue 477\) [\#437](https://github.com/nlohmann/json/issues/437)
+- add `reserve` function for array to reserve memory before adding json values into it [\#436](https://github.com/nlohmann/json/issues/436)
+- Typo in examples page [\#434](https://github.com/nlohmann/json/issues/434)
+- avoid malformed json [\#433](https://github.com/nlohmann/json/issues/433)
+- How to add json objects to a map? [\#432](https://github.com/nlohmann/json/issues/432)
+- create json instance from raw json \(unsigned char\*\) [\#431](https://github.com/nlohmann/json/issues/431)
+- Getting std::invalid\_argument: stream error when following example [\#429](https://github.com/nlohmann/json/issues/429)
+- Forward declare-only header? [\#427](https://github.com/nlohmann/json/issues/427)
+- Implicit conversion from array to object [\#425](https://github.com/nlohmann/json/issues/425)
+- Automatic ordered JSON [\#424](https://github.com/nlohmann/json/issues/424)
+- error C4996: 'strerror' when reading file [\#422](https://github.com/nlohmann/json/issues/422)
+- Get an error - JSON pointer must be empty or begin with '/' [\#421](https://github.com/nlohmann/json/issues/421)
+- size parameter for parse\(\) [\#419](https://github.com/nlohmann/json/issues/419)
+- json.hpp forcibly defines GCC\_VERSION [\#417](https://github.com/nlohmann/json/issues/417)
+- Use-of-uninitialized-value \(OSS-Fuzz issue 377\) [\#416](https://github.com/nlohmann/json/issues/416)
+- Single char converted to ASCII code instead of string [\#413](https://github.com/nlohmann/json/issues/413)
+- How to know if a string  was parsed as utf-8? [\#406](https://github.com/nlohmann/json/issues/406)
+- Overloaded += to add objects to an array makes no sense? [\#404](https://github.com/nlohmann/json/issues/404)
+- Finding a value in an array [\#399](https://github.com/nlohmann/json/issues/399)
+- add release information in static function [\#397](https://github.com/nlohmann/json/issues/397)
+- Optimize memory usage of json objects in combination with binary serialization [\#373](https://github.com/nlohmann/json/issues/373)
+- Conversion operators not considered [\#369](https://github.com/nlohmann/json/issues/369)
+- Append ".0" to serialized floating\_point values that are digits-only. [\#362](https://github.com/nlohmann/json/issues/362)
+- Add a customization point for user-defined types [\#328](https://github.com/nlohmann/json/issues/328)
+- Conformance report for reference [\#307](https://github.com/nlohmann/json/issues/307)
+- Document the best way to serialize/deserialize user defined types to json [\#298](https://github.com/nlohmann/json/issues/298)
+- Add StringView template typename to basic\_json [\#297](https://github.com/nlohmann/json/issues/297)
+- \[Improvement\] Add option to remove exceptions [\#296](https://github.com/nlohmann/json/issues/296)
+- Performance in miloyip/nativejson-benchmark [\#202](https://github.com/nlohmann/json/issues/202)
+
+- conversion from/to user-defined types [\#435](https://github.com/nlohmann/json/pull/435) ([nlohmann](https://github.com/nlohmann))
+- Fix documentation error [\#430](https://github.com/nlohmann/json/pull/430) ([vjon](https://github.com/vjon))
+
 ## [v2.0.10](https://github.com/nlohmann/json/releases/tag/v2.0.10) (2017-01-02)
 [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.9...v2.0.10)
 
diff --git a/doc/Doxyfile b/doc/Doxyfile
index 4d511af3..b4f57863 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -5,7 +5,7 @@
 #---------------------------------------------------------------------------
 DOXYFILE_ENCODING      = UTF-8
 PROJECT_NAME           = "JSON for Modern C++"
-PROJECT_NUMBER         = 2.0.10
+PROJECT_NUMBER         = 2.1.0
 PROJECT_BRIEF          = 
 PROJECT_LOGO           =
 OUTPUT_DIRECTORY       = .
diff --git a/doc/index.md b/doc/index.md
index f7ef3554..2f12767f 100644
--- a/doc/index.md
+++ b/doc/index.md
@@ -277,4 +277,4 @@ The container functions known from STL have been extended to support the differe
 @author [Niels Lohmann](http://nlohmann.me)
 @see https://github.com/nlohmann/json to download the source code
 
-@version 2.0.10
+@version 2.1.0
diff --git a/src/json.hpp b/src/json.hpp
index 6909553a..3b010cd1 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
@@ -1115,7 +1115,7 @@ class basic_json
         result["url"] = "https://github.com/nlohmann/json";
         result["version"] =
         {
-            {"string", "2.0.10"},
+            {"string", "2.1.0"},
             {"major", 2},
             {"minor", 0},
             {"patch", 10},
@@ -1726,7 +1726,7 @@ class basic_json
                 {
                     if (t == value_t::null)
                     {
-                        JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10")); // LCOV_EXCL_LINE
+                        JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.1.0")); // LCOV_EXCL_LINE
                     }
                     break;
                 }
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index b1df2bf7..4932bfcf 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
@@ -1115,7 +1115,7 @@ class basic_json
         result["url"] = "https://github.com/nlohmann/json";
         result["version"] =
         {
-            {"string", "2.0.10"},
+            {"string", "2.1.0"},
             {"major", 2},
             {"minor", 0},
             {"patch", 10},
@@ -1726,7 +1726,7 @@ class basic_json
                 {
                     if (t == value_t::null)
                     {
-                        JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10")); // LCOV_EXCL_LINE
+                        JSON_THROW(std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.1.0")); // LCOV_EXCL_LINE
                     }
                     break;
                 }
diff --git a/test/src/fuzzer-driver_afl.cpp b/test/src/fuzzer-driver_afl.cpp
index 0c173b45..b1699f36 100644
--- a/test/src/fuzzer-driver_afl.cpp
+++ b/test/src/fuzzer-driver_afl.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (fuzz test support)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 This file implements a driver for American Fuzzy Lop (afl-fuzz). It relies on
diff --git a/test/src/fuzzer-parse_cbor.cpp b/test/src/fuzzer-parse_cbor.cpp
index bba56747..1b6664f8 100644
--- a/test/src/fuzzer-parse_cbor.cpp
+++ b/test/src/fuzzer-parse_cbor.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (fuzz test support)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 This file implements a parser test suitable for fuzz testing. Given a byte
diff --git a/test/src/fuzzer-parse_json.cpp b/test/src/fuzzer-parse_json.cpp
index f61df56d..40ccf587 100644
--- a/test/src/fuzzer-parse_json.cpp
+++ b/test/src/fuzzer-parse_json.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (fuzz test support)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 This file implements a parser test suitable for fuzz testing. Given a byte
diff --git a/test/src/fuzzer-parse_msgpack.cpp b/test/src/fuzzer-parse_msgpack.cpp
index 0355db3b..381dc75f 100644
--- a/test/src/fuzzer-parse_msgpack.cpp
+++ b/test/src/fuzzer-parse_msgpack.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (fuzz test support)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 This file implements a parser test suitable for fuzz testing. Given a byte
diff --git a/test/src/unit-algorithms.cpp b/test/src/unit-algorithms.cpp
index 0905d05e..3a73c104 100644
--- a/test/src/unit-algorithms.cpp
+++ b/test/src/unit-algorithms.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-allocator.cpp b/test/src/unit-allocator.cpp
index 76f9a16b..ae45ac26 100644
--- a/test/src/unit-allocator.cpp
+++ b/test/src/unit-allocator.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-capacity.cpp b/test/src/unit-capacity.cpp
index d3ee33d2..44a35b90 100644
--- a/test/src/unit-capacity.cpp
+++ b/test/src/unit-capacity.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-cbor.cpp b/test/src/unit-cbor.cpp
index 43f9f433..539d408b 100644
--- a/test/src/unit-cbor.cpp
+++ b/test/src/unit-cbor.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-class_const_iterator.cpp b/test/src/unit-class_const_iterator.cpp
index dba96e1f..1a05becb 100644
--- a/test/src/unit-class_const_iterator.cpp
+++ b/test/src/unit-class_const_iterator.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-class_iterator.cpp b/test/src/unit-class_iterator.cpp
index 16833cd9..e3ef6a0e 100644
--- a/test/src/unit-class_iterator.cpp
+++ b/test/src/unit-class_iterator.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-class_lexer.cpp b/test/src/unit-class_lexer.cpp
index 71e75df4..ac43de8a 100644
--- a/test/src/unit-class_lexer.cpp
+++ b/test/src/unit-class_lexer.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-class_parser.cpp b/test/src/unit-class_parser.cpp
index 09515042..3dfad5bd 100644
--- a/test/src/unit-class_parser.cpp
+++ b/test/src/unit-class_parser.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-comparison.cpp b/test/src/unit-comparison.cpp
index 7f89729e..f1e1aeb3 100644
--- a/test/src/unit-comparison.cpp
+++ b/test/src/unit-comparison.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-concepts.cpp b/test/src/unit-concepts.cpp
index 1c04b62b..d65f7401 100644
--- a/test/src/unit-concepts.cpp
+++ b/test/src/unit-concepts.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-constructor1.cpp b/test/src/unit-constructor1.cpp
index d03a5f40..93546c5f 100644
--- a/test/src/unit-constructor1.cpp
+++ b/test/src/unit-constructor1.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-constructor2.cpp b/test/src/unit-constructor2.cpp
index ab1e43cc..95cb87da 100644
--- a/test/src/unit-constructor2.cpp
+++ b/test/src/unit-constructor2.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-convenience.cpp b/test/src/unit-convenience.cpp
index cd78f83a..a9355da0 100644
--- a/test/src/unit-convenience.cpp
+++ b/test/src/unit-convenience.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp
index 994f882d..fca807a0 100644
--- a/test/src/unit-conversions.cpp
+++ b/test/src/unit-conversions.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-deserialization.cpp b/test/src/unit-deserialization.cpp
index 21e3bb44..aaf4627b 100644
--- a/test/src/unit-deserialization.cpp
+++ b/test/src/unit-deserialization.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-element_access1.cpp b/test/src/unit-element_access1.cpp
index a596ac21..5f264ac7 100644
--- a/test/src/unit-element_access1.cpp
+++ b/test/src/unit-element_access1.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-element_access2.cpp b/test/src/unit-element_access2.cpp
index f12da1e4..353d66d9 100644
--- a/test/src/unit-element_access2.cpp
+++ b/test/src/unit-element_access2.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-inspection.cpp b/test/src/unit-inspection.cpp
index 9e114718..2e3d075d 100644
--- a/test/src/unit-inspection.cpp
+++ b/test/src/unit-inspection.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-iterator_wrapper.cpp b/test/src/unit-iterator_wrapper.cpp
index f4255f99..79def908 100644
--- a/test/src/unit-iterator_wrapper.cpp
+++ b/test/src/unit-iterator_wrapper.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-iterators1.cpp b/test/src/unit-iterators1.cpp
index a6fd2df9..78ea3db4 100644
--- a/test/src/unit-iterators1.cpp
+++ b/test/src/unit-iterators1.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-iterators2.cpp b/test/src/unit-iterators2.cpp
index 6f1b6251..ef806ad7 100644
--- a/test/src/unit-iterators2.cpp
+++ b/test/src/unit-iterators2.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-json_patch.cpp b/test/src/unit-json_patch.cpp
index b7987509..837691de 100644
--- a/test/src/unit-json_patch.cpp
+++ b/test/src/unit-json_patch.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-json_pointer.cpp b/test/src/unit-json_pointer.cpp
index 67257943..24aa4a7d 100644
--- a/test/src/unit-json_pointer.cpp
+++ b/test/src/unit-json_pointer.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-meta.cpp b/test/src/unit-meta.cpp
index 7040042e..28c1a9d8 100644
--- a/test/src/unit-meta.cpp
+++ b/test/src/unit-meta.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-modifiers.cpp b/test/src/unit-modifiers.cpp
index 3e8d9600..80b1a711 100644
--- a/test/src/unit-modifiers.cpp
+++ b/test/src/unit-modifiers.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-msgpack.cpp b/test/src/unit-msgpack.cpp
index 89fa450d..cad78ae8 100644
--- a/test/src/unit-msgpack.cpp
+++ b/test/src/unit-msgpack.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-noexcept.cpp b/test/src/unit-noexcept.cpp
index b939db4e..ddd8102d 100644
--- a/test/src/unit-noexcept.cpp
+++ b/test/src/unit-noexcept.cpp
@@ -1,5 +1,32 @@
-#include "catch.hpp"
+/*
+    __ _____ _____ _____
+ __|  |   __|     |   | |  JSON for Modern C++ (test suite)
+|  |  |__   |  |  | | | |  version 2.1.0
+|_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
+Licensed under the MIT License <http://opensource.org/licenses/MIT>.
+Copyright (c) 2013-2017 Niels Lohmann <http://nlohmann.me>.
+
+Permission is hereby  granted, free of charge, to any  person obtaining a copy
+of this software and associated  documentation files (the "Software"), to deal
+in the Software  without restriction, including without  limitation the rights
+to  use, copy,  modify, merge,  publish, distribute,  sublicense, and/or  sell
+copies  of  the Software,  and  to  permit persons  to  whom  the Software  is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE  IS PROVIDED "AS  IS", WITHOUT WARRANTY  OF ANY KIND,  EXPRESS OR
+IMPLIED,  INCLUDING BUT  NOT  LIMITED TO  THE  WARRANTIES OF  MERCHANTABILITY,
+FITNESS FOR  A PARTICULAR PURPOSE AND  NONINFRINGEMENT. IN NO EVENT  SHALL THE
+AUTHORS  OR COPYRIGHT  HOLDERS  BE  LIABLE FOR  ANY  CLAIM,  DAMAGES OR  OTHER
+LIABILITY, WHETHER IN AN ACTION OF  CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE  OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#include "catch.hpp"
 #include "json.hpp"
 
 using nlohmann::json;
diff --git a/test/src/unit-pointer_access.cpp b/test/src/unit-pointer_access.cpp
index 4771c508..5611a750 100644
--- a/test/src/unit-pointer_access.cpp
+++ b/test/src/unit-pointer_access.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-readme.cpp b/test/src/unit-readme.cpp
index 5c62e850..061aadb4 100644
--- a/test/src/unit-readme.cpp
+++ b/test/src/unit-readme.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-reference_access.cpp b/test/src/unit-reference_access.cpp
index 54db1a86..6281572a 100644
--- a/test/src/unit-reference_access.cpp
+++ b/test/src/unit-reference_access.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 6a5e0c64..17edbd5e 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-serialization.cpp b/test/src/unit-serialization.cpp
index 72d9ae6c..b8bb6455 100644
--- a/test/src/unit-serialization.cpp
+++ b/test/src/unit-serialization.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-testsuites.cpp b/test/src/unit-testsuites.cpp
index b939bb62..9a9de127 100644
--- a/test/src/unit-testsuites.cpp
+++ b/test/src/unit-testsuites.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 241336f3..347ea377 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.7
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit-unicode.cpp b/test/src/unit-unicode.cpp
index 0b1c0e5e..89e828f4 100644
--- a/test/src/unit-unicode.cpp
+++ b/test/src/unit-unicode.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.
diff --git a/test/src/unit.cpp b/test/src/unit.cpp
index 096a2973..c89a0e83 100644
--- a/test/src/unit.cpp
+++ b/test/src/unit.cpp
@@ -1,7 +1,7 @@
 /*
     __ _____ _____ _____
  __|  |   __|     |   | |  JSON for Modern C++ (test suite)
-|  |  |__   |  |  | | | |  version 2.0.10
+|  |  |__   |  |  | | | |  version 2.1.0
 |_____|_____|_____|_|___|  https://github.com/nlohmann/json
 
 Licensed under the MIT License <http://opensource.org/licenses/MIT>.

From cdde1a9436be11592e850a6eabc38bcbb3423146 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sat, 28 Jan 2017 16:46:03 +0100
Subject: [PATCH 144/174] :bookmark: set version to 2.1.0

---
 src/json.hpp      | 4 ++--
 src/json.hpp.re2c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 3b010cd1..da700f64 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -1117,8 +1117,8 @@ class basic_json
         {
             {"string", "2.1.0"},
             {"major", 2},
-            {"minor", 0},
-            {"patch", 10},
+            {"minor", 1},
+            {"patch", 0},
         };
 
 #ifdef _WIN32
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 4932bfcf..3f9c04f3 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -1117,8 +1117,8 @@ class basic_json
         {
             {"string", "2.1.0"},
             {"major", 2},
-            {"minor", 0},
-            {"patch", 10},
+            {"minor", 1},
+            {"patch", 0},
         };
 
 #ifdef _WIN32

From 38e4935db04b04b2eb0508bdebdf63a48ba279fb Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sat, 28 Jan 2017 17:12:29 +0100
Subject: [PATCH 145/174] :memo: added example and documentation for the meta
 function

---
 doc/examples/meta.cpp    |  9 +++++++++
 doc/examples/meta.link   |  1 +
 doc/examples/meta.output | 17 +++++++++++++++++
 src/json.hpp             | 22 +++++++++++++++++++++-
 src/json.hpp.re2c        | 22 +++++++++++++++++++++-
 5 files changed, 69 insertions(+), 2 deletions(-)
 create mode 100644 doc/examples/meta.cpp
 create mode 100644 doc/examples/meta.link
 create mode 100644 doc/examples/meta.output

diff --git a/doc/examples/meta.cpp b/doc/examples/meta.cpp
new file mode 100644
index 00000000..3a31ca24
--- /dev/null
+++ b/doc/examples/meta.cpp
@@ -0,0 +1,9 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // call meta()
+    std::cout << std::setw(4) << json::meta() << '\n';
+}
diff --git a/doc/examples/meta.link b/doc/examples/meta.link
new file mode 100644
index 00000000..6a5ad0c1
--- /dev/null
+++ b/doc/examples/meta.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/3hERJociqLo3vdod"><b>online</b></a>
\ No newline at end of file
diff --git a/doc/examples/meta.output b/doc/examples/meta.output
new file mode 100644
index 00000000..f361bb60
--- /dev/null
+++ b/doc/examples/meta.output
@@ -0,0 +1,17 @@
+{
+    "compiler": {
+        "c++": "201103",
+        "family": "clang",
+        "version": "8.0.0 (clang-800.0.42.1)"
+    },
+    "copyright": "(C) 2013-2017 Niels Lohmann",
+    "name": "JSON for Modern C++",
+    "platform": "apple",
+    "url": "https://github.com/nlohmann/json",
+    "version": {
+        "major": 2,
+        "minor": 1,
+        "patch": 0,
+        "string": "2.1.0"
+    }
+}
diff --git a/src/json.hpp b/src/json.hpp
index da700f64..5fdd83d6 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -1105,6 +1105,26 @@ class basic_json
 
     /*!
     @brief returns version information on the library
+
+    This function returns a JSON object with infiormation about the library,
+    including the version number and information on the platform and compiler.
+
+    @return JSON object holding version information
+    key         | description
+    ----------- | ---------------
+    `compiler`  | Information on the used compiler. It is an object with the following keys: `c++` (the used C++ standard), `family` (the compiler family; possible values are `clang`, `icc`, `gcc`, `ilecpp`, `msvc`, `pgcpp`, `sunpro`, and `unknown`), and `version` (the compiler version).
+    `copyright` | The copyright line for the library as string.
+    `name`      | The name of the library as string.
+    `platform`  | The used platform as string. Possible values are `win32`, `linux`, `apple`, `unix`, and `unknown`.
+    `url`       | The URL of the project as string.
+    `version`   | The version of the library. It is an object with the following keys: `major`, `minor`, and `patch` as defined by [Semantic Versioning](http://semver.org), and `string` (the version string).
+
+    @liveexample{The following code shows an example output of the `meta()`
+    function.,meta}
+
+    @complexity Constant.
+
+    @since 2.1.0
     */
     static basic_json meta()
     {
@@ -8059,7 +8079,7 @@ class basic_json
     @liveexample{The following code exemplifies `type_name()` for all JSON
     types.,type_name}
 
-    @since version 1.0.0
+    @since version 1.0.0, public since 2.1.0
     */
     std::string type_name() const
     {
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 3f9c04f3..068b8763 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -1105,6 +1105,26 @@ class basic_json
 
     /*!
     @brief returns version information on the library
+
+    This function returns a JSON object with infiormation about the library,
+    including the version number and information on the platform and compiler.
+
+    @return JSON object holding version information
+    key         | description
+    ----------- | ---------------
+    `compiler`  | Information on the used compiler. It is an object with the following keys: `c++` (the used C++ standard), `family` (the compiler family; possible values are `clang`, `icc`, `gcc`, `ilecpp`, `msvc`, `pgcpp`, `sunpro`, and `unknown`), and `version` (the compiler version).
+    `copyright` | The copyright line for the library as string.
+    `name`      | The name of the library as string.
+    `platform`  | The used platform as string. Possible values are `win32`, `linux`, `apple`, `unix`, and `unknown`.
+    `url`       | The URL of the project as string.
+    `version`   | The version of the library. It is an object with the following keys: `major`, `minor`, and `patch` as defined by [Semantic Versioning](http://semver.org), and `string` (the version string).
+
+    @liveexample{The following code shows an example output of the `meta()`
+    function.,meta}
+
+    @complexity Constant.
+
+    @since 2.1.0
     */
     static basic_json meta()
     {
@@ -8059,7 +8079,7 @@ class basic_json
     @liveexample{The following code exemplifies `type_name()` for all JSON
     types.,type_name}
 
-    @since version 1.0.0
+    @since version 1.0.0, public since 2.1.0
     */
     std::string type_name() const
     {

From 4b5c61075f788a5e5eff10a3b2bc5cf6b1e0f22e Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sat, 28 Jan 2017 18:17:57 +0100
Subject: [PATCH 146/174] :page_facing_up: changes to let Github detect the
 license

---
 LICENSE.MIT | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/LICENSE.MIT b/LICENSE.MIT
index c4ce40d1..00599afe 100644
--- a/LICENSE.MIT
+++ b/LICENSE.MIT
@@ -1,14 +1,13 @@
-JSON for Modern C++ is licensed under the MIT License 
-<http://opensource.org/licenses/MIT>:
+MIT License 
 
 Copyright (c) 2013-2017 Niels Lohmann
 
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
 
 The above copyright notice and this permission notice shall be included in all
 copies or substantial portions of the Software.

From eb08e8b09b6793cc2143a2f9d812b6ddf18d288e Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sat, 28 Jan 2017 18:20:12 +0100
Subject: [PATCH 147/174] :memo: updated documentation

---
 README.md                | 2 +-
 doc/examples/README.link | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 0f5fb760..1ee358e5 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
 [![Build status](https://doozer.io/badge/nlohmann/json/buildstatus/develop)](https://doozer.io/user/nlohmann/json)
 [![Coverage Status](https://img.shields.io/coveralls/nlohmann/json.svg)](https://coveralls.io/r/nlohmann/json)
 [![Coverity Scan Build Status](https://scan.coverity.com/projects/5550/badge.svg)](https://scan.coverity.com/projects/nlohmann-json)
-[![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/IoZNMHqubixQx2dN)
+[![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/4NEU6ZZMoM9lpIex)
 [![Documentation](https://img.shields.io/badge/docs-doxygen-blue.svg)](http://nlohmann.github.io/json)
 [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/nlohmann/json/master/LICENSE.MIT)
 [![Github Releases](https://img.shields.io/github/release/nlohmann/json.svg)](https://github.com/nlohmann/json/releases)
diff --git a/doc/examples/README.link b/doc/examples/README.link
index 58daac88..d0168aab 100644
--- a/doc/examples/README.link
+++ b/doc/examples/README.link
@@ -1 +1 @@
-<a target="_blank" href="http://melpon.org/wandbox/permlink/IoZNMHqubixQx2dN"><b>online</b></a>
\ No newline at end of file
+<a target="_blank" href="http://melpon.org/wandbox/permlink/4NEU6ZZMoM9lpIex"><b>online</b></a>
\ No newline at end of file

From 6746a5752477f61ce5a65ba632f2017485e8d7a7 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sat, 28 Jan 2017 18:41:30 +0100
Subject: [PATCH 148/174] :memo: updated slides

---
 doc/json.gif | Bin 1331326 -> 1457913 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/doc/json.gif b/doc/json.gif
index efd2ee634a0704653811c31714f7cc1757c02966..9d05cfd691010a4cb1d930995334f72411c62bb6 100644
GIT binary patch
delta 1357391
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%0DhL(*j9!}yY(f@KJlaB
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

delta 1231775
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%0D4k)npcY0m2QK7
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%0AGDr>kI8&uF<T;{<4QshvX9GP2W#
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%0ANbiY#zk#v*4ex)1?z1E
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
Wv*9$d;j*&fiuvlU_6Y<6EdLMDM0)Z7


From f2873e6d3a46847126c03ac754dd9993d32a98a5 Mon Sep 17 00:00:00 2001
From: Jared Grubb <jaredgrubb@gmail.com>
Date: Sun, 29 Jan 2017 02:46:58 +0000
Subject: [PATCH 149/174] README: adjust boost::optional example

The "from_json" example for boost::optional is not complete and should also handle the 'none' case.
---
 README.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 1ee358e5..6451e2c5 100644
--- a/README.md
+++ b/README.md
@@ -563,7 +563,9 @@ namespace nlohmann {
         }
 
         static void from_json(const json& j, boost::optional<T>& opt) {
-            if (!j.is_null()) {
+            if (j.is_null()) {
+                opt = boost::none;
+            } else {
                 opt = j.get<T>(); // same as above, but with 
                                   // adl_serializer<T>::from_json
             }

From 0164b10e102f2f8694d380554389a4a4a917f781 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sun, 29 Jan 2017 17:18:56 +0100
Subject: [PATCH 150/174] :white_check_mark: added missing tests found by
 mutate++

---
 test/src/unit-class_parser.cpp | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/test/src/unit-class_parser.cpp b/test/src/unit-class_parser.cpp
index 3dfad5bd..59ea3cef 100644
--- a/test/src/unit-class_parser.cpp
+++ b/test/src/unit-class_parser.cpp
@@ -596,6 +596,32 @@ TEST_CASE("parser class")
                           "missing or wrong low surrogate");
     }
 
+    SECTION("tests found by mutate++")
+    {
+        // test case to make sure no comma preceeds the first key
+        CHECK_THROWS_AS(json::parser("{,\"key\": false}").parse(), std::invalid_argument);
+        // test case to make sure an object is properly closed
+        CHECK_THROWS_AS(json::parser("[{\"key\": false true]").parse(), std::invalid_argument);
+
+        // test case to make sure the callback is properly evaluated after reading a key
+        {
+            json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)
+            {
+                if (event == json::parse_event_t::key)
+                {
+                    return false;
+                }
+                else
+                {
+                    return true;
+                }
+            };
+
+            json x = json::parse("{\"key\": false}", cb);
+            CHECK(x == json::object());
+        }
+    }
+
     SECTION("callback function")
     {
         auto s_object = R"(

From b210f2dbf41fc207a91e57359c8b2cffdba64ebf Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sun, 29 Jan 2017 21:40:37 +0100
Subject: [PATCH 151/174] :lipstick: minor refactoring

---
 src/json.hpp      | 6 ++----
 src/json.hpp.re2c | 6 ++----
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 5fdd83d6..d7af3a70 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -3036,10 +3036,8 @@ class basic_json
         {
             return m_value.boolean;
         }
-        else
-        {
-            JSON_THROW(std::domain_error("type must be boolean, but is " + type_name()));
-        }
+
+        JSON_THROW(std::domain_error("type must be boolean, but is " + type_name()));
     }
 
     /// get a pointer to the value (object)
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 068b8763..cc11457f 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -3036,10 +3036,8 @@ class basic_json
         {
             return m_value.boolean;
         }
-        else
-        {
-            JSON_THROW(std::domain_error("type must be boolean, but is " + type_name()));
-        }
+
+        JSON_THROW(std::domain_error("type must be boolean, but is " + type_name()));
     }
 
     /// get a pointer to the value (object)

From c75865d88c0176b85f3e8d073a784602323b2160 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Wed, 1 Feb 2017 15:13:21 +0100
Subject: [PATCH 152/174] :bug: fixed `-Weffc++` warnings

---
 src/json.hpp      | 10 ++++++----
 src/json.hpp.re2c | 10 ++++++----
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index d7af3a70..c77945a8 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -8532,10 +8532,11 @@ class basic_json
             return *this;
         }
 
-        primitive_iterator_t& operator++(int)
+        primitive_iterator_t operator++(int)
         {
+            auto result = *this;
             m_it++;
-            return *this;
+            return result;
         }
 
         primitive_iterator_t& operator--()
@@ -8544,10 +8545,11 @@ class basic_json
             return *this;
         }
 
-        primitive_iterator_t& operator--(int)
+        primitive_iterator_t operator--(int)
         {
+            auto result = *this;
             m_it--;
-            return *this;
+            return result;
         }
 
         primitive_iterator_t& operator+=(difference_type n)
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index cc11457f..109a4f26 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -8532,10 +8532,11 @@ class basic_json
             return *this;
         }
 
-        primitive_iterator_t& operator++(int)
+        primitive_iterator_t operator++(int)
         {
+            auto result = *this;
             m_it++;
-            return *this;
+            return result;
         }
 
         primitive_iterator_t& operator--()
@@ -8544,10 +8545,11 @@ class basic_json
             return *this;
         }
 
-        primitive_iterator_t& operator--(int)
+        primitive_iterator_t operator--(int)
         {
+            auto result = *this;
             m_it--;
-            return *this;
+            return result;
         }
 
         primitive_iterator_t& operator+=(difference_type n)

From bf8fdac99a3e327a2a054d1d9a7eb1827d2f5c0f Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Wed, 1 Feb 2017 16:41:05 +0100
Subject: [PATCH 153/174] :construction_worker: dropped Doozer.io support

---
 .doozer.json | 24 ------------------------
 README.md    |  1 -
 2 files changed, 25 deletions(-)
 delete mode 100644 .doozer.json

diff --git a/.doozer.json b/.doozer.json
deleted file mode 100644
index 7dbaa5d2..00000000
--- a/.doozer.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-  "targets": {
-    "xenial-i386": {
-      "buildenv": "xenial-i386",
-      "builddeps": ["build-essential", "cmake"],
-      "buildcmd": ["mkdir cm", "cd cm", "cmake ..", "cmake --build .", "ctest --output-on-failure"]
-    },
-    "xenial-amd64": {
-      "buildenv": "xenial-amd64",
-      "builddeps": ["build-essential", "cmake"],
-      "buildcmd": ["mkdir cm", "cd cm", "cmake ..", "cmake --build .", "ctest --output-on-failure"]
-    },
-    "fedora24-x86_64": {
-      "buildenv": "fedora24-x86_64",
-      "builddeps": ["cmake", "make", "clang"],
-      "buildcmd": ["mkdir cm", "cd cm", "CXX=clang++ cmake ..", "cmake --build .", "ctest --output-on-failure"]
-    },
-    "osx": {
-      "buildenv": "osx",
-      "builddeps": ["build-essential"],
-      "buildcmd": ["make check"]
-    }
-  }
-}
diff --git a/README.md b/README.md
index 6451e2c5..6ebd30e4 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,6 @@
 
 [![Build Status](https://travis-ci.org/nlohmann/json.svg?branch=master)](https://travis-ci.org/nlohmann/json)
 [![Build Status](https://ci.appveyor.com/api/projects/status/1acb366xfyg3qybk/branch/develop?svg=true)](https://ci.appveyor.com/project/nlohmann/json)
-[![Build status](https://doozer.io/badge/nlohmann/json/buildstatus/develop)](https://doozer.io/user/nlohmann/json)
 [![Coverage Status](https://img.shields.io/coveralls/nlohmann/json.svg)](https://coveralls.io/r/nlohmann/json)
 [![Coverity Scan Build Status](https://scan.coverity.com/projects/5550/badge.svg)](https://scan.coverity.com/projects/nlohmann-json)
 [![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/4NEU6ZZMoM9lpIex)

From 16af771277612ac56e03585b267555e4f31c7930 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Wed, 1 Feb 2017 17:34:39 +0100
Subject: [PATCH 154/174] :white_check_mark: added roundtrip test for the Big
 List of Naughty Strings

---
 README.md                    |  2 +-
 test/src/unit-testsuites.cpp | 45 +++++++++++++++++++++++++++++++++++-
 2 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 6ebd30e4..5cb91abb 100644
--- a/README.md
+++ b/README.md
@@ -839,7 +839,7 @@ $ make json_unit -Ctest
 $ ./test/json_unit "*""
 
 ===============================================================================
-All tests passed (11202052 assertions in 47 test cases)
+All tests passed (11202549 assertions in 47 test cases)
 ```
 
 Alternatively, you can use [CMake](https://cmake.org) and run
diff --git a/test/src/unit-testsuites.cpp b/test/src/unit-testsuites.cpp
index 9a9de127..62e7e37e 100644
--- a/test/src/unit-testsuites.cpp
+++ b/test/src/unit-testsuites.cpp
@@ -816,13 +816,56 @@ TEST_CASE("nst's JSONTestSuite")
     }
 }
 
+// from http://stackoverflow.com/a/25829178/266378
+std::string trim(const std::string& str)
+{
+    size_t first = str.find_first_not_of(' ');
+    if (std::string::npos == first)
+    {
+        return str;
+    }
+    size_t last = str.find_last_not_of(' ');
+    return str.substr(first, (last - first + 1));
+}
+
 TEST_CASE("Big List of Naughty Strings")
 {
     // test from https://github.com/minimaxir/big-list-of-naughty-strings
-    SECTION("blns.json")
+    SECTION("parsing blns.json")
     {
         std::ifstream f("test/data/big-list-of-naughty-strings/blns.json");
         json j;
         CHECK_NOTHROW(j << f);
     }
+
+    // check if parsed strings roundtrip
+    // https://www.reddit.com/r/cpp/comments/5qpbie/json_form_modern_c_version_210/dd12mpq/
+    SECTION("roundtripping")
+    {
+        std::ifstream f("test/data/big-list-of-naughty-strings/blns.json");
+
+        while (not f.eof())
+        {
+            // read line
+            std::string line;
+            getline(f, line);
+
+            // trim whitespace
+            line = trim(line);
+
+            // remove trailing comma
+            line = line.substr(0, line.find_last_of(","));
+
+            // discard lines without at least two characters (quotes)
+            if (line.size() < 2)
+            {
+                continue;
+            }
+
+            // check roundtrip
+            CAPTURE(line);
+            json j = json::parse(line);
+            CHECK(j.dump() == line);
+        }
+    }
 }

From 5976caf032726b59e92a482c25cb34cc5946c33b Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Fri, 3 Feb 2017 18:09:55 +0100
Subject: [PATCH 155/174] :zap: improved test compilation speed #445

---
 test/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/test/Makefile b/test/Makefile
index 0b235ba1..a8cbade8 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -71,9 +71,9 @@ json_unit: $(OBJECTS) ../src/json.hpp thirdparty/catch/catch.hpp
 # individual test cases
 ##############################################################################
 
-test-%: src/unit-%.cpp ../src/json.hpp thirdparty/catch/catch.hpp
+test-%: src/unit.o src/unit-%.o ../src/json.hpp thirdparty/catch/catch.hpp
 	@echo "[CXXLD] $@"
-	@$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -DCATCH_CONFIG_MAIN $< -o $@
+	@$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@
 
 TEST_PATTERN ?= "*"
 TEST_PREFIX = ""

From d6afaa8e168219d2809e8842314fe3dcd759318f Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Fri, 3 Feb 2017 18:15:37 +0100
Subject: [PATCH 156/174] :memo: fixing a documentation issue #442

---
 README.md | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 5cb91abb..43f428fc 100644
--- a/README.md
+++ b/README.md
@@ -166,8 +166,14 @@ auto j2 = R"(
     "pi": 3.141
   }
 )"_json;
+```
 
-// or explicitly
+Note that without appending the `_json` suffix, the passed string literal is not parsed, but just used as JSON string value. That is, `json j = "{ \"happy\": true, \"pi\": 3.141 }"` would just store the string `"{ "happy": true, "pi": 3.141 }"` rather than parsing the acutal object.
+
+The above example can also be expressed explicitly using `json::parse()`:
+
+```cpp
+// parse explicitly
 auto j3 = json::parse("{ \"happy\": true, \"pi\": 3.141 }");
 ```
 

From 77d6f7060208d6d3ca89d8a3850990f11ea719a0 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Fri, 3 Feb 2017 18:28:22 +0100
Subject: [PATCH 157/174] :memo: acknowledgments for #442 and #445

---
 README.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/README.md b/README.md
index 43f428fc..1933c12a 100644
--- a/README.md
+++ b/README.md
@@ -818,6 +818,9 @@ I deeply appreciate the help of the following people.
 - [Alexej Harm](https://github.com/qis) helped to get the user-defined types working with Visual Studio.
 - [Jared Grubb](https://github.com/jaredgrubb) supported the implementation of user-defined types.
 - [EnricoBilla](https://github.com/EnricoBilla) noted a typo in an example.
+- [Martin Hořeňovský](https://github.com/horenmar) found a way for a 2x speedup for the compilation time of the test suite.
+- [ukhegg](https://github.com/ukhegg) found proposed an improvement for the examples section.
+
 
 Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone.
 

From 1cfdc2a7537d18e21651f6b47d25e8668a4396ca Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sat, 4 Feb 2017 08:25:55 +0100
Subject: [PATCH 158/174] :bug: fixed test compilation

---
 test/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/test/Makefile b/test/Makefile
index a8cbade8..8f4e215f 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -71,9 +71,9 @@ json_unit: $(OBJECTS) ../src/json.hpp thirdparty/catch/catch.hpp
 # individual test cases
 ##############################################################################
 
-test-%: src/unit.o src/unit-%.o ../src/json.hpp thirdparty/catch/catch.hpp
+test-%: src/unit-%.o src/unit.o ../src/json.hpp thirdparty/catch/catch.hpp
 	@echo "[CXXLD] $@"
-	@$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@
+	@$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $< src/unit.o -o $@
 
 TEST_PATTERN ?= "*"
 TEST_PREFIX = ""

From 922fe693e1c73fb298b9e8dfb8aa2776c9a4e722 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sat, 4 Feb 2017 15:30:28 +0100
Subject: [PATCH 159/174] :arrow_up: updated Catch to v1.7.0

---
 test/src/unit-allocator.cpp     |    50 +-
 test/thirdparty/catch/catch.hpp | 21572 +++++++++++++++---------------
 2 files changed, 11021 insertions(+), 10601 deletions(-)

diff --git a/test/src/unit-allocator.cpp b/test/src/unit-allocator.cpp
index ae45ac26..9fc2681f 100644
--- a/test/src/unit-allocator.cpp
+++ b/test/src/unit-allocator.cpp
@@ -59,7 +59,7 @@ TEST_CASE("bad_alloc")
               bad_allocator>;
 
         // creating an object should throw
-        CHECK_THROWS_AS(bad_json j(bad_json::value_t::object), std::bad_alloc);
+        CHECK_THROWS_AS(bad_json(bad_json::value_t::object), std::bad_alloc);
     }
 }
 
@@ -141,39 +141,27 @@ TEST_CASE("controlled bad_alloc")
             {
                 next_construct_fails = false;
                 auto t = my_json::value_t::object;
-                auto clean_up = [](my_json::json_value & j)
-                {
-                    my_allocator_clean_up(j.object);
-                };
-                CHECK_NOTHROW(my_json::json_value j(t); clean_up(j));
+                CHECK_NOTHROW(my_allocator_clean_up(my_json::json_value(t).object));
                 next_construct_fails = true;
-                CHECK_THROWS_AS(my_json::json_value j(t), std::bad_alloc);
+                CHECK_THROWS_AS(my_json::json_value(t), std::bad_alloc);
                 next_construct_fails = false;
             }
             SECTION("array")
             {
                 next_construct_fails = false;
                 auto t = my_json::value_t::array;
-                auto clean_up = [](my_json::json_value & j)
-                {
-                    my_allocator_clean_up(j.array);
-                };
-                CHECK_NOTHROW(my_json::json_value j(t); clean_up(j));
+                CHECK_NOTHROW(my_allocator_clean_up(my_json::json_value(t).array));
                 next_construct_fails = true;
-                CHECK_THROWS_AS(my_json::json_value j(t), std::bad_alloc);
+                CHECK_THROWS_AS(my_json::json_value(t), std::bad_alloc);
                 next_construct_fails = false;
             }
             SECTION("string")
             {
                 next_construct_fails = false;
                 auto t = my_json::value_t::string;
-                auto clean_up = [](my_json::json_value & j)
-                {
-                    my_allocator_clean_up(j.string);
-                };
-                CHECK_NOTHROW(my_json::json_value j(t); clean_up(j));
+                CHECK_NOTHROW(my_allocator_clean_up(my_json::json_value(t).string));
                 next_construct_fails = true;
-                CHECK_THROWS_AS(my_json::json_value j(t), std::bad_alloc);
+                CHECK_THROWS_AS(my_json::json_value(t), std::bad_alloc);
                 next_construct_fails = false;
             }
         }
@@ -182,13 +170,9 @@ TEST_CASE("controlled bad_alloc")
         {
             next_construct_fails = false;
             my_json::string_t v("foo");
-            auto clean_up = [](my_json::json_value & j)
-            {
-                my_allocator_clean_up(j.string);
-            };
-            CHECK_NOTHROW(my_json::json_value j(v); clean_up(j));
+            CHECK_NOTHROW(my_allocator_clean_up(my_json::json_value(v).string));
             next_construct_fails = true;
-            CHECK_THROWS_AS(my_json::json_value j(v), std::bad_alloc);
+            CHECK_THROWS_AS(my_json::json_value(v), std::bad_alloc);
             next_construct_fails = false;
         }
 
@@ -222,9 +206,9 @@ TEST_CASE("controlled bad_alloc")
         {
             next_construct_fails = false;
             std::map<std::string, std::string> v {{"foo", "bar"}};
-            CHECK_NOTHROW(my_json j(v));
+            CHECK_NOTHROW(my_json(v));
             next_construct_fails = true;
-            CHECK_THROWS_AS(my_json j(v), std::bad_alloc);
+            CHECK_THROWS_AS(my_json(v), std::bad_alloc);
             next_construct_fails = false;
         }
 
@@ -232,18 +216,18 @@ TEST_CASE("controlled bad_alloc")
         {
             next_construct_fails = false;
             std::vector<std::string> v {"foo", "bar", "baz"};
-            CHECK_NOTHROW(my_json j(v));
+            CHECK_NOTHROW(my_json(v));
             next_construct_fails = true;
-            CHECK_THROWS_AS(my_json j(v), std::bad_alloc);
+            CHECK_THROWS_AS(my_json(v), std::bad_alloc);
             next_construct_fails = false;
         }
 
         SECTION("basic_json(const typename string_t::value_type*)")
         {
             next_construct_fails = false;
-            CHECK_NOTHROW(my_json v("foo"));
+            CHECK_NOTHROW(my_json("foo"));
             next_construct_fails = true;
-            CHECK_THROWS_AS(my_json v("foo"), std::bad_alloc);
+            CHECK_THROWS_AS(my_json("foo"), std::bad_alloc);
             next_construct_fails = false;
         }
 
@@ -251,9 +235,9 @@ TEST_CASE("controlled bad_alloc")
         {
             next_construct_fails = false;
             std::string s("foo");
-            CHECK_NOTHROW(my_json v(s));
+            CHECK_NOTHROW(my_json(s));
             next_construct_fails = true;
-            CHECK_THROWS_AS(my_json v(s), std::bad_alloc);
+            CHECK_THROWS_AS(my_json(s), std::bad_alloc);
             next_construct_fails = false;
         }
     }
diff --git a/test/thirdparty/catch/catch.hpp b/test/thirdparty/catch/catch.hpp
index 1d49e738..c1ef3ed6 100644
--- a/test/thirdparty/catch/catch.hpp
+++ b/test/thirdparty/catch/catch.hpp
@@ -1,10568 +1,11004 @@
-/*
- *  Catch v1.6.0
- *  Generated: 2017-01-11 16:38:09.405017
- *  ----------------------------------------------------------
- *  This file has been merged from multiple headers. Please don't edit it directly
- *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
- *
- *  Distributed under the Boost Software License, Version 1.0. (See accompanying
- *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- */
-#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
-#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
-
-#define TWOBLUECUBES_CATCH_HPP_INCLUDED
-
-#ifdef __clang__
-#    pragma clang system_header
-#elif defined __GNUC__
-#    pragma GCC system_header
-#endif
-
-// #included from: internal/catch_suppress_warnings.h
-
-#ifdef __clang__
-#   ifdef __ICC // icpc defines the __clang__ macro
-#       pragma warning(push)
-#       pragma warning(disable: 161 1682)
-#   else // __ICC
-#       pragma clang diagnostic ignored "-Wglobal-constructors"
-#       pragma clang diagnostic ignored "-Wvariadic-macros"
-#       pragma clang diagnostic ignored "-Wc99-extensions"
-#       pragma clang diagnostic ignored "-Wunused-variable"
-#       pragma clang diagnostic push
-#       pragma clang diagnostic ignored "-Wpadded"
-#       pragma clang diagnostic ignored "-Wc++98-compat"
-#       pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
-#       pragma clang diagnostic ignored "-Wswitch-enum"
-#       pragma clang diagnostic ignored "-Wcovered-switch-default"
-#    endif
-#elif defined __GNUC__
-#    pragma GCC diagnostic ignored "-Wvariadic-macros"
-#    pragma GCC diagnostic ignored "-Wunused-variable"
-#    pragma GCC diagnostic push
-#    pragma GCC diagnostic ignored "-Wpadded"
-#endif
-#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER)
-#  define CATCH_IMPL
-#endif
-
-#ifdef CATCH_IMPL
-#  ifndef CLARA_CONFIG_MAIN
-#    define CLARA_CONFIG_MAIN_NOT_DEFINED
-#    define CLARA_CONFIG_MAIN
-#  endif
-#endif
-
-// #included from: internal/catch_notimplemented_exception.h
-#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
-
-// #included from: catch_common.h
-#define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
-
-// #included from: catch_compiler_capabilities.h
-#define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
-
-// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
-// The following features are defined:
-//
-// CATCH_CONFIG_CPP11_NULLPTR : is nullptr supported?
-// CATCH_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
-// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
-// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported?
-// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported
-// CATCH_CONFIG_CPP11_LONG_LONG : is long long supported?
-// CATCH_CONFIG_CPP11_OVERRIDE : is override supported?
-// CATCH_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
-
-// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
-
-// CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported?
-// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported?
-// ****************
-// Note to maintainers: if new toggles are added please document them
-// in configuration.md, too
-// ****************
-
-// In general each macro has a _NO_<feature name> form
-// (e.g. CATCH_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
-// Many features, at point of detection, define an _INTERNAL_ macro, so they
-// can be combined, en-mass, with the _NO_ forms later.
-
-// All the C++11 features can be disabled with CATCH_CONFIG_NO_CPP11
-
-#ifdef __cplusplus
-
-#  if __cplusplus >= 201103L
-#    define CATCH_CPP11_OR_GREATER
-#  endif
-
-#  if __cplusplus >= 201402L
-#    define CATCH_CPP14_OR_GREATER
-#  endif
-
-#endif
-
-#ifdef __clang__
-
-#  if __has_feature(cxx_nullptr)
-#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
-#  endif
-
-#  if __has_feature(cxx_noexcept)
-#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#  endif
-
-#   if defined(CATCH_CPP11_OR_GREATER)
-#       define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS _Pragma( "clang diagnostic ignored \"-Wparentheses\"" )
-#   endif
-
-#endif // __clang__
-
-////////////////////////////////////////////////////////////////////////////////
-// Borland
-#ifdef __BORLANDC__
-
-#endif // __BORLANDC__
-
-////////////////////////////////////////////////////////////////////////////////
-// EDG
-#ifdef __EDG_VERSION__
-
-#endif // __EDG_VERSION__
-
-////////////////////////////////////////////////////////////////////////////////
-// Digital Mars
-#ifdef __DMC__
-
-#endif // __DMC__
-
-////////////////////////////////////////////////////////////////////////////////
-// GCC
-#ifdef __GNUC__
-
-#   if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
-#       define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
-#   endif
-
-#   if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) && defined(CATCH_CPP11_OR_GREATER)
-#       define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS _Pragma( "GCC diagnostic ignored \"-Wparentheses\"" )
-#   endif
-
-// - otherwise more recent versions define __cplusplus >= 201103L
-// and will get picked up below
-
-#endif // __GNUC__
-
-////////////////////////////////////////////////////////////////////////////////
-// Visual C++
-#ifdef _MSC_VER
-
-#if (_MSC_VER >= 1600)
-#   define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
-#   define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
-#endif
-
-#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
-#define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
-#endif
-
-#endif // _MSC_VER
-
-////////////////////////////////////////////////////////////////////////////////
-
-// Use variadic macros if the compiler supports them
-#if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \
-    ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \
-    ( defined __GNUC__ && __GNUC__ >= 3 ) || \
-    ( !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L )
-
-#define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
-
-#endif
-
-// Use __COUNTER__ if the compiler supports it
-#if ( defined _MSC_VER && _MSC_VER >= 1300 ) || \
-    ( defined __GNUC__  && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3 ) || \
-    ( defined __clang__ && __clang_major__ >= 3 )
-
-#define CATCH_INTERNAL_CONFIG_COUNTER
-
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// C++ language feature support
-
-// catch all support for C++11
-#if defined(CATCH_CPP11_OR_GREATER)
-
-#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR)
-#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
-#  endif
-
-#  ifndef CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#  endif
-
-#  ifndef CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#    define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#  endif
-
-#  ifndef CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
-#    define CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
-#  endif
-
-#  ifndef CATCH_INTERNAL_CONFIG_CPP11_TUPLE
-#    define CATCH_INTERNAL_CONFIG_CPP11_TUPLE
-#  endif
-
-#  ifndef CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
-#    define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
-#  endif
-
-#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG)
-#    define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG
-#  endif
-
-#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE)
-#    define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE
-#  endif
-#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
-#    define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
-#  endif
-# if !defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE)
-#   define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
-#  endif
-
-#endif // __cplusplus >= 201103L
-
-// Now set the actual defines based on the above + anything the user has configured
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NO_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_NULLPTR
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_NOEXCEPT
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_GENERATED_METHODS
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_NO_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_IS_ENUM
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_CPP11_NO_TUPLE) && !defined(CATCH_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_TUPLE
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS)
-#   define CATCH_CONFIG_VARIADIC_MACROS
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_LONG_LONG
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_OVERRIDE
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_UNIQUE_PTR
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER)
-#   define CATCH_CONFIG_COUNTER
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_SHUFFLE
-#endif
-
-#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS)
-#   define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
-#endif
-
-// noexcept support:
-#if defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_NOEXCEPT)
-#  define CATCH_NOEXCEPT noexcept
-#  define CATCH_NOEXCEPT_IS(x) noexcept(x)
-#else
-#  define CATCH_NOEXCEPT throw()
-#  define CATCH_NOEXCEPT_IS(x)
-#endif
-
-// nullptr support
-#ifdef CATCH_CONFIG_CPP11_NULLPTR
-#   define CATCH_NULL nullptr
-#else
-#   define CATCH_NULL NULL
-#endif
-
-// override support
-#ifdef CATCH_CONFIG_CPP11_OVERRIDE
-#   define CATCH_OVERRIDE override
-#else
-#   define CATCH_OVERRIDE
-#endif
-
-// unique_ptr support
-#ifdef CATCH_CONFIG_CPP11_UNIQUE_PTR
-#   define CATCH_AUTO_PTR( T ) std::unique_ptr<T>
-#else
-#   define CATCH_AUTO_PTR( T ) std::auto_ptr<T>
-#endif
-
-#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
-#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
-#ifdef CATCH_CONFIG_COUNTER
-#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )
-#else
-#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
-#endif
-
-#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr
-#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr )
-
-#include <sstream>
-#include <stdexcept>
-#include <algorithm>
-
-namespace Catch {
-
-    struct IConfig;
-
-    struct CaseSensitive { enum Choice {
-        Yes,
-        No
-    }; };
-
-    class NonCopyable {
-#ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        NonCopyable( NonCopyable const& )              = delete;
-        NonCopyable( NonCopyable && )                  = delete;
-        NonCopyable& operator = ( NonCopyable const& ) = delete;
-        NonCopyable& operator = ( NonCopyable && )     = delete;
-#else
-        NonCopyable( NonCopyable const& info );
-        NonCopyable& operator = ( NonCopyable const& );
-#endif
-
-    protected:
-        NonCopyable() {}
-        virtual ~NonCopyable();
-    };
-
-    class SafeBool {
-    public:
-        typedef void (SafeBool::*type)() const;
-
-        static type makeSafe( bool value ) {
-            return value ? &SafeBool::trueValue : 0;
-        }
-    private:
-        void trueValue() const {}
-    };
-
-    template<typename ContainerT>
-    inline void deleteAll( ContainerT& container ) {
-        typename ContainerT::const_iterator it = container.begin();
-        typename ContainerT::const_iterator itEnd = container.end();
-        for(; it != itEnd; ++it )
-            delete *it;
-    }
-    template<typename AssociativeContainerT>
-    inline void deleteAllValues( AssociativeContainerT& container ) {
-        typename AssociativeContainerT::const_iterator it = container.begin();
-        typename AssociativeContainerT::const_iterator itEnd = container.end();
-        for(; it != itEnd; ++it )
-            delete it->second;
-    }
-
-    bool startsWith( std::string const& s, std::string const& prefix );
-    bool endsWith( std::string const& s, std::string const& suffix );
-    bool contains( std::string const& s, std::string const& infix );
-    void toLowerInPlace( std::string& s );
-    std::string toLower( std::string const& s );
-    std::string trim( std::string const& str );
-    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis );
-
-    struct pluralise {
-        pluralise( std::size_t count, std::string const& label );
-
-        friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser );
-
-        std::size_t m_count;
-        std::string m_label;
-    };
-
-    struct SourceLineInfo {
-
-        SourceLineInfo();
-        SourceLineInfo( char const* _file, std::size_t _line );
-        SourceLineInfo( SourceLineInfo const& other );
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        SourceLineInfo( SourceLineInfo && )                  = default;
-        SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
-        SourceLineInfo& operator = ( SourceLineInfo && )     = default;
-#  endif
-        bool empty() const;
-        bool operator == ( SourceLineInfo const& other ) const;
-        bool operator < ( SourceLineInfo const& other ) const;
-
-        std::string file;
-        std::size_t line;
-    };
-
-    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info );
-
-    // This is just here to avoid compiler warnings with macro constants and boolean literals
-    inline bool isTrue( bool value ){ return value; }
-    inline bool alwaysTrue() { return true; }
-    inline bool alwaysFalse() { return false; }
-
-    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo );
-
-    void seedRng( IConfig const& config );
-    unsigned int rngSeed();
-
-    // Use this in variadic streaming macros to allow
-    //    >> +StreamEndStop
-    // as well as
-    //    >> stuff +StreamEndStop
-    struct StreamEndStop {
-        std::string operator+() {
-            return std::string();
-        }
-    };
-    template<typename T>
-    T const& operator + ( T const& value, StreamEndStop ) {
-        return value;
-    }
-}
-
-#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )
-#define CATCH_INTERNAL_ERROR( msg ) ::Catch::throwLogicError( msg, CATCH_INTERNAL_LINEINFO );
-
-#include <ostream>
-
-namespace Catch {
-
-    class NotImplementedException : public std::exception
-    {
-    public:
-        NotImplementedException( SourceLineInfo const& lineInfo );
-        NotImplementedException( NotImplementedException const& ) {}
-
-        virtual ~NotImplementedException() CATCH_NOEXCEPT {}
-
-        virtual const char* what() const CATCH_NOEXCEPT;
-
-    private:
-        std::string m_what;
-        SourceLineInfo m_lineInfo;
-    };
-
-} // end namespace Catch
-
-///////////////////////////////////////////////////////////////////////////////
-#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO )
-
-// #included from: internal/catch_context.h
-#define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
-
-// #included from: catch_interfaces_generators.h
-#define TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    struct IGeneratorInfo {
-        virtual ~IGeneratorInfo();
-        virtual bool moveNext() = 0;
-        virtual std::size_t getCurrentIndex() const = 0;
-    };
-
-    struct IGeneratorsForTest {
-        virtual ~IGeneratorsForTest();
-
-        virtual IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) = 0;
-        virtual bool moveNext() = 0;
-    };
-
-    IGeneratorsForTest* createGeneratorsForTest();
-
-} // end namespace Catch
-
-// #included from: catch_ptr.hpp
-#define TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-namespace Catch {
-
-    // An intrusive reference counting smart pointer.
-    // T must implement addRef() and release() methods
-    // typically implementing the IShared interface
-    template<typename T>
-    class Ptr {
-    public:
-        Ptr() : m_p( CATCH_NULL ){}
-        Ptr( T* p ) : m_p( p ){
-            if( m_p )
-                m_p->addRef();
-        }
-        Ptr( Ptr const& other ) : m_p( other.m_p ){
-            if( m_p )
-                m_p->addRef();
-        }
-        ~Ptr(){
-            if( m_p )
-                m_p->release();
-        }
-        void reset() {
-            if( m_p )
-                m_p->release();
-            m_p = CATCH_NULL;
-        }
-        Ptr& operator = ( T* p ){
-            Ptr temp( p );
-            swap( temp );
-            return *this;
-        }
-        Ptr& operator = ( Ptr const& other ){
-            Ptr temp( other );
-            swap( temp );
-            return *this;
-        }
-        void swap( Ptr& other ) { std::swap( m_p, other.m_p ); }
-        T* get() const{ return m_p; }
-        T& operator*() const { return *m_p; }
-        T* operator->() const { return m_p; }
-        bool operator !() const { return m_p == CATCH_NULL; }
-        operator SafeBool::type() const { return SafeBool::makeSafe( m_p != CATCH_NULL ); }
-
-    private:
-        T* m_p;
-    };
-
-    struct IShared : NonCopyable {
-        virtual ~IShared();
-        virtual void addRef() const = 0;
-        virtual void release() const = 0;
-    };
-
-    template<typename T = IShared>
-    struct SharedImpl : T {
-
-        SharedImpl() : m_rc( 0 ){}
-
-        virtual void addRef() const {
-            ++m_rc;
-        }
-        virtual void release() const {
-            if( --m_rc == 0 )
-                delete this;
-        }
-
-        mutable unsigned int m_rc;
-    };
-
-} // end namespace Catch
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-#include <memory>
-#include <vector>
-#include <stdlib.h>
-
-namespace Catch {
-
-    class TestCase;
-    class Stream;
-    struct IResultCapture;
-    struct IRunner;
-    struct IGeneratorsForTest;
-    struct IConfig;
-
-    struct IContext
-    {
-        virtual ~IContext();
-
-        virtual IResultCapture* getResultCapture() = 0;
-        virtual IRunner* getRunner() = 0;
-        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) = 0;
-        virtual bool advanceGeneratorsForCurrentTest() = 0;
-        virtual Ptr<IConfig const> getConfig() const = 0;
-    };
-
-    struct IMutableContext : IContext
-    {
-        virtual ~IMutableContext();
-        virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
-        virtual void setRunner( IRunner* runner ) = 0;
-        virtual void setConfig( Ptr<IConfig const> const& config ) = 0;
-    };
-
-    IContext& getCurrentContext();
-    IMutableContext& getCurrentMutableContext();
-    void cleanUpContext();
-    Stream createStream( std::string const& streamName );
-
-}
-
-// #included from: internal/catch_test_registry.hpp
-#define TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED
-
-// #included from: catch_interfaces_testcase.h
-#define TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED
-
-#include <vector>
-
-namespace Catch {
-
-    class TestSpec;
-
-    struct ITestCase : IShared {
-        virtual void invoke () const = 0;
-    protected:
-        virtual ~ITestCase();
-    };
-
-    class TestCase;
-    struct IConfig;
-
-    struct ITestCaseRegistry {
-        virtual ~ITestCaseRegistry();
-        virtual std::vector<TestCase> const& getAllTests() const = 0;
-        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const = 0;
-    };
-
-    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config );
-    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config );
-    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config );
-
-}
-
-namespace Catch {
-
-template<typename C>
-class MethodTestCase : public SharedImpl<ITestCase> {
-
-public:
-    MethodTestCase( void (C::*method)() ) : m_method( method ) {}
-
-    virtual void invoke() const {
-        C obj;
-        (obj.*m_method)();
-    }
-
-private:
-    virtual ~MethodTestCase() {}
-
-    void (C::*m_method)();
-};
-
-typedef void(*TestFunction)();
-
-struct NameAndDesc {
-    NameAndDesc( const char* _name = "", const char* _description= "" )
-    : name( _name ), description( _description )
-    {}
-
-    const char* name;
-    const char* description;
-};
-
-void registerTestCase
-    (   ITestCase* testCase,
-        char const* className,
-        NameAndDesc const& nameAndDesc,
-        SourceLineInfo const& lineInfo );
-
-struct AutoReg {
-
-    AutoReg
-        (   TestFunction function,
-            SourceLineInfo const& lineInfo,
-            NameAndDesc const& nameAndDesc );
-
-    template<typename C>
-    AutoReg
-        (   void (C::*method)(),
-            char const* className,
-            NameAndDesc const& nameAndDesc,
-            SourceLineInfo const& lineInfo ) {
-
-        registerTestCase
-            (   new MethodTestCase<C>( method ),
-                className,
-                nameAndDesc,
-                lineInfo );
-    }
-
-    ~AutoReg();
-
-private:
-    AutoReg( AutoReg const& );
-    void operator= ( AutoReg const& );
-};
-
-void registerTestCaseFunction
-    (   TestFunction function,
-        SourceLineInfo const& lineInfo,
-        NameAndDesc const& nameAndDesc );
-
-} // end namespace Catch
-
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_TESTCASE2( TestName, ... ) \
-        static void TestName(); \
-        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); }\
-        static void TestName()
-    #define INTERNAL_CATCH_TESTCASE( ... ) \
-        INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ )
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \
-        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); }
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\
-        namespace{ \
-            struct TestName : ClassName{ \
-                void test(); \
-            }; \
-            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestName::test, #ClassName, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); \
-        } \
-        void TestName::test()
-    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \
-        INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ )
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \
-        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) );
-
-#else
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_TESTCASE2( TestName, Name, Desc ) \
-        static void TestName(); \
-        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); }\
-        static void TestName()
-    #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \
-        INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), Name, Desc )
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, Name, Desc ) \
-        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( Name, Desc ), CATCH_INTERNAL_LINEINFO ); }
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestCaseName, ClassName, TestName, Desc )\
-        namespace{ \
-            struct TestCaseName : ClassName{ \
-                void test(); \
-            }; \
-            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestCaseName::test, #ClassName, Catch::NameAndDesc( TestName, Desc ), CATCH_INTERNAL_LINEINFO ); \
-        } \
-        void TestCaseName::test()
-    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, TestName, Desc )\
-        INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, TestName, Desc )
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \
-        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) );
-#endif
-
-// #included from: internal/catch_capture.hpp
-#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
-
-// #included from: catch_result_builder.h
-#define TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED
-
-// #included from: catch_result_type.h
-#define TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED
-
-namespace Catch {
-
-    // ResultWas::OfType enum
-    struct ResultWas { enum OfType {
-        Unknown = -1,
-        Ok = 0,
-        Info = 1,
-        Warning = 2,
-
-        FailureBit = 0x10,
-
-        ExpressionFailed = FailureBit | 1,
-        ExplicitFailure = FailureBit | 2,
-
-        Exception = 0x100 | FailureBit,
-
-        ThrewException = Exception | 1,
-        DidntThrowException = Exception | 2,
-
-        FatalErrorCondition = 0x200 | FailureBit
-
-    }; };
-
-    inline bool isOk( ResultWas::OfType resultType ) {
-        return ( resultType & ResultWas::FailureBit ) == 0;
-    }
-    inline bool isJustInfo( int flags ) {
-        return flags == ResultWas::Info;
-    }
-
-    // ResultDisposition::Flags enum
-    struct ResultDisposition { enum Flags {
-        Normal = 0x01,
-
-        ContinueOnFailure = 0x02,   // Failures fail test, but execution continues
-        FalseTest = 0x04,           // Prefix expression with !
-        SuppressFail = 0x08         // Failures are reported but do not fail the test
-    }; };
-
-    inline ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) {
-        return static_cast<ResultDisposition::Flags>( static_cast<int>( lhs ) | static_cast<int>( rhs ) );
-    }
-
-    inline bool shouldContinueOnFailure( int flags )    { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; }
-    inline bool isFalseTest( int flags )                { return ( flags & ResultDisposition::FalseTest ) != 0; }
-    inline bool shouldSuppressFailure( int flags )      { return ( flags & ResultDisposition::SuppressFail ) != 0; }
-
-} // end namespace Catch
-
-// #included from: catch_assertionresult.h
-#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    struct AssertionInfo
-    {
-        AssertionInfo() {}
-        AssertionInfo(  std::string const& _macroName,
-                        SourceLineInfo const& _lineInfo,
-                        std::string const& _capturedExpression,
-                        ResultDisposition::Flags _resultDisposition );
-
-        std::string macroName;
-        SourceLineInfo lineInfo;
-        std::string capturedExpression;
-        ResultDisposition::Flags resultDisposition;
-    };
-
-    struct AssertionResultData
-    {
-        AssertionResultData() : resultType( ResultWas::Unknown ) {}
-
-        std::string reconstructedExpression;
-        std::string message;
-        ResultWas::OfType resultType;
-    };
-
-    class AssertionResult {
-    public:
-        AssertionResult();
-        AssertionResult( AssertionInfo const& info, AssertionResultData const& data );
-        ~AssertionResult();
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-         AssertionResult( AssertionResult const& )              = default;
-         AssertionResult( AssertionResult && )                  = default;
-         AssertionResult& operator = ( AssertionResult const& ) = default;
-         AssertionResult& operator = ( AssertionResult && )     = default;
-#  endif
-
-        bool isOk() const;
-        bool succeeded() const;
-        ResultWas::OfType getResultType() const;
-        bool hasExpression() const;
-        bool hasMessage() const;
-        std::string getExpression() const;
-        std::string getExpressionInMacro() const;
-        bool hasExpandedExpression() const;
-        std::string getExpandedExpression() const;
-        std::string getMessage() const;
-        SourceLineInfo getSourceInfo() const;
-        std::string getTestMacroName() const;
-
-    protected:
-        AssertionInfo m_info;
-        AssertionResultData m_resultData;
-    };
-
-} // end namespace Catch
-
-// #included from: catch_matchers.hpp
-#define TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED
-
-namespace Catch {
-namespace Matchers {
-    namespace Impl {
-
-    namespace Generic {
-        template<typename ExpressionT> class AllOf;
-        template<typename ExpressionT> class AnyOf;
-        template<typename ExpressionT> class Not;
-    }
-
-    template<typename ExpressionT>
-    struct Matcher : SharedImpl<IShared>
-    {
-        typedef ExpressionT ExpressionType;
-
-        virtual ~Matcher() {}
-        virtual Ptr<Matcher> clone() const = 0;
-        virtual bool match( ExpressionT const& expr ) const = 0;
-        virtual std::string toString() const = 0;
-
-        Generic::AllOf<ExpressionT> operator && ( Matcher<ExpressionT> const& other ) const;
-        Generic::AnyOf<ExpressionT> operator || ( Matcher<ExpressionT> const& other ) const;
-        Generic::Not<ExpressionT> operator ! () const;
-    };
-
-    template<typename DerivedT, typename ExpressionT>
-    struct MatcherImpl : Matcher<ExpressionT> {
-
-        virtual Ptr<Matcher<ExpressionT> > clone() const {
-            return Ptr<Matcher<ExpressionT> >( new DerivedT( static_cast<DerivedT const&>( *this ) ) );
-        }
-    };
-
-    namespace Generic {
-        template<typename ExpressionT>
-        class Not : public MatcherImpl<Not<ExpressionT>, ExpressionT> {
-        public:
-            explicit Not( Matcher<ExpressionT> const& matcher ) : m_matcher(matcher.clone()) {}
-            Not( Not const& other ) : m_matcher( other.m_matcher ) {}
-
-            virtual bool match( ExpressionT const& expr ) const CATCH_OVERRIDE {
-                return !m_matcher->match( expr );
-            }
-
-            virtual std::string toString() const CATCH_OVERRIDE {
-                return "not " + m_matcher->toString();
-            }
-        private:
-            Ptr< Matcher<ExpressionT> > m_matcher;
-        };
-
-        template<typename ExpressionT>
-        class AllOf : public MatcherImpl<AllOf<ExpressionT>, ExpressionT> {
-        public:
-
-            AllOf() {}
-            AllOf( AllOf const& other ) : m_matchers( other.m_matchers ) {}
-
-            AllOf& add( Matcher<ExpressionT> const& matcher ) {
-                m_matchers.push_back( matcher.clone() );
-                return *this;
-            }
-            virtual bool match( ExpressionT const& expr ) const
-            {
-                for( std::size_t i = 0; i < m_matchers.size(); ++i )
-                    if( !m_matchers[i]->match( expr ) )
-                        return false;
-                return true;
-            }
-            virtual std::string toString() const {
-                std::ostringstream oss;
-                oss << "( ";
-                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
-                    if( i != 0 )
-                        oss << " and ";
-                    oss << m_matchers[i]->toString();
-                }
-                oss << " )";
-                return oss.str();
-            }
-
-            AllOf operator && ( Matcher<ExpressionT> const& other ) const {
-                AllOf allOfExpr( *this );
-                allOfExpr.add( other );
-                return allOfExpr;
-            }
-
-        private:
-            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
-        };
-
-        template<typename ExpressionT>
-        class AnyOf : public MatcherImpl<AnyOf<ExpressionT>, ExpressionT> {
-        public:
-
-            AnyOf() {}
-            AnyOf( AnyOf const& other ) : m_matchers( other.m_matchers ) {}
-
-            AnyOf& add( Matcher<ExpressionT> const& matcher ) {
-                m_matchers.push_back( matcher.clone() );
-                return *this;
-            }
-            virtual bool match( ExpressionT const& expr ) const
-            {
-                for( std::size_t i = 0; i < m_matchers.size(); ++i )
-                    if( m_matchers[i]->match( expr ) )
-                        return true;
-                return false;
-            }
-            virtual std::string toString() const {
-                std::ostringstream oss;
-                oss << "( ";
-                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
-                    if( i != 0 )
-                        oss << " or ";
-                    oss << m_matchers[i]->toString();
-                }
-                oss << " )";
-                return oss.str();
-            }
-
-            AnyOf operator || ( Matcher<ExpressionT> const& other ) const {
-                AnyOf anyOfExpr( *this );
-                anyOfExpr.add( other );
-                return anyOfExpr;
-            }
-
-        private:
-            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
-        };
-
-    } // namespace Generic
-
-    template<typename ExpressionT>
-    Generic::AllOf<ExpressionT> Matcher<ExpressionT>::operator && ( Matcher<ExpressionT> const& other ) const {
-        Generic::AllOf<ExpressionT> allOfExpr;
-        allOfExpr.add( *this );
-        allOfExpr.add( other );
-        return allOfExpr;
-    }
-
-    template<typename ExpressionT>
-    Generic::AnyOf<ExpressionT> Matcher<ExpressionT>::operator || ( Matcher<ExpressionT> const& other ) const {
-        Generic::AnyOf<ExpressionT> anyOfExpr;
-        anyOfExpr.add( *this );
-        anyOfExpr.add( other );
-        return anyOfExpr;
-    }
-
-    template<typename ExpressionT>
-    Generic::Not<ExpressionT> Matcher<ExpressionT>::operator ! () const {
-        return Generic::Not<ExpressionT>( *this );
-    }
-
-    namespace StdString {
-
-        inline std::string makeString( std::string const& str ) { return str; }
-        inline std::string makeString( const char* str ) { return str ? std::string( str ) : std::string(); }
-
-        struct CasedString
-        {
-            CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity )
-            :   m_caseSensitivity( caseSensitivity ),
-                m_str( adjustString( str ) )
-            {}
-            std::string adjustString( std::string const& str ) const {
-                return m_caseSensitivity == CaseSensitive::No
-                    ? toLower( str )
-                    : str;
-
-            }
-            std::string toStringSuffix() const
-            {
-                return m_caseSensitivity == CaseSensitive::No
-                    ? " (case insensitive)"
-                    : "";
-            }
-            CaseSensitive::Choice m_caseSensitivity;
-            std::string m_str;
-        };
-
-        struct Equals : MatcherImpl<Equals, std::string> {
-            Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
-            :   m_data( str, caseSensitivity )
-            {}
-            Equals( Equals const& other ) : m_data( other.m_data ){}
-
-            virtual ~Equals();
-
-            virtual bool match( std::string const& expr ) const {
-                return m_data.m_str == m_data.adjustString( expr );;
-            }
-            virtual std::string toString() const {
-                return "equals: \"" + m_data.m_str + "\"" + m_data.toStringSuffix();
-            }
-
-            CasedString m_data;
-        };
-
-        struct Contains : MatcherImpl<Contains, std::string> {
-            Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
-            : m_data( substr, caseSensitivity ){}
-            Contains( Contains const& other ) : m_data( other.m_data ){}
-
-            virtual ~Contains();
-
-            virtual bool match( std::string const& expr ) const {
-                return m_data.adjustString( expr ).find( m_data.m_str ) != std::string::npos;
-            }
-            virtual std::string toString() const {
-                return "contains: \"" + m_data.m_str  + "\"" + m_data.toStringSuffix();
-            }
-
-            CasedString m_data;
-        };
-
-        struct StartsWith : MatcherImpl<StartsWith, std::string> {
-            StartsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
-            : m_data( substr, caseSensitivity ){}
-
-            StartsWith( StartsWith const& other ) : m_data( other.m_data ){}
-
-            virtual ~StartsWith();
-
-            virtual bool match( std::string const& expr ) const {
-                return startsWith( m_data.adjustString( expr ), m_data.m_str );
-            }
-            virtual std::string toString() const {
-                return "starts with: \"" + m_data.m_str + "\"" + m_data.toStringSuffix();
-            }
-
-            CasedString m_data;
-        };
-
-        struct EndsWith : MatcherImpl<EndsWith, std::string> {
-            EndsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
-            : m_data( substr, caseSensitivity ){}
-            EndsWith( EndsWith const& other ) : m_data( other.m_data ){}
-
-            virtual ~EndsWith();
-
-            virtual bool match( std::string const& expr ) const {
-                return endsWith( m_data.adjustString( expr ), m_data.m_str );
-            }
-            virtual std::string toString() const {
-                return "ends with: \"" + m_data.m_str + "\"" + m_data.toStringSuffix();
-            }
-
-            CasedString m_data;
-        };
-    } // namespace StdString
-    } // namespace Impl
-
-    // The following functions create the actual matcher objects.
-    // This allows the types to be inferred
-    template<typename ExpressionT>
-    inline Impl::Generic::Not<ExpressionT> Not( Impl::Matcher<ExpressionT> const& m ) {
-        return Impl::Generic::Not<ExpressionT>( m );
-    }
-
-    template<typename ExpressionT>
-    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
-                                                    Impl::Matcher<ExpressionT> const& m2 ) {
-        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 );
-    }
-    template<typename ExpressionT>
-    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
-                                                    Impl::Matcher<ExpressionT> const& m2,
-                                                    Impl::Matcher<ExpressionT> const& m3 ) {
-        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
-    }
-    template<typename ExpressionT>
-    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
-                                                    Impl::Matcher<ExpressionT> const& m2 ) {
-        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 );
-    }
-    template<typename ExpressionT>
-    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
-                                                    Impl::Matcher<ExpressionT> const& m2,
-                                                    Impl::Matcher<ExpressionT> const& m3 ) {
-        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
-    }
-
-    inline Impl::StdString::Equals      Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
-        return Impl::StdString::Equals( str, caseSensitivity );
-    }
-    inline Impl::StdString::Equals      Equals( const char* str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
-        return Impl::StdString::Equals( Impl::StdString::makeString( str ), caseSensitivity );
-    }
-    inline Impl::StdString::Contains    Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
-        return Impl::StdString::Contains( substr, caseSensitivity );
-    }
-    inline Impl::StdString::Contains    Contains( const char* substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
-        return Impl::StdString::Contains( Impl::StdString::makeString( substr ), caseSensitivity );
-    }
-    inline Impl::StdString::StartsWith  StartsWith( std::string const& substr ) {
-        return Impl::StdString::StartsWith( substr );
-    }
-    inline Impl::StdString::StartsWith  StartsWith( const char* substr ) {
-        return Impl::StdString::StartsWith( Impl::StdString::makeString( substr ) );
-    }
-    inline Impl::StdString::EndsWith    EndsWith( std::string const& substr ) {
-        return Impl::StdString::EndsWith( substr );
-    }
-    inline Impl::StdString::EndsWith    EndsWith( const char* substr ) {
-        return Impl::StdString::EndsWith( Impl::StdString::makeString( substr ) );
-    }
-
-} // namespace Matchers
-
-using namespace Matchers;
-
-} // namespace Catch
-
-namespace Catch {
-
-    struct TestFailureException{};
-
-    template<typename T> class ExpressionLhs;
-
-    struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison;
-
-    struct CopyableStream {
-        CopyableStream() {}
-        CopyableStream( CopyableStream const& other ) {
-            oss << other.oss.str();
-        }
-        CopyableStream& operator=( CopyableStream const& other ) {
-            oss.str("");
-            oss << other.oss.str();
-            return *this;
-        }
-        std::ostringstream oss;
-    };
-
-    class ResultBuilder {
-    public:
-        ResultBuilder(  char const* macroName,
-                        SourceLineInfo const& lineInfo,
-                        char const* capturedExpression,
-                        ResultDisposition::Flags resultDisposition,
-                        char const* secondArg = "" );
-
-        template<typename T>
-        ExpressionLhs<T const&> operator <= ( T const& operand );
-        ExpressionLhs<bool> operator <= ( bool value );
-
-        template<typename T>
-        ResultBuilder& operator << ( T const& value ) {
-            m_stream.oss << value;
-            return *this;
-        }
-
-        template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( RhsT const& );
-        template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( RhsT const& );
-
-        ResultBuilder& setResultType( ResultWas::OfType result );
-        ResultBuilder& setResultType( bool result );
-        ResultBuilder& setLhs( std::string const& lhs );
-        ResultBuilder& setRhs( std::string const& rhs );
-        ResultBuilder& setOp( std::string const& op );
-
-        void endExpression();
-
-        std::string reconstructExpression() const;
-        AssertionResult build() const;
-
-        void useActiveException( ResultDisposition::Flags resultDisposition = ResultDisposition::Normal );
-        void captureResult( ResultWas::OfType resultType );
-        void captureExpression();
-        void captureExpectedException( std::string const& expectedMessage );
-        void captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher );
-        void handleResult( AssertionResult const& result );
-        void react();
-        bool shouldDebugBreak() const;
-        bool allowThrows() const;
-
-    private:
-        AssertionInfo m_assertionInfo;
-        AssertionResultData m_data;
-        struct ExprComponents {
-            ExprComponents() : testFalse( false ) {}
-            bool testFalse;
-            std::string lhs, rhs, op;
-        } m_exprComponents;
-        CopyableStream m_stream;
-
-        bool m_shouldDebugBreak;
-        bool m_shouldThrow;
-    };
-
-} // namespace Catch
-
-// Include after due to circular dependency:
-// #included from: catch_expression_lhs.hpp
-#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
-
-// #included from: catch_evaluate.hpp
-#define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED
-
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable:4389) // '==' : signed/unsigned mismatch
-#endif
-
-#include <cstddef>
-
-namespace Catch {
-namespace Internal {
-
-    enum Operator {
-        IsEqualTo,
-        IsNotEqualTo,
-        IsLessThan,
-        IsGreaterThan,
-        IsLessThanOrEqualTo,
-        IsGreaterThanOrEqualTo
-    };
-
-    template<Operator Op> struct OperatorTraits             { static const char* getName(){ return "*error*"; } };
-    template<> struct OperatorTraits<IsEqualTo>             { static const char* getName(){ return "=="; } };
-    template<> struct OperatorTraits<IsNotEqualTo>          { static const char* getName(){ return "!="; } };
-    template<> struct OperatorTraits<IsLessThan>            { static const char* getName(){ return "<"; } };
-    template<> struct OperatorTraits<IsGreaterThan>         { static const char* getName(){ return ">"; } };
-    template<> struct OperatorTraits<IsLessThanOrEqualTo>   { static const char* getName(){ return "<="; } };
-    template<> struct OperatorTraits<IsGreaterThanOrEqualTo>{ static const char* getName(){ return ">="; } };
-
-    template<typename T>
-    inline T& opCast(T const& t) { return const_cast<T&>(t); }
-
-// nullptr_t support based on pull request #154 from Konstantin Baumann
-#ifdef CATCH_CONFIG_CPP11_NULLPTR
-    inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; }
-#endif // CATCH_CONFIG_CPP11_NULLPTR
-
-    // So the compare overloads can be operator agnostic we convey the operator as a template
-    // enum, which is used to specialise an Evaluator for doing the comparison.
-    template<typename T1, typename T2, Operator Op>
-    class Evaluator{};
-
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsEqualTo> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs) {
-            return bool( opCast( lhs ) ==  opCast( rhs ) );
-        }
-    };
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsNotEqualTo> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
-            return bool( opCast( lhs ) != opCast( rhs ) );
-        }
-    };
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsLessThan> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
-            return bool( opCast( lhs ) < opCast( rhs ) );
-        }
-    };
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsGreaterThan> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
-            return bool( opCast( lhs ) > opCast( rhs ) );
-        }
-    };
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsGreaterThanOrEqualTo> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
-            return bool( opCast( lhs ) >= opCast( rhs ) );
-        }
-    };
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsLessThanOrEqualTo> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
-            return bool( opCast( lhs ) <= opCast( rhs ) );
-        }
-    };
-
-    template<Operator Op, typename T1, typename T2>
-    bool applyEvaluator( T1 const& lhs, T2 const& rhs ) {
-        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
-    }
-
-    // This level of indirection allows us to specialise for integer types
-    // to avoid signed/ unsigned warnings
-
-    // "base" overload
-    template<Operator Op, typename T1, typename T2>
-    bool compare( T1 const& lhs, T2 const& rhs ) {
-        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
-    }
-
-    // unsigned X to int
-    template<Operator Op> bool compare( unsigned int lhs, int rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
-    }
-    template<Operator Op> bool compare( unsigned long lhs, int rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
-    }
-    template<Operator Op> bool compare( unsigned char lhs, int rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
-    }
-
-    // unsigned X to long
-    template<Operator Op> bool compare( unsigned int lhs, long rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
-    }
-    template<Operator Op> bool compare( unsigned long lhs, long rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
-    }
-    template<Operator Op> bool compare( unsigned char lhs, long rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
-    }
-
-    // int to unsigned X
-    template<Operator Op> bool compare( int lhs, unsigned int rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( int lhs, unsigned long rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( int lhs, unsigned char rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
-    }
-
-    // long to unsigned X
-    template<Operator Op> bool compare( long lhs, unsigned int rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( long lhs, unsigned long rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( long lhs, unsigned char rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-
-    // pointer to long (when comparing against NULL)
-    template<Operator Op, typename T> bool compare( long lhs, T* rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
-    }
-    template<Operator Op, typename T> bool compare( T* lhs, long rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
-    }
-
-    // pointer to int (when comparing against NULL)
-    template<Operator Op, typename T> bool compare( int lhs, T* rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
-    }
-    template<Operator Op, typename T> bool compare( T* lhs, int rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
-    }
-
-#ifdef CATCH_CONFIG_CPP11_LONG_LONG
-    // long long to unsigned X
-    template<Operator Op> bool compare( long long lhs, unsigned int rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( long long lhs, unsigned long rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( long long lhs, unsigned long long rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( long long lhs, unsigned char rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-
-    // unsigned long long to X
-    template<Operator Op> bool compare( unsigned long long lhs, int rhs ) {
-        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( unsigned long long lhs, long rhs ) {
-        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( unsigned long long lhs, long long rhs ) {
-        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( unsigned long long lhs, char rhs ) {
-        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
-    }
-
-    // pointer to long long (when comparing against NULL)
-    template<Operator Op, typename T> bool compare( long long lhs, T* rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
-    }
-    template<Operator Op, typename T> bool compare( T* lhs, long long rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
-    }
-#endif // CATCH_CONFIG_CPP11_LONG_LONG
-
-#ifdef CATCH_CONFIG_CPP11_NULLPTR
-    // pointer to nullptr_t (when comparing against nullptr)
-    template<Operator Op, typename T> bool compare( std::nullptr_t, T* rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( nullptr, rhs );
-    }
-    template<Operator Op, typename T> bool compare( T* lhs, std::nullptr_t ) {
-        return Evaluator<T*, T*, Op>::evaluate( lhs, nullptr );
-    }
-#endif // CATCH_CONFIG_CPP11_NULLPTR
-
-} // end of namespace Internal
-} // end of namespace Catch
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-// #included from: catch_tostring.h
-#define TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED
-
-#include <sstream>
-#include <iomanip>
-#include <limits>
-#include <vector>
-#include <cstddef>
-
-#ifdef __OBJC__
-// #included from: catch_objc_arc.hpp
-#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
-
-#import <Foundation/Foundation.h>
-
-#ifdef __has_feature
-#define CATCH_ARC_ENABLED __has_feature(objc_arc)
-#else
-#define CATCH_ARC_ENABLED 0
-#endif
-
-void arcSafeRelease( NSObject* obj );
-id performOptionalSelector( id obj, SEL sel );
-
-#if !CATCH_ARC_ENABLED
-inline void arcSafeRelease( NSObject* obj ) {
-    [obj release];
-}
-inline id performOptionalSelector( id obj, SEL sel ) {
-    if( [obj respondsToSelector: sel] )
-        return [obj performSelector: sel];
-    return nil;
-}
-#define CATCH_UNSAFE_UNRETAINED
-#define CATCH_ARC_STRONG
-#else
-inline void arcSafeRelease( NSObject* ){}
-inline id performOptionalSelector( id obj, SEL sel ) {
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
-#endif
-    if( [obj respondsToSelector: sel] )
-        return [obj performSelector: sel];
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-    return nil;
-}
-#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
-#define CATCH_ARC_STRONG __strong
-#endif
-
-#endif
-
-#ifdef CATCH_CONFIG_CPP11_TUPLE
-#include <tuple>
-#endif
-
-#ifdef CATCH_CONFIG_CPP11_IS_ENUM
-#include <type_traits>
-#endif
-
-namespace Catch {
-
-// Why we're here.
-template<typename T>
-std::string toString( T const& value );
-
-// Built in overloads
-
-std::string toString( std::string const& value );
-std::string toString( std::wstring const& value );
-std::string toString( const char* const value );
-std::string toString( char* const value );
-std::string toString( const wchar_t* const value );
-std::string toString( wchar_t* const value );
-std::string toString( int value );
-std::string toString( unsigned long value );
-std::string toString( unsigned int value );
-std::string toString( const double value );
-std::string toString( const float value );
-std::string toString( bool value );
-std::string toString( char value );
-std::string toString( signed char value );
-std::string toString( unsigned char value );
-
-#ifdef CATCH_CONFIG_CPP11_LONG_LONG
-std::string toString( long long value );
-std::string toString( unsigned long long value );
-#endif
-
-#ifdef CATCH_CONFIG_CPP11_NULLPTR
-std::string toString( std::nullptr_t );
-#endif
-
-#ifdef __OBJC__
-    std::string toString( NSString const * const& nsstring );
-    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring );
-    std::string toString( NSObject* const& nsObject );
-#endif
-
-namespace Detail {
-
-    extern const std::string unprintableString;
-
-    struct BorgType {
-        template<typename T> BorgType( T const& );
-    };
-
-    struct TrueType { char sizer[1]; };
-    struct FalseType { char sizer[2]; };
-
-    TrueType& testStreamable( std::ostream& );
-    FalseType testStreamable( FalseType );
-
-    FalseType operator<<( std::ostream const&, BorgType const& );
-
-    template<typename T>
-    struct IsStreamInsertable {
-        static std::ostream &s;
-        static T  const&t;
-        enum { value = sizeof( testStreamable(s << t) ) == sizeof( TrueType ) };
-    };
-
-#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
-    template<typename T,
-             bool IsEnum = std::is_enum<T>::value
-             >
-    struct EnumStringMaker
-    {
-        static std::string convert( T const& ) { return unprintableString; }
-    };
-
-    template<typename T>
-    struct EnumStringMaker<T,true>
-    {
-        static std::string convert( T const& v )
-        {
-            return ::Catch::toString(
-                static_cast<typename std::underlying_type<T>::type>(v)
-                );
-        }
-    };
-#endif
-    template<bool C>
-    struct StringMakerBase {
-#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
-        template<typename T>
-        static std::string convert( T const& v )
-        {
-            return EnumStringMaker<T>::convert( v );
-        }
-#else
-        template<typename T>
-        static std::string convert( T const& ) { return unprintableString; }
-#endif
-    };
-
-    template<>
-    struct StringMakerBase<true> {
-        template<typename T>
-        static std::string convert( T const& _value ) {
-            std::ostringstream oss;
-            oss << _value;
-            return oss.str();
-        }
-    };
-
-    std::string rawMemoryToString( const void *object, std::size_t size );
-
-    template<typename T>
-    inline std::string rawMemoryToString( const T& object ) {
-      return rawMemoryToString( &object, sizeof(object) );
-    }
-
-} // end namespace Detail
-
-template<typename T>
-struct StringMaker :
-    Detail::StringMakerBase<Detail::IsStreamInsertable<T>::value> {};
-
-template<typename T>
-struct StringMaker<T*> {
-    template<typename U>
-    static std::string convert( U* p ) {
-        if( !p )
-            return "NULL";
-        else
-            return Detail::rawMemoryToString( p );
-    }
-};
-
-template<typename R, typename C>
-struct StringMaker<R C::*> {
-    static std::string convert( R C::* p ) {
-        if( !p )
-            return "NULL";
-        else
-            return Detail::rawMemoryToString( p );
-    }
-};
-
-namespace Detail {
-    template<typename InputIterator>
-    std::string rangeToString( InputIterator first, InputIterator last );
-}
-
-//template<typename T, typename Allocator>
-//struct StringMaker<std::vector<T, Allocator> > {
-//    static std::string convert( std::vector<T,Allocator> const& v ) {
-//        return Detail::rangeToString( v.begin(), v.end() );
-//    }
-//};
-
-template<typename T, typename Allocator>
-std::string toString( std::vector<T,Allocator> const& v ) {
-    return Detail::rangeToString( v.begin(), v.end() );
-}
-
-#ifdef CATCH_CONFIG_CPP11_TUPLE
-
-// toString for tuples
-namespace TupleDetail {
-  template<
-      typename Tuple,
-      std::size_t N = 0,
-      bool = (N < std::tuple_size<Tuple>::value)
-      >
-  struct ElementPrinter {
-      static void print( const Tuple& tuple, std::ostream& os )
-      {
-          os << ( N ? ", " : " " )
-             << Catch::toString(std::get<N>(tuple));
-          ElementPrinter<Tuple,N+1>::print(tuple,os);
-      }
-  };
-
-  template<
-      typename Tuple,
-      std::size_t N
-      >
-  struct ElementPrinter<Tuple,N,false> {
-      static void print( const Tuple&, std::ostream& ) {}
-  };
-
-}
-
-template<typename ...Types>
-struct StringMaker<std::tuple<Types...>> {
-
-    static std::string convert( const std::tuple<Types...>& tuple )
-    {
-        std::ostringstream os;
-        os << '{';
-        TupleDetail::ElementPrinter<std::tuple<Types...>>::print( tuple, os );
-        os << " }";
-        return os.str();
-    }
-};
-#endif // CATCH_CONFIG_CPP11_TUPLE
-
-namespace Detail {
-    template<typename T>
-    std::string makeString( T const& value ) {
-        return StringMaker<T>::convert( value );
-    }
-} // end namespace Detail
-
-/// \brief converts any type to a string
-///
-/// The default template forwards on to ostringstream - except when an
-/// ostringstream overload does not exist - in which case it attempts to detect
-/// that and writes {?}.
-/// Overload (not specialise) this template for custom typs that you don't want
-/// to provide an ostream overload for.
-template<typename T>
-std::string toString( T const& value ) {
-    return StringMaker<T>::convert( value );
-}
-
-    namespace Detail {
-    template<typename InputIterator>
-    std::string rangeToString( InputIterator first, InputIterator last ) {
-        std::ostringstream oss;
-        oss << "{ ";
-        if( first != last ) {
-            oss << Catch::toString( *first );
-            for( ++first ; first != last ; ++first )
-                oss << ", " << Catch::toString( *first );
-        }
-        oss << " }";
-        return oss.str();
-    }
-}
-
-} // end namespace Catch
-
-namespace Catch {
-
-// Wraps the LHS of an expression and captures the operator and RHS (if any) -
-// wrapping them all in a ResultBuilder object
-template<typename T>
-class ExpressionLhs {
-    ExpressionLhs& operator = ( ExpressionLhs const& );
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-    ExpressionLhs& operator = ( ExpressionLhs && ) = delete;
-#  endif
-
-public:
-    ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs ) {}
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-    ExpressionLhs( ExpressionLhs const& ) = default;
-    ExpressionLhs( ExpressionLhs && )     = default;
-#  endif
-
-    template<typename RhsT>
-    ResultBuilder& operator == ( RhsT const& rhs ) {
-        return captureExpression<Internal::IsEqualTo>( rhs );
-    }
-
-    template<typename RhsT>
-    ResultBuilder& operator != ( RhsT const& rhs ) {
-        return captureExpression<Internal::IsNotEqualTo>( rhs );
-    }
-
-    template<typename RhsT>
-    ResultBuilder& operator < ( RhsT const& rhs ) {
-        return captureExpression<Internal::IsLessThan>( rhs );
-    }
-
-    template<typename RhsT>
-    ResultBuilder& operator > ( RhsT const& rhs ) {
-        return captureExpression<Internal::IsGreaterThan>( rhs );
-    }
-
-    template<typename RhsT>
-    ResultBuilder& operator <= ( RhsT const& rhs ) {
-        return captureExpression<Internal::IsLessThanOrEqualTo>( rhs );
-    }
-
-    template<typename RhsT>
-    ResultBuilder& operator >= ( RhsT const& rhs ) {
-        return captureExpression<Internal::IsGreaterThanOrEqualTo>( rhs );
-    }
-
-    ResultBuilder& operator == ( bool rhs ) {
-        return captureExpression<Internal::IsEqualTo>( rhs );
-    }
-
-    ResultBuilder& operator != ( bool rhs ) {
-        return captureExpression<Internal::IsNotEqualTo>( rhs );
-    }
-
-    void endExpression() {
-        bool value = m_lhs ? true : false;
-        m_rb
-            .setLhs( Catch::toString( value ) )
-            .setResultType( value )
-            .endExpression();
-    }
-
-    // Only simple binary expressions are allowed on the LHS.
-    // If more complex compositions are required then place the sub expression in parentheses
-    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( RhsT const& );
-    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( RhsT const& );
-    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( RhsT const& );
-    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( RhsT const& );
-    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( RhsT const& );
-    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( RhsT const& );
-
-private:
-    template<Internal::Operator Op, typename RhsT>
-    ResultBuilder& captureExpression( RhsT const& rhs ) {
-        return m_rb
-            .setResultType( Internal::compare<Op>( m_lhs, rhs ) )
-            .setLhs( Catch::toString( m_lhs ) )
-            .setRhs( Catch::toString( rhs ) )
-            .setOp( Internal::OperatorTraits<Op>::getName() );
-    }
-
-private:
-    ResultBuilder& m_rb;
-    T m_lhs;
-};
-
-} // end namespace Catch
-
-
-namespace Catch {
-
-    template<typename T>
-    inline ExpressionLhs<T const&> ResultBuilder::operator <= ( T const& operand ) {
-        return ExpressionLhs<T const&>( *this, operand );
-    }
-
-    inline ExpressionLhs<bool> ResultBuilder::operator <= ( bool value ) {
-        return ExpressionLhs<bool>( *this, value );
-    }
-
-} // namespace Catch
-
-// #included from: catch_message.h
-#define TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    struct MessageInfo {
-        MessageInfo(    std::string const& _macroName,
-                        SourceLineInfo const& _lineInfo,
-                        ResultWas::OfType _type );
-
-        std::string macroName;
-        SourceLineInfo lineInfo;
-        ResultWas::OfType type;
-        std::string message;
-        unsigned int sequence;
-
-        bool operator == ( MessageInfo const& other ) const {
-            return sequence == other.sequence;
-        }
-        bool operator < ( MessageInfo const& other ) const {
-            return sequence < other.sequence;
-        }
-    private:
-        static unsigned int globalCount;
-    };
-
-    struct MessageBuilder {
-        MessageBuilder( std::string const& macroName,
-                        SourceLineInfo const& lineInfo,
-                        ResultWas::OfType type )
-        : m_info( macroName, lineInfo, type )
-        {}
-
-        template<typename T>
-        MessageBuilder& operator << ( T const& value ) {
-            m_stream << value;
-            return *this;
-        }
-
-        MessageInfo m_info;
-        std::ostringstream m_stream;
-    };
-
-    class ScopedMessage {
-    public:
-        ScopedMessage( MessageBuilder const& builder );
-        ScopedMessage( ScopedMessage const& other );
-        ~ScopedMessage();
-
-        MessageInfo m_info;
-    };
-
-} // end namespace Catch
-
-// #included from: catch_interfaces_capture.h
-#define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    class TestCase;
-    class AssertionResult;
-    struct AssertionInfo;
-    struct SectionInfo;
-    struct SectionEndInfo;
-    struct MessageInfo;
-    class ScopedMessageBuilder;
-    struct Counts;
-
-    struct IResultCapture {
-
-        virtual ~IResultCapture();
-
-        virtual void assertionEnded( AssertionResult const& result ) = 0;
-        virtual bool sectionStarted(    SectionInfo const& sectionInfo,
-                                        Counts& assertions ) = 0;
-        virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0;
-        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0;
-        virtual void pushScopedMessage( MessageInfo const& message ) = 0;
-        virtual void popScopedMessage( MessageInfo const& message ) = 0;
-
-        virtual std::string getCurrentTestName() const = 0;
-        virtual const AssertionResult* getLastResult() const = 0;
-
-        virtual void handleFatalErrorCondition( std::string const& message ) = 0;
-    };
-
-    IResultCapture& getResultCapture();
-}
-
-// #included from: catch_debugger.h
-#define TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED
-
-// #included from: catch_platform.h
-#define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED
-
-#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
-#define CATCH_PLATFORM_MAC
-#elif  defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
-#define CATCH_PLATFORM_IPHONE
-#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
-#define CATCH_PLATFORM_WINDOWS
-#endif
-
-#include <string>
-
-namespace Catch{
-
-    bool isDebuggerActive();
-    void writeToDebugConsole( std::string const& text );
-}
-
-#ifdef CATCH_PLATFORM_MAC
-
-    // The following code snippet based on:
-    // http://cocoawithlove.com/2008/03/break-into-debugger.html
-    #ifdef DEBUG
-        #if defined(__ppc64__) || defined(__ppc__)
-            #define CATCH_BREAK_INTO_DEBUGGER() \
-                if( Catch::isDebuggerActive() ) { \
-                    __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \
-                    : : : "memory","r0","r3","r4" ); \
-                }
-        #else
-            #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) {__asm__("int $3\n" : : );}
-        #endif
-    #endif
-
-#elif defined(_MSC_VER)
-    #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { __debugbreak(); }
-#elif defined(__MINGW32__)
-    extern "C" __declspec(dllimport) void __stdcall DebugBreak();
-    #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { DebugBreak(); }
-#endif
-
-#ifndef CATCH_BREAK_INTO_DEBUGGER
-#define CATCH_BREAK_INTO_DEBUGGER() Catch::alwaysTrue();
-#endif
-
-// #included from: catch_interfaces_runner.h
-#define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED
-
-namespace Catch {
-    class TestCase;
-
-    struct IRunner {
-        virtual ~IRunner();
-        virtual bool aborting() const = 0;
-    };
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// In the event of a failure works out if the debugger needs to be invoked
-// and/or an exception thrown and takes appropriate action.
-// This needs to be done as a macro so the debugger will stop in the user
-// source code rather than in Catch library code
-#define INTERNAL_CATCH_REACT( resultBuilder ) \
-    if( resultBuilder.shouldDebugBreak() ) CATCH_BREAK_INTO_DEBUGGER(); \
-    resultBuilder.react();
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ) \
-    do { \
-        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
-        try { \
-            CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \
-            ( __catchResult <= expr ).endExpression(); \
-        } \
-        catch( ... ) { \
-            __catchResult.useActiveException( Catch::ResultDisposition::Normal ); \
-        } \
-        INTERNAL_CATCH_REACT( __catchResult ) \
-    } while( Catch::isTrue( false && !!(expr) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_IF( expr, resultDisposition, macroName ) \
-    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
-    if( Catch::getResultCapture().getLastResult()->succeeded() )
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_ELSE( expr, resultDisposition, macroName ) \
-    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
-    if( !Catch::getResultCapture().getLastResult()->succeeded() )
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_NO_THROW( expr, resultDisposition, macroName ) \
-    do { \
-        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
-        try { \
-            expr; \
-            __catchResult.captureResult( Catch::ResultWas::Ok ); \
-        } \
-        catch( ... ) { \
-            __catchResult.useActiveException( resultDisposition ); \
-        } \
-        INTERNAL_CATCH_REACT( __catchResult ) \
-    } while( Catch::alwaysFalse() )
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_THROWS( expr, resultDisposition, matcher, macroName ) \
-    do { \
-        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition, #matcher ); \
-        if( __catchResult.allowThrows() ) \
-            try { \
-                expr; \
-                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
-            } \
-            catch( ... ) { \
-                __catchResult.captureExpectedException( matcher ); \
-            } \
-        else \
-            __catchResult.captureResult( Catch::ResultWas::Ok ); \
-        INTERNAL_CATCH_REACT( __catchResult ) \
-    } while( Catch::alwaysFalse() )
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, resultDisposition, macroName ) \
-    do { \
-        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
-        if( __catchResult.allowThrows() ) \
-            try { \
-                expr; \
-                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
-            } \
-            catch( exceptionType ) { \
-                __catchResult.captureResult( Catch::ResultWas::Ok ); \
-            } \
-            catch( ... ) { \
-                __catchResult.useActiveException( resultDisposition ); \
-            } \
-        else \
-            __catchResult.captureResult( Catch::ResultWas::Ok ); \
-        INTERNAL_CATCH_REACT( __catchResult ) \
-    } while( Catch::alwaysFalse() )
-
-///////////////////////////////////////////////////////////////////////////////
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, ... ) \
-        do { \
-            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
-            __catchResult << __VA_ARGS__ + ::Catch::StreamEndStop(); \
-            __catchResult.captureResult( messageType ); \
-            INTERNAL_CATCH_REACT( __catchResult ) \
-        } while( Catch::alwaysFalse() )
-#else
-    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \
-        do { \
-            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
-            __catchResult << log + ::Catch::StreamEndStop(); \
-            __catchResult.captureResult( messageType ); \
-            INTERNAL_CATCH_REACT( __catchResult ) \
-        } while( Catch::alwaysFalse() )
-#endif
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_INFO( log, macroName ) \
-    Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage ) = Catch::MessageBuilder( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log;
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CHECK_THAT( arg, matcher, resultDisposition, macroName ) \
-    do { \
-        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \
-        try { \
-            std::string matcherAsString = (matcher).toString(); \
-            __catchResult \
-                .setLhs( Catch::toString( arg ) ) \
-                .setRhs( matcherAsString == Catch::Detail::unprintableString ? #matcher : matcherAsString ) \
-                .setOp( "matches" ) \
-                .setResultType( (matcher).match( arg ) ); \
-            __catchResult.captureExpression(); \
-        } catch( ... ) { \
-            __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \
-        } \
-        INTERNAL_CATCH_REACT( __catchResult ) \
-    } while( Catch::alwaysFalse() )
-
-// #included from: internal/catch_section.h
-#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED
-
-// #included from: catch_section_info.h
-#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED
-
-// #included from: catch_totals.hpp
-#define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED
-
-#include <cstddef>
-
-namespace Catch {
-
-    struct Counts {
-        Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {}
-
-        Counts operator - ( Counts const& other ) const {
-            Counts diff;
-            diff.passed = passed - other.passed;
-            diff.failed = failed - other.failed;
-            diff.failedButOk = failedButOk - other.failedButOk;
-            return diff;
-        }
-        Counts& operator += ( Counts const& other ) {
-            passed += other.passed;
-            failed += other.failed;
-            failedButOk += other.failedButOk;
-            return *this;
-        }
-
-        std::size_t total() const {
-            return passed + failed + failedButOk;
-        }
-        bool allPassed() const {
-            return failed == 0 && failedButOk == 0;
-        }
-        bool allOk() const {
-            return failed == 0;
-        }
-
-        std::size_t passed;
-        std::size_t failed;
-        std::size_t failedButOk;
-    };
-
-    struct Totals {
-
-        Totals operator - ( Totals const& other ) const {
-            Totals diff;
-            diff.assertions = assertions - other.assertions;
-            diff.testCases = testCases - other.testCases;
-            return diff;
-        }
-
-        Totals delta( Totals const& prevTotals ) const {
-            Totals diff = *this - prevTotals;
-            if( diff.assertions.failed > 0 )
-                ++diff.testCases.failed;
-            else if( diff.assertions.failedButOk > 0 )
-                ++diff.testCases.failedButOk;
-            else
-                ++diff.testCases.passed;
-            return diff;
-        }
-
-        Totals& operator += ( Totals const& other ) {
-            assertions += other.assertions;
-            testCases += other.testCases;
-            return *this;
-        }
-
-        Counts assertions;
-        Counts testCases;
-    };
-}
-
-namespace Catch {
-
-    struct SectionInfo {
-        SectionInfo
-            (   SourceLineInfo const& _lineInfo,
-                std::string const& _name,
-                std::string const& _description = std::string() );
-
-        std::string name;
-        std::string description;
-        SourceLineInfo lineInfo;
-    };
-
-    struct SectionEndInfo {
-        SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prevAssertions, double _durationInSeconds )
-        : sectionInfo( _sectionInfo ), prevAssertions( _prevAssertions ), durationInSeconds( _durationInSeconds )
-        {}
-
-        SectionInfo sectionInfo;
-        Counts prevAssertions;
-        double durationInSeconds;
-    };
-
-} // end namespace Catch
-
-// #included from: catch_timer.h
-#define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED
-
-#ifdef CATCH_PLATFORM_WINDOWS
-typedef unsigned long long uint64_t;
-#else
-#include <stdint.h>
-#endif
-
-namespace Catch {
-
-    class Timer {
-    public:
-        Timer() : m_ticks( 0 ) {}
-        void start();
-        unsigned int getElapsedMicroseconds() const;
-        unsigned int getElapsedMilliseconds() const;
-        double getElapsedSeconds() const;
-
-    private:
-        uint64_t m_ticks;
-    };
-
-} // namespace Catch
-
-#include <string>
-
-namespace Catch {
-
-    class Section : NonCopyable {
-    public:
-        Section( SectionInfo const& info );
-        ~Section();
-
-        // This indicates whether the section should be executed or not
-        operator bool() const;
-
-    private:
-        SectionInfo m_info;
-
-        std::string m_name;
-        Counts m_assertions;
-        bool m_sectionIncluded;
-        Timer m_timer;
-    };
-
-} // end namespace Catch
-
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-    #define INTERNAL_CATCH_SECTION( ... ) \
-        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
-#else
-    #define INTERNAL_CATCH_SECTION( name, desc ) \
-        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) )
-#endif
-
-// #included from: internal/catch_generators.hpp
-#define TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED
-
-#include <iterator>
-#include <vector>
-#include <string>
-#include <stdlib.h>
-
-namespace Catch {
-
-template<typename T>
-struct IGenerator {
-    virtual ~IGenerator() {}
-    virtual T getValue( std::size_t index ) const = 0;
-    virtual std::size_t size () const = 0;
-};
-
-template<typename T>
-class BetweenGenerator : public IGenerator<T> {
-public:
-    BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){}
-
-    virtual T getValue( std::size_t index ) const {
-        return m_from+static_cast<int>( index );
-    }
-
-    virtual std::size_t size() const {
-        return static_cast<std::size_t>( 1+m_to-m_from );
-    }
-
-private:
-
-    T m_from;
-    T m_to;
-};
-
-template<typename T>
-class ValuesGenerator : public IGenerator<T> {
-public:
-    ValuesGenerator(){}
-
-    void add( T value ) {
-        m_values.push_back( value );
-    }
-
-    virtual T getValue( std::size_t index ) const {
-        return m_values[index];
-    }
-
-    virtual std::size_t size() const {
-        return m_values.size();
-    }
-
-private:
-    std::vector<T> m_values;
-};
-
-template<typename T>
-class CompositeGenerator {
-public:
-    CompositeGenerator() : m_totalSize( 0 ) {}
-
-    // *** Move semantics, similar to auto_ptr ***
-    CompositeGenerator( CompositeGenerator& other )
-    :   m_fileInfo( other.m_fileInfo ),
-        m_totalSize( 0 )
-    {
-        move( other );
-    }
-
-    CompositeGenerator& setFileInfo( const char* fileInfo ) {
-        m_fileInfo = fileInfo;
-        return *this;
-    }
-
-    ~CompositeGenerator() {
-        deleteAll( m_composed );
-    }
-
-    operator T () const {
-        size_t overallIndex = getCurrentContext().getGeneratorIndex( m_fileInfo, m_totalSize );
-
-        typename std::vector<const IGenerator<T>*>::const_iterator it = m_composed.begin();
-        typename std::vector<const IGenerator<T>*>::const_iterator itEnd = m_composed.end();
-        for( size_t index = 0; it != itEnd; ++it )
-        {
-            const IGenerator<T>* generator = *it;
-            if( overallIndex >= index && overallIndex < index + generator->size() )
-            {
-                return generator->getValue( overallIndex-index );
-            }
-            index += generator->size();
-        }
-        CATCH_INTERNAL_ERROR( "Indexed past end of generated range" );
-        return T(); // Suppress spurious "not all control paths return a value" warning in Visual Studio - if you know how to fix this please do so
-    }
-
-    void add( const IGenerator<T>* generator ) {
-        m_totalSize += generator->size();
-        m_composed.push_back( generator );
-    }
-
-    CompositeGenerator& then( CompositeGenerator& other ) {
-        move( other );
-        return *this;
-    }
-
-    CompositeGenerator& then( T value ) {
-        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
-        valuesGen->add( value );
-        add( valuesGen );
-        return *this;
-    }
-
-private:
-
-    void move( CompositeGenerator& other ) {
-        std::copy( other.m_composed.begin(), other.m_composed.end(), std::back_inserter( m_composed ) );
-        m_totalSize += other.m_totalSize;
-        other.m_composed.clear();
-    }
-
-    std::vector<const IGenerator<T>*> m_composed;
-    std::string m_fileInfo;
-    size_t m_totalSize;
-};
-
-namespace Generators
-{
-    template<typename T>
-    CompositeGenerator<T> between( T from, T to ) {
-        CompositeGenerator<T> generators;
-        generators.add( new BetweenGenerator<T>( from, to ) );
-        return generators;
-    }
-
-    template<typename T>
-    CompositeGenerator<T> values( T val1, T val2 ) {
-        CompositeGenerator<T> generators;
-        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
-        valuesGen->add( val1 );
-        valuesGen->add( val2 );
-        generators.add( valuesGen );
-        return generators;
-    }
-
-    template<typename T>
-    CompositeGenerator<T> values( T val1, T val2, T val3 ){
-        CompositeGenerator<T> generators;
-        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
-        valuesGen->add( val1 );
-        valuesGen->add( val2 );
-        valuesGen->add( val3 );
-        generators.add( valuesGen );
-        return generators;
-    }
-
-    template<typename T>
-    CompositeGenerator<T> values( T val1, T val2, T val3, T val4 ) {
-        CompositeGenerator<T> generators;
-        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
-        valuesGen->add( val1 );
-        valuesGen->add( val2 );
-        valuesGen->add( val3 );
-        valuesGen->add( val4 );
-        generators.add( valuesGen );
-        return generators;
-    }
-
-} // end namespace Generators
-
-using namespace Generators;
-
-} // end namespace Catch
-
-#define INTERNAL_CATCH_LINESTR2( line ) #line
-#define INTERNAL_CATCH_LINESTR( line ) INTERNAL_CATCH_LINESTR2( line )
-
-#define INTERNAL_CATCH_GENERATE( expr ) expr.setFileInfo( __FILE__ "(" INTERNAL_CATCH_LINESTR( __LINE__ ) ")" )
-
-// #included from: internal/catch_interfaces_exception.h
-#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED
-
-#include <string>
-#include <vector>
-
-// #included from: catch_interfaces_registry_hub.h
-#define TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    class TestCase;
-    struct ITestCaseRegistry;
-    struct IExceptionTranslatorRegistry;
-    struct IExceptionTranslator;
-    struct IReporterRegistry;
-    struct IReporterFactory;
-
-    struct IRegistryHub {
-        virtual ~IRegistryHub();
-
-        virtual IReporterRegistry const& getReporterRegistry() const = 0;
-        virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0;
-        virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0;
-    };
-
-    struct IMutableRegistryHub {
-        virtual ~IMutableRegistryHub();
-        virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) = 0;
-        virtual void registerListener( Ptr<IReporterFactory> const& factory ) = 0;
-        virtual void registerTest( TestCase const& testInfo ) = 0;
-        virtual void registerTranslator( const IExceptionTranslator* translator ) = 0;
-    };
-
-    IRegistryHub& getRegistryHub();
-    IMutableRegistryHub& getMutableRegistryHub();
-    void cleanUp();
-    std::string translateActiveException();
-
-}
-
-namespace Catch {
-
-    typedef std::string(*exceptionTranslateFunction)();
-
-    struct IExceptionTranslator;
-    typedef std::vector<const IExceptionTranslator*> ExceptionTranslators;
-
-    struct IExceptionTranslator {
-        virtual ~IExceptionTranslator();
-        virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0;
-    };
-
-    struct IExceptionTranslatorRegistry {
-        virtual ~IExceptionTranslatorRegistry();
-
-        virtual std::string translateActiveException() const = 0;
-    };
-
-    class ExceptionTranslatorRegistrar {
-        template<typename T>
-        class ExceptionTranslator : public IExceptionTranslator {
-        public:
-
-            ExceptionTranslator( std::string(*translateFunction)( T& ) )
-            : m_translateFunction( translateFunction )
-            {}
-
-            virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const CATCH_OVERRIDE {
-                try {
-                    if( it == itEnd )
-                        throw;
-                    else
-                        return (*it)->translate( it+1, itEnd );
-                }
-                catch( T& ex ) {
-                    return m_translateFunction( ex );
-                }
-            }
-
-        protected:
-            std::string(*m_translateFunction)( T& );
-        };
-
-    public:
-        template<typename T>
-        ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
-            getMutableRegistryHub().registerTranslator
-                ( new ExceptionTranslator<T>( translateFunction ) );
-        }
-    };
-}
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2( translatorName, signature ) \
-    static std::string translatorName( signature ); \
-    namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &translatorName ); }\
-    static std::string translatorName( signature )
-
-#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )
-
-// #included from: internal/catch_approx.hpp
-#define TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED
-
-#include <cmath>
-#include <limits>
-
-namespace Catch {
-namespace Detail {
-
-    class Approx {
-    public:
-        explicit Approx ( double value )
-        :   m_epsilon( std::numeric_limits<float>::epsilon()*100 ),
-            m_scale( 1.0 ),
-            m_value( value )
-        {}
-
-        Approx( Approx const& other )
-        :   m_epsilon( other.m_epsilon ),
-            m_scale( other.m_scale ),
-            m_value( other.m_value )
-        {}
-
-        static Approx custom() {
-            return Approx( 0 );
-        }
-
-        Approx operator()( double value ) {
-            Approx approx( value );
-            approx.epsilon( m_epsilon );
-            approx.scale( m_scale );
-            return approx;
-        }
-
-        friend bool operator == ( double lhs, Approx const& rhs ) {
-            // Thanks to Richard Harris for his help refining this formula
-            return fabs( lhs - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( fabs(lhs), fabs(rhs.m_value) ) );
-        }
-
-        friend bool operator == ( Approx const& lhs, double rhs ) {
-            return operator==( rhs, lhs );
-        }
-
-        friend bool operator != ( double lhs, Approx const& rhs ) {
-            return !operator==( lhs, rhs );
-        }
-
-        friend bool operator != ( Approx const& lhs, double rhs ) {
-            return !operator==( rhs, lhs );
-        }
-
-        friend bool operator <= ( double lhs, Approx const& rhs )
-        {
-          return lhs < rhs.m_value || lhs == rhs;
-        }
-
-        friend bool operator <= ( Approx const& lhs, double rhs )
-        {
-          return lhs.m_value < rhs || lhs == rhs;
-        }
-
-        friend bool operator >= ( double lhs, Approx const& rhs )
-        {
-          return lhs > rhs.m_value || lhs == rhs;
-        }
-
-        friend bool operator >= ( Approx const& lhs, double rhs )
-        {
-          return lhs.m_value > rhs || lhs == rhs;
-        }
-
-        Approx& epsilon( double newEpsilon ) {
-            m_epsilon = newEpsilon;
-            return *this;
-        }
-
-        Approx& scale( double newScale ) {
-            m_scale = newScale;
-            return *this;
-        }
-
-        std::string toString() const {
-            std::ostringstream oss;
-            oss << "Approx( " << Catch::toString( m_value ) << " )";
-            return oss.str();
-        }
-
-    private:
-        double m_epsilon;
-        double m_scale;
-        double m_value;
-    };
-}
-
-template<>
-inline std::string toString<Detail::Approx>( Detail::Approx const& value ) {
-    return value.toString();
-}
-
-} // end namespace Catch
-
-// #included from: internal/catch_interfaces_tag_alias_registry.h
-#define TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED
-
-// #included from: catch_tag_alias.h
-#define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    struct TagAlias {
-        TagAlias( std::string _tag, SourceLineInfo _lineInfo ) : tag( _tag ), lineInfo( _lineInfo ) {}
-
-        std::string tag;
-        SourceLineInfo lineInfo;
-    };
-
-    struct RegistrarForTagAliases {
-        RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
-    };
-
-} // end namespace Catch
-
-#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); }
-// #included from: catch_option.hpp
-#define TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED
-
-namespace Catch {
-
-    // An optional type
-    template<typename T>
-    class Option {
-    public:
-        Option() : nullableValue( CATCH_NULL ) {}
-        Option( T const& _value )
-        : nullableValue( new( storage ) T( _value ) )
-        {}
-        Option( Option const& _other )
-        : nullableValue( _other ? new( storage ) T( *_other ) : CATCH_NULL )
-        {}
-
-        ~Option() {
-            reset();
-        }
-
-        Option& operator= ( Option const& _other ) {
-            if( &_other != this ) {
-                reset();
-                if( _other )
-                    nullableValue = new( storage ) T( *_other );
-            }
-            return *this;
-        }
-        Option& operator = ( T const& _value ) {
-            reset();
-            nullableValue = new( storage ) T( _value );
-            return *this;
-        }
-
-        void reset() {
-            if( nullableValue )
-                nullableValue->~T();
-            nullableValue = CATCH_NULL;
-        }
-
-        T& operator*() { return *nullableValue; }
-        T const& operator*() const { return *nullableValue; }
-        T* operator->() { return nullableValue; }
-        const T* operator->() const { return nullableValue; }
-
-        T valueOr( T const& defaultValue ) const {
-            return nullableValue ? *nullableValue : defaultValue;
-        }
-
-        bool some() const { return nullableValue != CATCH_NULL; }
-        bool none() const { return nullableValue == CATCH_NULL; }
-
-        bool operator !() const { return nullableValue == CATCH_NULL; }
-        operator SafeBool::type() const {
-            return SafeBool::makeSafe( some() );
-        }
-
-    private:
-        T* nullableValue;
-        char storage[sizeof(T)];
-    };
-
-} // end namespace Catch
-
-namespace Catch {
-
-    struct ITagAliasRegistry {
-        virtual ~ITagAliasRegistry();
-        virtual Option<TagAlias> find( std::string const& alias ) const = 0;
-        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0;
-
-        static ITagAliasRegistry const& get();
-    };
-
-} // end namespace Catch
-
-// These files are included here so the single_include script doesn't put them
-// in the conditionally compiled sections
-// #included from: internal/catch_test_case_info.h
-#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
-
-#include <string>
-#include <set>
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-namespace Catch {
-
-    struct ITestCase;
-
-    struct TestCaseInfo {
-        enum SpecialProperties{
-            None = 0,
-            IsHidden = 1 << 1,
-            ShouldFail = 1 << 2,
-            MayFail = 1 << 3,
-            Throws = 1 << 4
-        };
-
-        TestCaseInfo(   std::string const& _name,
-                        std::string const& _className,
-                        std::string const& _description,
-                        std::set<std::string> const& _tags,
-                        SourceLineInfo const& _lineInfo );
-
-        TestCaseInfo( TestCaseInfo const& other );
-
-        friend void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags );
-
-        bool isHidden() const;
-        bool throws() const;
-        bool okToFail() const;
-        bool expectedToFail() const;
-
-        std::string name;
-        std::string className;
-        std::string description;
-        std::set<std::string> tags;
-        std::set<std::string> lcaseTags;
-        std::string tagsAsString;
-        SourceLineInfo lineInfo;
-        SpecialProperties properties;
-    };
-
-    class TestCase : public TestCaseInfo {
-    public:
-
-        TestCase( ITestCase* testCase, TestCaseInfo const& info );
-        TestCase( TestCase const& other );
-
-        TestCase withName( std::string const& _newName ) const;
-
-        void invoke() const;
-
-        TestCaseInfo const& getTestCaseInfo() const;
-
-        void swap( TestCase& other );
-        bool operator == ( TestCase const& other ) const;
-        bool operator < ( TestCase const& other ) const;
-        TestCase& operator = ( TestCase const& other );
-
-    private:
-        Ptr<ITestCase> test;
-    };
-
-    TestCase makeTestCase(  ITestCase* testCase,
-                            std::string const& className,
-                            std::string const& name,
-                            std::string const& description,
-                            SourceLineInfo const& lineInfo );
-}
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-
-#ifdef __OBJC__
-// #included from: internal/catch_objc.hpp
-#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
-
-#import <objc/runtime.h>
-
-#include <string>
-
-// NB. Any general catch headers included here must be included
-// in catch.hpp first to make sure they are included by the single
-// header for non obj-usage
-
-///////////////////////////////////////////////////////////////////////////////
-// This protocol is really only here for (self) documenting purposes, since
-// all its methods are optional.
-@protocol OcFixture
-
-@optional
-
--(void) setUp;
--(void) tearDown;
-
-@end
-
-namespace Catch {
-
-    class OcMethod : public SharedImpl<ITestCase> {
-
-    public:
-        OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {}
-
-        virtual void invoke() const {
-            id obj = [[m_cls alloc] init];
-
-            performOptionalSelector( obj, @selector(setUp)  );
-            performOptionalSelector( obj, m_sel );
-            performOptionalSelector( obj, @selector(tearDown)  );
-
-            arcSafeRelease( obj );
-        }
-    private:
-        virtual ~OcMethod() {}
-
-        Class m_cls;
-        SEL m_sel;
-    };
-
-    namespace Detail{
-
-        inline std::string getAnnotation(   Class cls,
-                                            std::string const& annotationName,
-                                            std::string const& testCaseName ) {
-            NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()];
-            SEL sel = NSSelectorFromString( selStr );
-            arcSafeRelease( selStr );
-            id value = performOptionalSelector( cls, sel );
-            if( value )
-                return [(NSString*)value UTF8String];
-            return "";
-        }
-    }
-
-    inline size_t registerTestMethods() {
-        size_t noTestMethods = 0;
-        int noClasses = objc_getClassList( CATCH_NULL, 0 );
-
-        Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses);
-        objc_getClassList( classes, noClasses );
-
-        for( int c = 0; c < noClasses; c++ ) {
-            Class cls = classes[c];
-            {
-                u_int count;
-                Method* methods = class_copyMethodList( cls, &count );
-                for( u_int m = 0; m < count ; m++ ) {
-                    SEL selector = method_getName(methods[m]);
-                    std::string methodName = sel_getName(selector);
-                    if( startsWith( methodName, "Catch_TestCase_" ) ) {
-                        std::string testCaseName = methodName.substr( 15 );
-                        std::string name = Detail::getAnnotation( cls, "Name", testCaseName );
-                        std::string desc = Detail::getAnnotation( cls, "Description", testCaseName );
-                        const char* className = class_getName( cls );
-
-                        getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, name.c_str(), desc.c_str(), SourceLineInfo() ) );
-                        noTestMethods++;
-                    }
-                }
-                free(methods);
-            }
-        }
-        return noTestMethods;
-    }
-
-    namespace Matchers {
-        namespace Impl {
-        namespace NSStringMatchers {
-
-            template<typename MatcherT>
-            struct StringHolder : MatcherImpl<MatcherT, NSString*>{
-                StringHolder( NSString* substr ) : m_substr( [substr copy] ){}
-                StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){}
-                StringHolder() {
-                    arcSafeRelease( m_substr );
-                }
-
-                NSString* m_substr;
-            };
-
-            struct Equals : StringHolder<Equals> {
-                Equals( NSString* substr ) : StringHolder( substr ){}
-
-                virtual bool match( ExpressionType const& str ) const {
-                    return  (str != nil || m_substr == nil ) &&
-                            [str isEqualToString:m_substr];
-                }
-
-                virtual std::string toString() const {
-                    return "equals string: " + Catch::toString( m_substr );
-                }
-            };
-
-            struct Contains : StringHolder<Contains> {
-                Contains( NSString* substr ) : StringHolder( substr ){}
-
-                virtual bool match( ExpressionType const& str ) const {
-                    return  (str != nil || m_substr == nil ) &&
-                            [str rangeOfString:m_substr].location != NSNotFound;
-                }
-
-                virtual std::string toString() const {
-                    return "contains string: " + Catch::toString( m_substr );
-                }
-            };
-
-            struct StartsWith : StringHolder<StartsWith> {
-                StartsWith( NSString* substr ) : StringHolder( substr ){}
-
-                virtual bool match( ExpressionType const& str ) const {
-                    return  (str != nil || m_substr == nil ) &&
-                            [str rangeOfString:m_substr].location == 0;
-                }
-
-                virtual std::string toString() const {
-                    return "starts with: " + Catch::toString( m_substr );
-                }
-            };
-            struct EndsWith : StringHolder<EndsWith> {
-                EndsWith( NSString* substr ) : StringHolder( substr ){}
-
-                virtual bool match( ExpressionType const& str ) const {
-                    return  (str != nil || m_substr == nil ) &&
-                            [str rangeOfString:m_substr].location == [str length] - [m_substr length];
-                }
-
-                virtual std::string toString() const {
-                    return "ends with: " + Catch::toString( m_substr );
-                }
-            };
-
-        } // namespace NSStringMatchers
-        } // namespace Impl
-
-        inline Impl::NSStringMatchers::Equals
-            Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); }
-
-        inline Impl::NSStringMatchers::Contains
-            Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); }
-
-        inline Impl::NSStringMatchers::StartsWith
-            StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); }
-
-        inline Impl::NSStringMatchers::EndsWith
-            EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); }
-
-    } // namespace Matchers
-
-    using namespace Matchers;
-
-} // namespace Catch
-
-///////////////////////////////////////////////////////////////////////////////
-#define OC_TEST_CASE( name, desc )\
-+(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Name_test ) \
-{\
-return @ name; \
-}\
-+(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Description_test ) \
-{ \
-return @ desc; \
-} \
--(void) INTERNAL_CATCH_UNIQUE_NAME( Catch_TestCase_test )
-
-#endif
-
-#ifdef CATCH_IMPL
-// #included from: internal/catch_impl.hpp
-#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
-
-// Collect all the implementation files together here
-// These are the equivalent of what would usually be cpp files
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wweak-vtables"
-#endif
-
-// #included from: ../catch_session.hpp
-#define TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED
-
-// #included from: internal/catch_commandline.hpp
-#define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED
-
-// #included from: catch_config.hpp
-#define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED
-
-// #included from: catch_test_spec_parser.hpp
-#define TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-// #included from: catch_test_spec.hpp
-#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-// #included from: catch_wildcard_pattern.hpp
-#define TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED
-
-namespace Catch
-{
-    class WildcardPattern {
-        enum WildcardPosition {
-            NoWildcard = 0,
-            WildcardAtStart = 1,
-            WildcardAtEnd = 2,
-            WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd
-        };
-
-    public:
-
-        WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity )
-        :   m_caseSensitivity( caseSensitivity ),
-            m_wildcard( NoWildcard ),
-            m_pattern( adjustCase( pattern ) )
-        {
-            if( startsWith( m_pattern, "*" ) ) {
-                m_pattern = m_pattern.substr( 1 );
-                m_wildcard = WildcardAtStart;
-            }
-            if( endsWith( m_pattern, "*" ) ) {
-                m_pattern = m_pattern.substr( 0, m_pattern.size()-1 );
-                m_wildcard = static_cast<WildcardPosition>( m_wildcard | WildcardAtEnd );
-            }
-        }
-        virtual ~WildcardPattern();
-        virtual bool matches( std::string const& str ) const {
-            switch( m_wildcard ) {
-                case NoWildcard:
-                    return m_pattern == adjustCase( str );
-                case WildcardAtStart:
-                    return endsWith( adjustCase( str ), m_pattern );
-                case WildcardAtEnd:
-                    return startsWith( adjustCase( str ), m_pattern );
-                case WildcardAtBothEnds:
-                    return contains( adjustCase( str ), m_pattern );
-            }
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunreachable-code"
-#endif
-            throw std::logic_error( "Unknown enum" );
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-        }
-    private:
-        std::string adjustCase( std::string const& str ) const {
-            return m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str;
-        }
-        CaseSensitive::Choice m_caseSensitivity;
-        WildcardPosition m_wildcard;
-        std::string m_pattern;
-    };
-}
-
-#include <string>
-#include <vector>
-
-namespace Catch {
-
-    class TestSpec {
-        struct Pattern : SharedImpl<> {
-            virtual ~Pattern();
-            virtual bool matches( TestCaseInfo const& testCase ) const = 0;
-        };
-        class NamePattern : public Pattern {
-        public:
-            NamePattern( std::string const& name )
-            : m_wildcardPattern( toLower( name ), CaseSensitive::No )
-            {}
-            virtual ~NamePattern();
-            virtual bool matches( TestCaseInfo const& testCase ) const {
-                return m_wildcardPattern.matches( toLower( testCase.name ) );
-            }
-        private:
-            WildcardPattern m_wildcardPattern;
-        };
-
-        class TagPattern : public Pattern {
-        public:
-            TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
-            virtual ~TagPattern();
-            virtual bool matches( TestCaseInfo const& testCase ) const {
-                return testCase.lcaseTags.find( m_tag ) != testCase.lcaseTags.end();
-            }
-        private:
-            std::string m_tag;
-        };
-
-        class ExcludedPattern : public Pattern {
-        public:
-            ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_underlyingPattern( underlyingPattern ) {}
-            virtual ~ExcludedPattern();
-            virtual bool matches( TestCaseInfo const& testCase ) const { return !m_underlyingPattern->matches( testCase ); }
-        private:
-            Ptr<Pattern> m_underlyingPattern;
-        };
-
-        struct Filter {
-            std::vector<Ptr<Pattern> > m_patterns;
-
-            bool matches( TestCaseInfo const& testCase ) const {
-                // All patterns in a filter must match for the filter to be a match
-                for( std::vector<Ptr<Pattern> >::const_iterator it = m_patterns.begin(), itEnd = m_patterns.end(); it != itEnd; ++it ) {
-                    if( !(*it)->matches( testCase ) )
-                        return false;
-                }
-                return true;
-            }
-        };
-
-    public:
-        bool hasFilters() const {
-            return !m_filters.empty();
-        }
-        bool matches( TestCaseInfo const& testCase ) const {
-            // A TestSpec matches if any filter matches
-            for( std::vector<Filter>::const_iterator it = m_filters.begin(), itEnd = m_filters.end(); it != itEnd; ++it )
-                if( it->matches( testCase ) )
-                    return true;
-            return false;
-        }
-
-    private:
-        std::vector<Filter> m_filters;
-
-        friend class TestSpecParser;
-    };
-}
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-namespace Catch {
-
-    class TestSpecParser {
-        enum Mode{ None, Name, QuotedName, Tag, EscapedName };
-        Mode m_mode;
-        bool m_exclusion;
-        std::size_t m_start, m_pos;
-        std::string m_arg;
-        std::vector<std::size_t> m_escapeChars;
-        TestSpec::Filter m_currentFilter;
-        TestSpec m_testSpec;
-        ITagAliasRegistry const* m_tagAliases;
-
-    public:
-        TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {}
-
-        TestSpecParser& parse( std::string const& arg ) {
-            m_mode = None;
-            m_exclusion = false;
-            m_start = std::string::npos;
-            m_arg = m_tagAliases->expandAliases( arg );
-            m_escapeChars.clear();
-            for( m_pos = 0; m_pos < m_arg.size(); ++m_pos )
-                visitChar( m_arg[m_pos] );
-            if( m_mode == Name )
-                addPattern<TestSpec::NamePattern>();
-            return *this;
-        }
-        TestSpec testSpec() {
-            addFilter();
-            return m_testSpec;
-        }
-    private:
-        void visitChar( char c ) {
-            if( m_mode == None ) {
-                switch( c ) {
-                case ' ': return;
-                case '~': m_exclusion = true; return;
-                case '[': return startNewMode( Tag, ++m_pos );
-                case '"': return startNewMode( QuotedName, ++m_pos );
-                case '\\': return escape();
-                default: startNewMode( Name, m_pos ); break;
-                }
-            }
-            if( m_mode == Name ) {
-                if( c == ',' ) {
-                    addPattern<TestSpec::NamePattern>();
-                    addFilter();
-                }
-                else if( c == '[' ) {
-                    if( subString() == "exclude:" )
-                        m_exclusion = true;
-                    else
-                        addPattern<TestSpec::NamePattern>();
-                    startNewMode( Tag, ++m_pos );
-                }
-                else if( c == '\\' )
-                    escape();
-            }
-            else if( m_mode == EscapedName )
-                m_mode = Name;
-            else if( m_mode == QuotedName && c == '"' )
-                addPattern<TestSpec::NamePattern>();
-            else if( m_mode == Tag && c == ']' )
-                addPattern<TestSpec::TagPattern>();
-        }
-        void startNewMode( Mode mode, std::size_t start ) {
-            m_mode = mode;
-            m_start = start;
-        }
-        void escape() {
-            m_mode = EscapedName;
-            m_escapeChars.push_back( m_pos );
-        }
-        std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); }
-        template<typename T>
-        void addPattern() {
-            std::string token = subString();
-            for( size_t i = 0; i < m_escapeChars.size(); ++i )
-                token = token.substr( 0, m_escapeChars[i] ) + token.substr( m_escapeChars[i]+1 );
-            m_escapeChars.clear();
-            if( startsWith( token, "exclude:" ) ) {
-                m_exclusion = true;
-                token = token.substr( 8 );
-            }
-            if( !token.empty() ) {
-                Ptr<TestSpec::Pattern> pattern = new T( token );
-                if( m_exclusion )
-                    pattern = new TestSpec::ExcludedPattern( pattern );
-                m_currentFilter.m_patterns.push_back( pattern );
-            }
-            m_exclusion = false;
-            m_mode = None;
-        }
-        void addFilter() {
-            if( !m_currentFilter.m_patterns.empty() ) {
-                m_testSpec.m_filters.push_back( m_currentFilter );
-                m_currentFilter = TestSpec::Filter();
-            }
-        }
-    };
-    inline TestSpec parseTestSpec( std::string const& arg ) {
-        return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec();
-    }
-
-} // namespace Catch
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-// #included from: catch_interfaces_config.h
-#define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED
-
-#include <iostream>
-#include <string>
-#include <vector>
-
-namespace Catch {
-
-    struct Verbosity { enum Level {
-        NoOutput = 0,
-        Quiet,
-        Normal
-    }; };
-
-    struct WarnAbout { enum What {
-        Nothing = 0x00,
-        NoAssertions = 0x01
-    }; };
-
-    struct ShowDurations { enum OrNot {
-        DefaultForReporter,
-        Always,
-        Never
-    }; };
-    struct RunTests { enum InWhatOrder {
-        InDeclarationOrder,
-        InLexicographicalOrder,
-        InRandomOrder
-    }; };
-    struct UseColour { enum YesOrNo {
-        Auto,
-        Yes,
-        No
-    }; };
-
-    class TestSpec;
-
-    struct IConfig : IShared {
-
-        virtual ~IConfig();
-
-        virtual bool allowThrows() const = 0;
-        virtual std::ostream& stream() const = 0;
-        virtual std::string name() const = 0;
-        virtual bool includeSuccessfulResults() const = 0;
-        virtual bool shouldDebugBreak() const = 0;
-        virtual bool warnAboutMissingAssertions() const = 0;
-        virtual int abortAfter() const = 0;
-        virtual bool showInvisibles() const = 0;
-        virtual ShowDurations::OrNot showDurations() const = 0;
-        virtual TestSpec const& testSpec() const = 0;
-        virtual RunTests::InWhatOrder runOrder() const = 0;
-        virtual unsigned int rngSeed() const = 0;
-        virtual UseColour::YesOrNo useColour() const = 0;
-    };
-}
-
-// #included from: catch_stream.h
-#define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
-
-// #included from: catch_streambuf.h
-#define TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED
-
-#include <streambuf>
-
-namespace Catch {
-
-    class StreamBufBase : public std::streambuf {
-    public:
-        virtual ~StreamBufBase() CATCH_NOEXCEPT;
-    };
-}
-
-#include <streambuf>
-#include <ostream>
-#include <fstream>
-#include <memory>
-
-namespace Catch {
-
-    std::ostream& cout();
-    std::ostream& cerr();
-
-    struct IStream {
-        virtual ~IStream() CATCH_NOEXCEPT;
-        virtual std::ostream& stream() const = 0;
-    };
-
-    class FileStream : public IStream {
-        mutable std::ofstream m_ofs;
-    public:
-        FileStream( std::string const& filename );
-        virtual ~FileStream() CATCH_NOEXCEPT;
-    public: // IStream
-        virtual std::ostream& stream() const CATCH_OVERRIDE;
-    };
-
-    class CoutStream : public IStream {
-        mutable std::ostream m_os;
-    public:
-        CoutStream();
-        virtual ~CoutStream() CATCH_NOEXCEPT;
-
-    public: // IStream
-        virtual std::ostream& stream() const CATCH_OVERRIDE;
-    };
-
-    class DebugOutStream : public IStream {
-        CATCH_AUTO_PTR( StreamBufBase ) m_streamBuf;
-        mutable std::ostream m_os;
-    public:
-        DebugOutStream();
-        virtual ~DebugOutStream() CATCH_NOEXCEPT;
-
-    public: // IStream
-        virtual std::ostream& stream() const CATCH_OVERRIDE;
-    };
-}
-
-#include <memory>
-#include <vector>
-#include <string>
-#include <iostream>
-#include <ctime>
-
-#ifndef CATCH_CONFIG_CONSOLE_WIDTH
-#define CATCH_CONFIG_CONSOLE_WIDTH 80
-#endif
-
-namespace Catch {
-
-    struct ConfigData {
-
-        ConfigData()
-        :   listTests( false ),
-            listTags( false ),
-            listReporters( false ),
-            listTestNamesOnly( false ),
-            showSuccessfulTests( false ),
-            shouldDebugBreak( false ),
-            noThrow( false ),
-            showHelp( false ),
-            showInvisibles( false ),
-            filenamesAsTags( false ),
-            abortAfter( -1 ),
-            rngSeed( 0 ),
-            verbosity( Verbosity::Normal ),
-            warnings( WarnAbout::Nothing ),
-            showDurations( ShowDurations::DefaultForReporter ),
-            runOrder( RunTests::InDeclarationOrder ),
-            useColour( UseColour::Auto )
-        {}
-
-        bool listTests;
-        bool listTags;
-        bool listReporters;
-        bool listTestNamesOnly;
-
-        bool showSuccessfulTests;
-        bool shouldDebugBreak;
-        bool noThrow;
-        bool showHelp;
-        bool showInvisibles;
-        bool filenamesAsTags;
-
-        int abortAfter;
-        unsigned int rngSeed;
-
-        Verbosity::Level verbosity;
-        WarnAbout::What warnings;
-        ShowDurations::OrNot showDurations;
-        RunTests::InWhatOrder runOrder;
-        UseColour::YesOrNo useColour;
-
-        std::string outputFilename;
-        std::string name;
-        std::string processName;
-
-        std::vector<std::string> reporterNames;
-        std::vector<std::string> testsOrTags;
-    };
-
-    class Config : public SharedImpl<IConfig> {
-    private:
-        Config( Config const& other );
-        Config& operator = ( Config const& other );
-        virtual void dummy();
-    public:
-
-        Config()
-        {}
-
-        Config( ConfigData const& data )
-        :   m_data( data ),
-            m_stream( openStream() )
-        {
-            if( !data.testsOrTags.empty() ) {
-                TestSpecParser parser( ITagAliasRegistry::get() );
-                for( std::size_t i = 0; i < data.testsOrTags.size(); ++i )
-                    parser.parse( data.testsOrTags[i] );
-                m_testSpec = parser.testSpec();
-            }
-        }
-
-        virtual ~Config() {
-        }
-
-        std::string const& getFilename() const {
-            return m_data.outputFilename ;
-        }
-
-        bool listTests() const { return m_data.listTests; }
-        bool listTestNamesOnly() const { return m_data.listTestNamesOnly; }
-        bool listTags() const { return m_data.listTags; }
-        bool listReporters() const { return m_data.listReporters; }
-
-        std::string getProcessName() const { return m_data.processName; }
-
-        bool shouldDebugBreak() const { return m_data.shouldDebugBreak; }
-
-        std::vector<std::string> getReporterNames() const { return m_data.reporterNames; }
-
-        int abortAfter() const { return m_data.abortAfter; }
-
-        TestSpec const& testSpec() const { return m_testSpec; }
-
-        bool showHelp() const { return m_data.showHelp; }
-        bool showInvisibles() const { return m_data.showInvisibles; }
-
-        // IConfig interface
-        virtual bool allowThrows() const        { return !m_data.noThrow; }
-        virtual std::ostream& stream() const    { return m_stream->stream(); }
-        virtual std::string name() const        { return m_data.name.empty() ? m_data.processName : m_data.name; }
-        virtual bool includeSuccessfulResults() const   { return m_data.showSuccessfulTests; }
-        virtual bool warnAboutMissingAssertions() const { return m_data.warnings & WarnAbout::NoAssertions; }
-        virtual ShowDurations::OrNot showDurations() const { return m_data.showDurations; }
-        virtual RunTests::InWhatOrder runOrder() const  { return m_data.runOrder; }
-        virtual unsigned int rngSeed() const    { return m_data.rngSeed; }
-        virtual UseColour::YesOrNo useColour() const { return m_data.useColour; }
-
-    private:
-
-        IStream const* openStream() {
-            if( m_data.outputFilename.empty() )
-                return new CoutStream();
-            else if( m_data.outputFilename[0] == '%' ) {
-                if( m_data.outputFilename == "%debug" )
-                    return new DebugOutStream();
-                else
-                    throw std::domain_error( "Unrecognised stream: " + m_data.outputFilename );
-            }
-            else
-                return new FileStream( m_data.outputFilename );
-        }
-        ConfigData m_data;
-
-        CATCH_AUTO_PTR( IStream const ) m_stream;
-        TestSpec m_testSpec;
-    };
-
-} // end namespace Catch
-
-// #included from: catch_clara.h
-#define TWOBLUECUBES_CATCH_CLARA_H_INCLUDED
-
-// Use Catch's value for console width (store Clara's off to the side, if present)
-#ifdef CLARA_CONFIG_CONSOLE_WIDTH
-#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CLARA_CONFIG_CONSOLE_WIDTH
-#undef CLARA_CONFIG_CONSOLE_WIDTH
-#endif
-#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
-
-// Declare Clara inside the Catch namespace
-#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch {
-// #included from: ../external/clara.h
-
-// Version 0.0.2.4
-
-// Only use header guard if we are not using an outer namespace
-#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE)
-
-#ifndef STITCH_CLARA_OPEN_NAMESPACE
-#define TWOBLUECUBES_CLARA_H_INCLUDED
-#define STITCH_CLARA_OPEN_NAMESPACE
-#define STITCH_CLARA_CLOSE_NAMESPACE
-#else
-#define STITCH_CLARA_CLOSE_NAMESPACE }
-#endif
-
-#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE
-
-// ----------- #included from tbc_text_format.h -----------
-
-// Only use header guard if we are not using an outer namespace
-#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE)
-#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-#define TBC_TEXT_FORMAT_H_INCLUDED
-#endif
-
-#include <string>
-#include <vector>
-#include <sstream>
-#include <algorithm>
-
-// Use optional outer namespace
-#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
-#endif
-
-namespace Tbc {
-
-#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
-    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
-#else
-    const unsigned int consoleWidth = 80;
-#endif
-
-    struct TextAttributes {
-        TextAttributes()
-        :   initialIndent( std::string::npos ),
-            indent( 0 ),
-            width( consoleWidth-1 ),
-            tabChar( '\t' )
-        {}
-
-        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
-        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
-        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
-        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
-
-        std::size_t initialIndent;  // indent of first line, or npos
-        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
-        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
-        char tabChar;               // If this char is seen the indent is changed to current pos
-    };
-
-    class Text {
-    public:
-        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
-        : attr( _attr )
-        {
-            std::string wrappableChars = " [({.,/|\\-";
-            std::size_t indent = _attr.initialIndent != std::string::npos
-                ? _attr.initialIndent
-                : _attr.indent;
-            std::string remainder = _str;
-
-            while( !remainder.empty() ) {
-                if( lines.size() >= 1000 ) {
-                    lines.push_back( "... message truncated due to excessive size" );
-                    return;
-                }
-                std::size_t tabPos = std::string::npos;
-                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
-                std::size_t pos = remainder.find_first_of( '\n' );
-                if( pos <= width ) {
-                    width = pos;
-                }
-                pos = remainder.find_last_of( _attr.tabChar, width );
-                if( pos != std::string::npos ) {
-                    tabPos = pos;
-                    if( remainder[width] == '\n' )
-                        width--;
-                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
-                }
-
-                if( width == remainder.size() ) {
-                    spliceLine( indent, remainder, width );
-                }
-                else if( remainder[width] == '\n' ) {
-                    spliceLine( indent, remainder, width );
-                    if( width <= 1 || remainder.size() != 1 )
-                        remainder = remainder.substr( 1 );
-                    indent = _attr.indent;
-                }
-                else {
-                    pos = remainder.find_last_of( wrappableChars, width );
-                    if( pos != std::string::npos && pos > 0 ) {
-                        spliceLine( indent, remainder, pos );
-                        if( remainder[0] == ' ' )
-                            remainder = remainder.substr( 1 );
-                    }
-                    else {
-                        spliceLine( indent, remainder, width-1 );
-                        lines.back() += "-";
-                    }
-                    if( lines.size() == 1 )
-                        indent = _attr.indent;
-                    if( tabPos != std::string::npos )
-                        indent += tabPos;
-                }
-            }
-        }
-
-        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
-            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
-            _remainder = _remainder.substr( _pos );
-        }
-
-        typedef std::vector<std::string>::const_iterator const_iterator;
-
-        const_iterator begin() const { return lines.begin(); }
-        const_iterator end() const { return lines.end(); }
-        std::string const& last() const { return lines.back(); }
-        std::size_t size() const { return lines.size(); }
-        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
-        std::string toString() const {
-            std::ostringstream oss;
-            oss << *this;
-            return oss.str();
-        }
-
-        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
-            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
-                it != itEnd; ++it ) {
-                if( it != _text.begin() )
-                    _stream << "\n";
-                _stream << *it;
-            }
-            return _stream;
-        }
-
-    private:
-        std::string str;
-        TextAttributes attr;
-        std::vector<std::string> lines;
-    };
-
-} // end namespace Tbc
-
-#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-} // end outer namespace
-#endif
-
-#endif // TBC_TEXT_FORMAT_H_INCLUDED
-
-// ----------- end of #include from tbc_text_format.h -----------
-// ........... back in clara.h
-
-#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE
-
-// ----------- #included from clara_compilers.h -----------
-
-#ifndef TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
-#define TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
-
-// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
-// The following features are defined:
-//
-// CLARA_CONFIG_CPP11_NULLPTR : is nullptr supported?
-// CLARA_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
-// CLARA_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
-// CLARA_CONFIG_CPP11_OVERRIDE : is override supported?
-// CLARA_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
-
-// CLARA_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
-
-// CLARA_CONFIG_VARIADIC_MACROS : are variadic macros supported?
-
-// In general each macro has a _NO_<feature name> form
-// (e.g. CLARA_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
-// Many features, at point of detection, define an _INTERNAL_ macro, so they
-// can be combined, en-mass, with the _NO_ forms later.
-
-// All the C++11 features can be disabled with CLARA_CONFIG_NO_CPP11
-
-#ifdef __clang__
-
-#if __has_feature(cxx_nullptr)
-#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
-#endif
-
-#if __has_feature(cxx_noexcept)
-#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#endif
-
-#endif // __clang__
-
-////////////////////////////////////////////////////////////////////////////////
-// GCC
-#ifdef __GNUC__
-
-#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
-#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
-#endif
-
-// - otherwise more recent versions define __cplusplus >= 201103L
-// and will get picked up below
-
-#endif // __GNUC__
-
-////////////////////////////////////////////////////////////////////////////////
-// Visual C++
-#ifdef _MSC_VER
-
-#if (_MSC_VER >= 1600)
-#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
-#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
-#endif
-
-#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
-#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#endif
-
-#endif // _MSC_VER
-
-////////////////////////////////////////////////////////////////////////////////
-// C++ language feature support
-
-// catch all support for C++11
-#if defined(__cplusplus) && __cplusplus >= 201103L
-
-#define CLARA_CPP11_OR_GREATER
-
-#if !defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR)
-#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
-#endif
-
-#ifndef CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#endif
-
-#ifndef CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#endif
-
-#if !defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE)
-#define CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE
-#endif
-#if !defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
-#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
-#endif
-
-#endif // __cplusplus >= 201103L
-
-// Now set the actual defines based on the above + anything the user has configured
-#if defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NO_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_NO_CPP11)
-#define CLARA_CONFIG_CPP11_NULLPTR
-#endif
-#if defined(CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_NO_CPP11)
-#define CLARA_CONFIG_CPP11_NOEXCEPT
-#endif
-#if defined(CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_NO_CPP11)
-#define CLARA_CONFIG_CPP11_GENERATED_METHODS
-#endif
-#if defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_OVERRIDE) && !defined(CLARA_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_CPP11)
-#define CLARA_CONFIG_CPP11_OVERRIDE
-#endif
-#if defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_UNIQUE_PTR) && !defined(CLARA_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_CPP11)
-#define CLARA_CONFIG_CPP11_UNIQUE_PTR
-#endif
-
-// noexcept support:
-#if defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_NOEXCEPT)
-#define CLARA_NOEXCEPT noexcept
-#  define CLARA_NOEXCEPT_IS(x) noexcept(x)
-#else
-#define CLARA_NOEXCEPT throw()
-#  define CLARA_NOEXCEPT_IS(x)
-#endif
-
-// nullptr support
-#ifdef CLARA_CONFIG_CPP11_NULLPTR
-#define CLARA_NULL nullptr
-#else
-#define CLARA_NULL NULL
-#endif
-
-// override support
-#ifdef CLARA_CONFIG_CPP11_OVERRIDE
-#define CLARA_OVERRIDE override
-#else
-#define CLARA_OVERRIDE
-#endif
-
-// unique_ptr support
-#ifdef CLARA_CONFIG_CPP11_UNIQUE_PTR
-#   define CLARA_AUTO_PTR( T ) std::unique_ptr<T>
-#else
-#   define CLARA_AUTO_PTR( T ) std::auto_ptr<T>
-#endif
-
-#endif // TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
-
-// ----------- end of #include from clara_compilers.h -----------
-// ........... back in clara.h
-
-#include <map>
-#include <stdexcept>
-#include <memory>
-
-#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
-#define CLARA_PLATFORM_WINDOWS
-#endif
-
-// Use optional outer namespace
-#ifdef STITCH_CLARA_OPEN_NAMESPACE
-STITCH_CLARA_OPEN_NAMESPACE
-#endif
-
-namespace Clara {
-
-    struct UnpositionalTag {};
-
-    extern UnpositionalTag _;
-
-#ifdef CLARA_CONFIG_MAIN
-    UnpositionalTag _;
-#endif
-
-    namespace Detail {
-
-#ifdef CLARA_CONSOLE_WIDTH
-    const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH;
-#else
-    const unsigned int consoleWidth = 80;
-#endif
-
-        using namespace Tbc;
-
-        inline bool startsWith( std::string const& str, std::string const& prefix ) {
-            return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix;
-        }
-
-        template<typename T> struct RemoveConstRef{ typedef T type; };
-        template<typename T> struct RemoveConstRef<T&>{ typedef T type; };
-        template<typename T> struct RemoveConstRef<T const&>{ typedef T type; };
-        template<typename T> struct RemoveConstRef<T const>{ typedef T type; };
-
-        template<typename T>    struct IsBool       { static const bool value = false; };
-        template<>              struct IsBool<bool> { static const bool value = true; };
-
-        template<typename T>
-        void convertInto( std::string const& _source, T& _dest ) {
-            std::stringstream ss;
-            ss << _source;
-            ss >> _dest;
-            if( ss.fail() )
-                throw std::runtime_error( "Unable to convert " + _source + " to destination type" );
-        }
-        inline void convertInto( std::string const& _source, std::string& _dest ) {
-            _dest = _source;
-        }
-        char toLowerCh(char c) {
-            return static_cast<char>( ::tolower( c ) );
-        }
-        inline void convertInto( std::string const& _source, bool& _dest ) {
-            std::string sourceLC = _source;
-            std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), toLowerCh );
-            if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" )
-                _dest = true;
-            else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" )
-                _dest = false;
-            else
-                throw std::runtime_error( "Expected a boolean value but did not recognise:\n  '" + _source + "'" );
-        }
-
-        template<typename ConfigT>
-        struct IArgFunction {
-            virtual ~IArgFunction() {}
-#ifdef CLARA_CONFIG_CPP11_GENERATED_METHODS
-            IArgFunction()                      = default;
-            IArgFunction( IArgFunction const& ) = default;
-#endif
-            virtual void set( ConfigT& config, std::string const& value ) const = 0;
-            virtual bool takesArg() const = 0;
-            virtual IArgFunction* clone() const = 0;
-        };
-
-        template<typename ConfigT>
-        class BoundArgFunction {
-        public:
-            BoundArgFunction() : functionObj( CLARA_NULL ) {}
-            BoundArgFunction( IArgFunction<ConfigT>* _functionObj ) : functionObj( _functionObj ) {}
-            BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : CLARA_NULL ) {}
-            BoundArgFunction& operator = ( BoundArgFunction const& other ) {
-                IArgFunction<ConfigT>* newFunctionObj = other.functionObj ? other.functionObj->clone() : CLARA_NULL;
-                delete functionObj;
-                functionObj = newFunctionObj;
-                return *this;
-            }
-            ~BoundArgFunction() { delete functionObj; }
-
-            void set( ConfigT& config, std::string const& value ) const {
-                functionObj->set( config, value );
-            }
-            bool takesArg() const { return functionObj->takesArg(); }
-
-            bool isSet() const {
-                return functionObj != CLARA_NULL;
-            }
-        private:
-            IArgFunction<ConfigT>* functionObj;
-        };
-
-        template<typename C>
-        struct NullBinder : IArgFunction<C>{
-            virtual void set( C&, std::string const& ) const {}
-            virtual bool takesArg() const { return true; }
-            virtual IArgFunction<C>* clone() const { return new NullBinder( *this ); }
-        };
-
-        template<typename C, typename M>
-        struct BoundDataMember : IArgFunction<C>{
-            BoundDataMember( M C::* _member ) : member( _member ) {}
-            virtual void set( C& p, std::string const& stringValue ) const {
-                convertInto( stringValue, p.*member );
-            }
-            virtual bool takesArg() const { return !IsBool<M>::value; }
-            virtual IArgFunction<C>* clone() const { return new BoundDataMember( *this ); }
-            M C::* member;
-        };
-        template<typename C, typename M>
-        struct BoundUnaryMethod : IArgFunction<C>{
-            BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {}
-            virtual void set( C& p, std::string const& stringValue ) const {
-                typename RemoveConstRef<M>::type value;
-                convertInto( stringValue, value );
-                (p.*member)( value );
-            }
-            virtual bool takesArg() const { return !IsBool<M>::value; }
-            virtual IArgFunction<C>* clone() const { return new BoundUnaryMethod( *this ); }
-            void (C::*member)( M );
-        };
-        template<typename C>
-        struct BoundNullaryMethod : IArgFunction<C>{
-            BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {}
-            virtual void set( C& p, std::string const& stringValue ) const {
-                bool value;
-                convertInto( stringValue, value );
-                if( value )
-                    (p.*member)();
-            }
-            virtual bool takesArg() const { return false; }
-            virtual IArgFunction<C>* clone() const { return new BoundNullaryMethod( *this ); }
-            void (C::*member)();
-        };
-
-        template<typename C>
-        struct BoundUnaryFunction : IArgFunction<C>{
-            BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {}
-            virtual void set( C& obj, std::string const& stringValue ) const {
-                bool value;
-                convertInto( stringValue, value );
-                if( value )
-                    function( obj );
-            }
-            virtual bool takesArg() const { return false; }
-            virtual IArgFunction<C>* clone() const { return new BoundUnaryFunction( *this ); }
-            void (*function)( C& );
-        };
-
-        template<typename C, typename T>
-        struct BoundBinaryFunction : IArgFunction<C>{
-            BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {}
-            virtual void set( C& obj, std::string const& stringValue ) const {
-                typename RemoveConstRef<T>::type value;
-                convertInto( stringValue, value );
-                function( obj, value );
-            }
-            virtual bool takesArg() const { return !IsBool<T>::value; }
-            virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }
-            void (*function)( C&, T );
-        };
-
-    } // namespace Detail
-
-    inline std::vector<std::string> argsToVector( int argc, char const* const* const argv ) {
-        std::vector<std::string> args( static_cast<std::size_t>( argc ) );
-        for( std::size_t i = 0; i < static_cast<std::size_t>( argc ); ++i )
-            args[i] = argv[i];
-
-        return args;
-    }
-
-    class Parser {
-        enum Mode { None, MaybeShortOpt, SlashOpt, ShortOpt, LongOpt, Positional };
-        Mode mode;
-        std::size_t from;
-        bool inQuotes;
-    public:
-
-        struct Token {
-            enum Type { Positional, ShortOpt, LongOpt };
-            Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {}
-            Type type;
-            std::string data;
-        };
-
-        Parser() : mode( None ), from( 0 ), inQuotes( false ){}
-
-        void parseIntoTokens( std::vector<std::string> const& args, std::vector<Token>& tokens ) {
-            const std::string doubleDash = "--";
-            for( std::size_t i = 1; i < args.size() && args[i] != doubleDash; ++i )
-                parseIntoTokens( args[i], tokens);
-        }
-
-        void parseIntoTokens( std::string const& arg, std::vector<Token>& tokens ) {
-            for( std::size_t i = 0; i <= arg.size(); ++i ) {
-                char c = arg[i];
-                if( c == '"' )
-                    inQuotes = !inQuotes;
-                mode = handleMode( i, c, arg, tokens );
-            }
-        }
-        Mode handleMode( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
-            switch( mode ) {
-                case None: return handleNone( i, c );
-                case MaybeShortOpt: return handleMaybeShortOpt( i, c );
-                case ShortOpt:
-                case LongOpt:
-                case SlashOpt: return handleOpt( i, c, arg, tokens );
-                case Positional: return handlePositional( i, c, arg, tokens );
-                default: throw std::logic_error( "Unknown mode" );
-            }
-        }
-
-        Mode handleNone( std::size_t i, char c ) {
-            if( inQuotes ) {
-                from = i;
-                return Positional;
-            }
-            switch( c ) {
-                case '-': return MaybeShortOpt;
-#ifdef CLARA_PLATFORM_WINDOWS
-                case '/': from = i+1; return SlashOpt;
-#endif
-                default: from = i; return Positional;
-            }
-        }
-        Mode handleMaybeShortOpt( std::size_t i, char c ) {
-            switch( c ) {
-                case '-': from = i+1; return LongOpt;
-                default: from = i; return ShortOpt;
-            }
-        }
-        Mode handleOpt( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
-            if( std::string( ":=\0", 3 ).find( c ) == std::string::npos )
-                return mode;
-
-            std::string optName = arg.substr( from, i-from );
-            if( mode == ShortOpt )
-                for( std::size_t j = 0; j < optName.size(); ++j )
-                    tokens.push_back( Token( Token::ShortOpt, optName.substr( j, 1 ) ) );
-            else if( mode == SlashOpt && optName.size() == 1 )
-                tokens.push_back( Token( Token::ShortOpt, optName ) );
-            else
-                tokens.push_back( Token( Token::LongOpt, optName ) );
-            return None;
-        }
-        Mode handlePositional( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
-            if( inQuotes || std::string( "\0", 1 ).find( c ) == std::string::npos )
-                return mode;
-
-            std::string data = arg.substr( from, i-from );
-            tokens.push_back( Token( Token::Positional, data ) );
-            return None;
-        }
-    };
-
-    template<typename ConfigT>
-    struct CommonArgProperties {
-        CommonArgProperties() {}
-        CommonArgProperties( Detail::BoundArgFunction<ConfigT> const& _boundField ) : boundField( _boundField ) {}
-
-        Detail::BoundArgFunction<ConfigT> boundField;
-        std::string description;
-        std::string detail;
-        std::string placeholder; // Only value if boundField takes an arg
-
-        bool takesArg() const {
-            return !placeholder.empty();
-        }
-        void validate() const {
-            if( !boundField.isSet() )
-                throw std::logic_error( "option not bound" );
-        }
-    };
-    struct OptionArgProperties {
-        std::vector<std::string> shortNames;
-        std::string longName;
-
-        bool hasShortName( std::string const& shortName ) const {
-            return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end();
-        }
-        bool hasLongName( std::string const& _longName ) const {
-            return _longName == longName;
-        }
-    };
-    struct PositionalArgProperties {
-        PositionalArgProperties() : position( -1 ) {}
-        int position; // -1 means non-positional (floating)
-
-        bool isFixedPositional() const {
-            return position != -1;
-        }
-    };
-
-    template<typename ConfigT>
-    class CommandLine {
-
-        struct Arg : CommonArgProperties<ConfigT>, OptionArgProperties, PositionalArgProperties {
-            Arg() {}
-            Arg( Detail::BoundArgFunction<ConfigT> const& _boundField ) : CommonArgProperties<ConfigT>( _boundField ) {}
-
-            using CommonArgProperties<ConfigT>::placeholder; // !TBD
-
-            std::string dbgName() const {
-                if( !longName.empty() )
-                    return "--" + longName;
-                if( !shortNames.empty() )
-                    return "-" + shortNames[0];
-                return "positional args";
-            }
-            std::string commands() const {
-                std::ostringstream oss;
-                bool first = true;
-                std::vector<std::string>::const_iterator it = shortNames.begin(), itEnd = shortNames.end();
-                for(; it != itEnd; ++it ) {
-                    if( first )
-                        first = false;
-                    else
-                        oss << ", ";
-                    oss << "-" << *it;
-                }
-                if( !longName.empty() ) {
-                    if( !first )
-                        oss << ", ";
-                    oss << "--" << longName;
-                }
-                if( !placeholder.empty() )
-                    oss << " <" << placeholder << ">";
-                return oss.str();
-            }
-        };
-
-        typedef CLARA_AUTO_PTR( Arg ) ArgAutoPtr;
-
-        friend void addOptName( Arg& arg, std::string const& optName )
-        {
-            if( optName.empty() )
-                return;
-            if( Detail::startsWith( optName, "--" ) ) {
-                if( !arg.longName.empty() )
-                    throw std::logic_error( "Only one long opt may be specified. '"
-                        + arg.longName
-                        + "' already specified, now attempting to add '"
-                        + optName + "'" );
-                arg.longName = optName.substr( 2 );
-            }
-            else if( Detail::startsWith( optName, "-" ) )
-                arg.shortNames.push_back( optName.substr( 1 ) );
-            else
-                throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" );
-        }
-        friend void setPositionalArg( Arg& arg, int position )
-        {
-            arg.position = position;
-        }
-
-        class ArgBuilder {
-        public:
-            ArgBuilder( Arg* arg ) : m_arg( arg ) {}
-
-            // Bind a non-boolean data member (requires placeholder string)
-            template<typename C, typename M>
-            void bind( M C::* field, std::string const& placeholder ) {
-                m_arg->boundField = new Detail::BoundDataMember<C,M>( field );
-                m_arg->placeholder = placeholder;
-            }
-            // Bind a boolean data member (no placeholder required)
-            template<typename C>
-            void bind( bool C::* field ) {
-                m_arg->boundField = new Detail::BoundDataMember<C,bool>( field );
-            }
-
-            // Bind a method taking a single, non-boolean argument (requires a placeholder string)
-            template<typename C, typename M>
-            void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) {
-                m_arg->boundField = new Detail::BoundUnaryMethod<C,M>( unaryMethod );
-                m_arg->placeholder = placeholder;
-            }
-
-            // Bind a method taking a single, boolean argument (no placeholder string required)
-            template<typename C>
-            void bind( void (C::* unaryMethod)( bool ) ) {
-                m_arg->boundField = new Detail::BoundUnaryMethod<C,bool>( unaryMethod );
-            }
-
-            // Bind a method that takes no arguments (will be called if opt is present)
-            template<typename C>
-            void bind( void (C::* nullaryMethod)() ) {
-                m_arg->boundField = new Detail::BoundNullaryMethod<C>( nullaryMethod );
-            }
-
-            // Bind a free function taking a single argument - the object to operate on (no placeholder string required)
-            template<typename C>
-            void bind( void (* unaryFunction)( C& ) ) {
-                m_arg->boundField = new Detail::BoundUnaryFunction<C>( unaryFunction );
-            }
-
-            // Bind a free function taking a single argument - the object to operate on (requires a placeholder string)
-            template<typename C, typename T>
-            void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) {
-                m_arg->boundField = new Detail::BoundBinaryFunction<C, T>( binaryFunction );
-                m_arg->placeholder = placeholder;
-            }
-
-            ArgBuilder& describe( std::string const& description ) {
-                m_arg->description = description;
-                return *this;
-            }
-            ArgBuilder& detail( std::string const& detail ) {
-                m_arg->detail = detail;
-                return *this;
-            }
-
-        protected:
-            Arg* m_arg;
-        };
-
-        class OptBuilder : public ArgBuilder {
-        public:
-            OptBuilder( Arg* arg ) : ArgBuilder( arg ) {}
-            OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {}
-
-            OptBuilder& operator[]( std::string const& optName ) {
-                addOptName( *ArgBuilder::m_arg, optName );
-                return *this;
-            }
-        };
-
-    public:
-
-        CommandLine()
-        :   m_boundProcessName( new Detail::NullBinder<ConfigT>() ),
-            m_highestSpecifiedArgPosition( 0 ),
-            m_throwOnUnrecognisedTokens( false )
-        {}
-        CommandLine( CommandLine const& other )
-        :   m_boundProcessName( other.m_boundProcessName ),
-            m_options ( other.m_options ),
-            m_positionalArgs( other.m_positionalArgs ),
-            m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ),
-            m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens )
-        {
-            if( other.m_floatingArg.get() )
-                m_floatingArg.reset( new Arg( *other.m_floatingArg ) );
-        }
-
-        CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) {
-            m_throwOnUnrecognisedTokens = shouldThrow;
-            return *this;
-        }
-
-        OptBuilder operator[]( std::string const& optName ) {
-            m_options.push_back( Arg() );
-            addOptName( m_options.back(), optName );
-            OptBuilder builder( &m_options.back() );
-            return builder;
-        }
-
-        ArgBuilder operator[]( int position ) {
-            m_positionalArgs.insert( std::make_pair( position, Arg() ) );
-            if( position > m_highestSpecifiedArgPosition )
-                m_highestSpecifiedArgPosition = position;
-            setPositionalArg( m_positionalArgs[position], position );
-            ArgBuilder builder( &m_positionalArgs[position] );
-            return builder;
-        }
-
-        // Invoke this with the _ instance
-        ArgBuilder operator[]( UnpositionalTag ) {
-            if( m_floatingArg.get() )
-                throw std::logic_error( "Only one unpositional argument can be added" );
-            m_floatingArg.reset( new Arg() );
-            ArgBuilder builder( m_floatingArg.get() );
-            return builder;
-        }
-
-        template<typename C, typename M>
-        void bindProcessName( M C::* field ) {
-            m_boundProcessName = new Detail::BoundDataMember<C,M>( field );
-        }
-        template<typename C, typename M>
-        void bindProcessName( void (C::*_unaryMethod)( M ) ) {
-            m_boundProcessName = new Detail::BoundUnaryMethod<C,M>( _unaryMethod );
-        }
-
-        void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const {
-            typename std::vector<Arg>::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it;
-            std::size_t maxWidth = 0;
-            for( it = itBegin; it != itEnd; ++it )
-                maxWidth = (std::max)( maxWidth, it->commands().size() );
-
-            for( it = itBegin; it != itEnd; ++it ) {
-                Detail::Text usage( it->commands(), Detail::TextAttributes()
-                                                        .setWidth( maxWidth+indent )
-                                                        .setIndent( indent ) );
-                Detail::Text desc( it->description, Detail::TextAttributes()
-                                                        .setWidth( width - maxWidth - 3 ) );
-
-                for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) {
-                    std::string usageCol = i < usage.size() ? usage[i] : "";
-                    os << usageCol;
-
-                    if( i < desc.size() && !desc[i].empty() )
-                        os  << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' )
-                            << desc[i];
-                    os << "\n";
-                }
-            }
-        }
-        std::string optUsage() const {
-            std::ostringstream oss;
-            optUsage( oss );
-            return oss.str();
-        }
-
-        void argSynopsis( std::ostream& os ) const {
-            for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) {
-                if( i > 1 )
-                    os << " ";
-                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( i );
-                if( it != m_positionalArgs.end() )
-                    os << "<" << it->second.placeholder << ">";
-                else if( m_floatingArg.get() )
-                    os << "<" << m_floatingArg->placeholder << ">";
-                else
-                    throw std::logic_error( "non consecutive positional arguments with no floating args" );
-            }
-            // !TBD No indication of mandatory args
-            if( m_floatingArg.get() ) {
-                if( m_highestSpecifiedArgPosition > 1 )
-                    os << " ";
-                os << "[<" << m_floatingArg->placeholder << "> ...]";
-            }
-        }
-        std::string argSynopsis() const {
-            std::ostringstream oss;
-            argSynopsis( oss );
-            return oss.str();
-        }
-
-        void usage( std::ostream& os, std::string const& procName ) const {
-            validate();
-            os << "usage:\n  " << procName << " ";
-            argSynopsis( os );
-            if( !m_options.empty() ) {
-                os << " [options]\n\nwhere options are: \n";
-                optUsage( os, 2 );
-            }
-            os << "\n";
-        }
-        std::string usage( std::string const& procName ) const {
-            std::ostringstream oss;
-            usage( oss, procName );
-            return oss.str();
-        }
-
-        ConfigT parse( std::vector<std::string> const& args ) const {
-            ConfigT config;
-            parseInto( args, config );
-            return config;
-        }
-
-        std::vector<Parser::Token> parseInto( std::vector<std::string> const& args, ConfigT& config ) const {
-            std::string processName = args[0];
-            std::size_t lastSlash = processName.find_last_of( "/\\" );
-            if( lastSlash != std::string::npos )
-                processName = processName.substr( lastSlash+1 );
-            m_boundProcessName.set( config, processName );
-            std::vector<Parser::Token> tokens;
-            Parser parser;
-            parser.parseIntoTokens( args, tokens );
-            return populate( tokens, config );
-        }
-
-        std::vector<Parser::Token> populate( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
-            validate();
-            std::vector<Parser::Token> unusedTokens = populateOptions( tokens, config );
-            unusedTokens = populateFixedArgs( unusedTokens, config );
-            unusedTokens = populateFloatingArgs( unusedTokens, config );
-            return unusedTokens;
-        }
-
-        std::vector<Parser::Token> populateOptions( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
-            std::vector<Parser::Token> unusedTokens;
-            std::vector<std::string> errors;
-            for( std::size_t i = 0; i < tokens.size(); ++i ) {
-                Parser::Token const& token = tokens[i];
-                typename std::vector<Arg>::const_iterator it = m_options.begin(), itEnd = m_options.end();
-                for(; it != itEnd; ++it ) {
-                    Arg const& arg = *it;
-
-                    try {
-                        if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) ||
-                            ( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) {
-                            if( arg.takesArg() ) {
-                                if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional )
-                                    errors.push_back( "Expected argument to option: " + token.data );
-                                else
-                                    arg.boundField.set( config, tokens[++i].data );
-                            }
-                            else {
-                                arg.boundField.set( config, "true" );
-                            }
-                            break;
-                        }
-                    }
-                    catch( std::exception& ex ) {
-                        errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" );
-                    }
-                }
-                if( it == itEnd ) {
-                    if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens )
-                        unusedTokens.push_back( token );
-                    else if( errors.empty() && m_throwOnUnrecognisedTokens )
-                        errors.push_back( "unrecognised option: " + token.data );
-                }
-            }
-            if( !errors.empty() ) {
-                std::ostringstream oss;
-                for( std::vector<std::string>::const_iterator it = errors.begin(), itEnd = errors.end();
-                        it != itEnd;
-                        ++it ) {
-                    if( it != errors.begin() )
-                        oss << "\n";
-                    oss << *it;
-                }
-                throw std::runtime_error( oss.str() );
-            }
-            return unusedTokens;
-        }
-        std::vector<Parser::Token> populateFixedArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
-            std::vector<Parser::Token> unusedTokens;
-            int position = 1;
-            for( std::size_t i = 0; i < tokens.size(); ++i ) {
-                Parser::Token const& token = tokens[i];
-                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( position );
-                if( it != m_positionalArgs.end() )
-                    it->second.boundField.set( config, token.data );
-                else
-                    unusedTokens.push_back( token );
-                if( token.type == Parser::Token::Positional )
-                    position++;
-            }
-            return unusedTokens;
-        }
-        std::vector<Parser::Token> populateFloatingArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
-            if( !m_floatingArg.get() )
-                return tokens;
-            std::vector<Parser::Token> unusedTokens;
-            for( std::size_t i = 0; i < tokens.size(); ++i ) {
-                Parser::Token const& token = tokens[i];
-                if( token.type == Parser::Token::Positional )
-                    m_floatingArg->boundField.set( config, token.data );
-                else
-                    unusedTokens.push_back( token );
-            }
-            return unusedTokens;
-        }
-
-        void validate() const
-        {
-            if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() )
-                throw std::logic_error( "No options or arguments specified" );
-
-            for( typename std::vector<Arg>::const_iterator  it = m_options.begin(),
-                                                            itEnd = m_options.end();
-                    it != itEnd; ++it )
-                it->validate();
-        }
-
-    private:
-        Detail::BoundArgFunction<ConfigT> m_boundProcessName;
-        std::vector<Arg> m_options;
-        std::map<int, Arg> m_positionalArgs;
-        ArgAutoPtr m_floatingArg;
-        int m_highestSpecifiedArgPosition;
-        bool m_throwOnUnrecognisedTokens;
-    };
-
-} // end namespace Clara
-
-STITCH_CLARA_CLOSE_NAMESPACE
-#undef STITCH_CLARA_OPEN_NAMESPACE
-#undef STITCH_CLARA_CLOSE_NAMESPACE
-
-#endif // TWOBLUECUBES_CLARA_H_INCLUDED
-#undef STITCH_CLARA_OPEN_NAMESPACE
-
-// Restore Clara's value for console width, if present
-#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
-#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
-#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
-#endif
-
-#include <fstream>
-
-namespace Catch {
-
-    inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; }
-    inline void abortAfterX( ConfigData& config, int x ) {
-        if( x < 1 )
-            throw std::runtime_error( "Value after -x or --abortAfter must be greater than zero" );
-        config.abortAfter = x;
-    }
-    inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); }
-    inline void addReporterName( ConfigData& config, std::string const& _reporterName ) { config.reporterNames.push_back( _reporterName ); }
-
-    inline void addWarning( ConfigData& config, std::string const& _warning ) {
-        if( _warning == "NoAssertions" )
-            config.warnings = static_cast<WarnAbout::What>( config.warnings | WarnAbout::NoAssertions );
-        else
-            throw std::runtime_error( "Unrecognised warning: '" + _warning + "'" );
-    }
-    inline void setOrder( ConfigData& config, std::string const& order ) {
-        if( startsWith( "declared", order ) )
-            config.runOrder = RunTests::InDeclarationOrder;
-        else if( startsWith( "lexical", order ) )
-            config.runOrder = RunTests::InLexicographicalOrder;
-        else if( startsWith( "random", order ) )
-            config.runOrder = RunTests::InRandomOrder;
-        else
-            throw std::runtime_error( "Unrecognised ordering: '" + order + "'" );
-    }
-    inline void setRngSeed( ConfigData& config, std::string const& seed ) {
-        if( seed == "time" ) {
-            config.rngSeed = static_cast<unsigned int>( std::time(0) );
-        }
-        else {
-            std::stringstream ss;
-            ss << seed;
-            ss >> config.rngSeed;
-            if( ss.fail() )
-                throw std::runtime_error( "Argment to --rng-seed should be the word 'time' or a number" );
-        }
-    }
-    inline void setVerbosity( ConfigData& config, int level ) {
-        // !TBD: accept strings?
-        config.verbosity = static_cast<Verbosity::Level>( level );
-    }
-    inline void setShowDurations( ConfigData& config, bool _showDurations ) {
-        config.showDurations = _showDurations
-            ? ShowDurations::Always
-            : ShowDurations::Never;
-    }
-    inline void setUseColour( ConfigData& config, std::string const& value ) {
-        std::string mode = toLower( value );
-
-        if( mode == "yes" )
-            config.useColour = UseColour::Yes;
-        else if( mode == "no" )
-            config.useColour = UseColour::No;
-        else if( mode == "auto" )
-            config.useColour = UseColour::Auto;
-        else
-            throw std::runtime_error( "colour mode must be one of: auto, yes or no" );
-    }
-    inline void forceColour( ConfigData& config ) {
-        config.useColour = UseColour::Yes;
-    }
-    inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) {
-        std::ifstream f( _filename.c_str() );
-        if( !f.is_open() )
-            throw std::domain_error( "Unable to load input file: " + _filename );
-
-        std::string line;
-        while( std::getline( f, line ) ) {
-            line = trim(line);
-            if( !line.empty() && !startsWith( line, "#" ) ) {
-                if( !startsWith( line, "\"" ) )
-                    line = "\"" + line + "\"";
-                addTestOrTags( config, line + "," );
-            }
-        }
-    }
-
-    inline Clara::CommandLine<ConfigData> makeCommandLineParser() {
-
-        using namespace Clara;
-        CommandLine<ConfigData> cli;
-
-        cli.bindProcessName( &ConfigData::processName );
-
-        cli["-?"]["-h"]["--help"]
-            .describe( "display usage information" )
-            .bind( &ConfigData::showHelp );
-
-        cli["-l"]["--list-tests"]
-            .describe( "list all/matching test cases" )
-            .bind( &ConfigData::listTests );
-
-        cli["-t"]["--list-tags"]
-            .describe( "list all/matching tags" )
-            .bind( &ConfigData::listTags );
-
-        cli["-s"]["--success"]
-            .describe( "include successful tests in output" )
-            .bind( &ConfigData::showSuccessfulTests );
-
-        cli["-b"]["--break"]
-            .describe( "break into debugger on failure" )
-            .bind( &ConfigData::shouldDebugBreak );
-
-        cli["-e"]["--nothrow"]
-            .describe( "skip exception tests" )
-            .bind( &ConfigData::noThrow );
-
-        cli["-i"]["--invisibles"]
-            .describe( "show invisibles (tabs, newlines)" )
-            .bind( &ConfigData::showInvisibles );
-
-        cli["-o"]["--out"]
-            .describe( "output filename" )
-            .bind( &ConfigData::outputFilename, "filename" );
-
-        cli["-r"]["--reporter"]
-//            .placeholder( "name[:filename]" )
-            .describe( "reporter to use (defaults to console)" )
-            .bind( &addReporterName, "name" );
-
-        cli["-n"]["--name"]
-            .describe( "suite name" )
-            .bind( &ConfigData::name, "name" );
-
-        cli["-a"]["--abort"]
-            .describe( "abort at first failure" )
-            .bind( &abortAfterFirst );
-
-        cli["-x"]["--abortx"]
-            .describe( "abort after x failures" )
-            .bind( &abortAfterX, "no. failures" );
-
-        cli["-w"]["--warn"]
-            .describe( "enable warnings" )
-            .bind( &addWarning, "warning name" );
-
-// - needs updating if reinstated
-//        cli.into( &setVerbosity )
-//            .describe( "level of verbosity (0=no output)" )
-//            .shortOpt( "v")
-//            .longOpt( "verbosity" )
-//            .placeholder( "level" );
-
-        cli[_]
-            .describe( "which test or tests to use" )
-            .bind( &addTestOrTags, "test name, pattern or tags" );
-
-        cli["-d"]["--durations"]
-            .describe( "show test durations" )
-            .bind( &setShowDurations, "yes|no" );
-
-        cli["-f"]["--input-file"]
-            .describe( "load test names to run from a file" )
-            .bind( &loadTestNamesFromFile, "filename" );
-
-        cli["-#"]["--filenames-as-tags"]
-            .describe( "adds a tag for the filename" )
-            .bind( &ConfigData::filenamesAsTags );
-
-        // Less common commands which don't have a short form
-        cli["--list-test-names-only"]
-            .describe( "list all/matching test cases names only" )
-            .bind( &ConfigData::listTestNamesOnly );
-
-        cli["--list-reporters"]
-            .describe( "list all reporters" )
-            .bind( &ConfigData::listReporters );
-
-        cli["--order"]
-            .describe( "test case order (defaults to decl)" )
-            .bind( &setOrder, "decl|lex|rand" );
-
-        cli["--rng-seed"]
-            .describe( "set a specific seed for random numbers" )
-            .bind( &setRngSeed, "'time'|number" );
-
-        cli["--force-colour"]
-            .describe( "force colourised output (deprecated)" )
-            .bind( &forceColour );
-
-        cli["--use-colour"]
-            .describe( "should output be colourised" )
-            .bind( &setUseColour, "yes|no" );
-
-        return cli;
-    }
-
-} // end namespace Catch
-
-// #included from: internal/catch_list.hpp
-#define TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED
-
-// #included from: catch_text.h
-#define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED
-
-#define TBC_TEXT_FORMAT_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
-
-#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Catch
-// #included from: ../external/tbc_text_format.h
-// Only use header guard if we are not using an outer namespace
-#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
-#  ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
-#   define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
-#  endif
-# else
-#  define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
-# endif
-#endif
-#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
-#include <string>
-#include <vector>
-#include <sstream>
-
-// Use optional outer namespace
-#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
-#endif
-
-namespace Tbc {
-
-#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
-    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
-#else
-    const unsigned int consoleWidth = 80;
-#endif
-
-    struct TextAttributes {
-        TextAttributes()
-        :   initialIndent( std::string::npos ),
-            indent( 0 ),
-            width( consoleWidth-1 ),
-            tabChar( '\t' )
-        {}
-
-        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
-        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
-        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
-        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
-
-        std::size_t initialIndent;  // indent of first line, or npos
-        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
-        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
-        char tabChar;               // If this char is seen the indent is changed to current pos
-    };
-
-    class Text {
-    public:
-        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
-        : attr( _attr )
-        {
-            std::string wrappableChars = " [({.,/|\\-";
-            std::size_t indent = _attr.initialIndent != std::string::npos
-                ? _attr.initialIndent
-                : _attr.indent;
-            std::string remainder = _str;
-
-            while( !remainder.empty() ) {
-                if( lines.size() >= 1000 ) {
-                    lines.push_back( "... message truncated due to excessive size" );
-                    return;
-                }
-                std::size_t tabPos = std::string::npos;
-                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
-                std::size_t pos = remainder.find_first_of( '\n' );
-                if( pos <= width ) {
-                    width = pos;
-                }
-                pos = remainder.find_last_of( _attr.tabChar, width );
-                if( pos != std::string::npos ) {
-                    tabPos = pos;
-                    if( remainder[width] == '\n' )
-                        width--;
-                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
-                }
-
-                if( width == remainder.size() ) {
-                    spliceLine( indent, remainder, width );
-                }
-                else if( remainder[width] == '\n' ) {
-                    spliceLine( indent, remainder, width );
-                    if( width <= 1 || remainder.size() != 1 )
-                        remainder = remainder.substr( 1 );
-                    indent = _attr.indent;
-                }
-                else {
-                    pos = remainder.find_last_of( wrappableChars, width );
-                    if( pos != std::string::npos && pos > 0 ) {
-                        spliceLine( indent, remainder, pos );
-                        if( remainder[0] == ' ' )
-                            remainder = remainder.substr( 1 );
-                    }
-                    else {
-                        spliceLine( indent, remainder, width-1 );
-                        lines.back() += "-";
-                    }
-                    if( lines.size() == 1 )
-                        indent = _attr.indent;
-                    if( tabPos != std::string::npos )
-                        indent += tabPos;
-                }
-            }
-        }
-
-        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
-            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
-            _remainder = _remainder.substr( _pos );
-        }
-
-        typedef std::vector<std::string>::const_iterator const_iterator;
-
-        const_iterator begin() const { return lines.begin(); }
-        const_iterator end() const { return lines.end(); }
-        std::string const& last() const { return lines.back(); }
-        std::size_t size() const { return lines.size(); }
-        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
-        std::string toString() const {
-            std::ostringstream oss;
-            oss << *this;
-            return oss.str();
-        }
-
-        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
-            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
-                it != itEnd; ++it ) {
-                if( it != _text.begin() )
-                    _stream << "\n";
-                _stream << *it;
-            }
-            return _stream;
-        }
-
-    private:
-        std::string str;
-        TextAttributes attr;
-        std::vector<std::string> lines;
-    };
-
-} // end namespace Tbc
-
-#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-} // end outer namespace
-#endif
-
-#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
-#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-
-namespace Catch {
-    using Tbc::Text;
-    using Tbc::TextAttributes;
-}
-
-// #included from: catch_console_colour.hpp
-#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED
-
-namespace Catch {
-
-    struct Colour {
-        enum Code {
-            None = 0,
-
-            White,
-            Red,
-            Green,
-            Blue,
-            Cyan,
-            Yellow,
-            Grey,
-
-            Bright = 0x10,
-
-            BrightRed = Bright | Red,
-            BrightGreen = Bright | Green,
-            LightGrey = Bright | Grey,
-            BrightWhite = Bright | White,
-
-            // By intention
-            FileName = LightGrey,
-            Warning = Yellow,
-            ResultError = BrightRed,
-            ResultSuccess = BrightGreen,
-            ResultExpectedFailure = Warning,
-
-            Error = BrightRed,
-            Success = Green,
-
-            OriginalExpression = Cyan,
-            ReconstructedExpression = Yellow,
-
-            SecondaryText = LightGrey,
-            Headers = White
-        };
-
-        // Use constructed object for RAII guard
-        Colour( Code _colourCode );
-        Colour( Colour const& other );
-        ~Colour();
-
-        // Use static method for one-shot changes
-        static void use( Code _colourCode );
-
-    private:
-        bool m_moved;
-    };
-
-    inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; }
-
-} // end namespace Catch
-
-// #included from: catch_interfaces_reporter.h
-#define TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED
-
-#include <string>
-#include <ostream>
-#include <map>
-#include <assert.h>
-
-namespace Catch
-{
-    struct ReporterConfig {
-        explicit ReporterConfig( Ptr<IConfig const> const& _fullConfig )
-        :   m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {}
-
-        ReporterConfig( Ptr<IConfig const> const& _fullConfig, std::ostream& _stream )
-        :   m_stream( &_stream ), m_fullConfig( _fullConfig ) {}
-
-        std::ostream& stream() const    { return *m_stream; }
-        Ptr<IConfig const> fullConfig() const { return m_fullConfig; }
-
-    private:
-        std::ostream* m_stream;
-        Ptr<IConfig const> m_fullConfig;
-    };
-
-    struct ReporterPreferences {
-        ReporterPreferences()
-        : shouldRedirectStdOut( false )
-        {}
-
-        bool shouldRedirectStdOut;
-    };
-
-    template<typename T>
-    struct LazyStat : Option<T> {
-        LazyStat() : used( false ) {}
-        LazyStat& operator=( T const& _value ) {
-            Option<T>::operator=( _value );
-            used = false;
-            return *this;
-        }
-        void reset() {
-            Option<T>::reset();
-            used = false;
-        }
-        bool used;
-    };
-
-    struct TestRunInfo {
-        TestRunInfo( std::string const& _name ) : name( _name ) {}
-        std::string name;
-    };
-    struct GroupInfo {
-        GroupInfo(  std::string const& _name,
-                    std::size_t _groupIndex,
-                    std::size_t _groupsCount )
-        :   name( _name ),
-            groupIndex( _groupIndex ),
-            groupsCounts( _groupsCount )
-        {}
-
-        std::string name;
-        std::size_t groupIndex;
-        std::size_t groupsCounts;
-    };
-
-    struct AssertionStats {
-        AssertionStats( AssertionResult const& _assertionResult,
-                        std::vector<MessageInfo> const& _infoMessages,
-                        Totals const& _totals )
-        :   assertionResult( _assertionResult ),
-            infoMessages( _infoMessages ),
-            totals( _totals )
-        {
-            if( assertionResult.hasMessage() ) {
-                // Copy message into messages list.
-                // !TBD This should have been done earlier, somewhere
-                MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() );
-                builder << assertionResult.getMessage();
-                builder.m_info.message = builder.m_stream.str();
-
-                infoMessages.push_back( builder.m_info );
-            }
-        }
-        virtual ~AssertionStats();
-
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        AssertionStats( AssertionStats const& )              = default;
-        AssertionStats( AssertionStats && )                  = default;
-        AssertionStats& operator = ( AssertionStats const& ) = default;
-        AssertionStats& operator = ( AssertionStats && )     = default;
-#  endif
-
-        AssertionResult assertionResult;
-        std::vector<MessageInfo> infoMessages;
-        Totals totals;
-    };
-
-    struct SectionStats {
-        SectionStats(   SectionInfo const& _sectionInfo,
-                        Counts const& _assertions,
-                        double _durationInSeconds,
-                        bool _missingAssertions )
-        :   sectionInfo( _sectionInfo ),
-            assertions( _assertions ),
-            durationInSeconds( _durationInSeconds ),
-            missingAssertions( _missingAssertions )
-        {}
-        virtual ~SectionStats();
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        SectionStats( SectionStats const& )              = default;
-        SectionStats( SectionStats && )                  = default;
-        SectionStats& operator = ( SectionStats const& ) = default;
-        SectionStats& operator = ( SectionStats && )     = default;
-#  endif
-
-        SectionInfo sectionInfo;
-        Counts assertions;
-        double durationInSeconds;
-        bool missingAssertions;
-    };
-
-    struct TestCaseStats {
-        TestCaseStats(  TestCaseInfo const& _testInfo,
-                        Totals const& _totals,
-                        std::string const& _stdOut,
-                        std::string const& _stdErr,
-                        bool _aborting )
-        : testInfo( _testInfo ),
-            totals( _totals ),
-            stdOut( _stdOut ),
-            stdErr( _stdErr ),
-            aborting( _aborting )
-        {}
-        virtual ~TestCaseStats();
-
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        TestCaseStats( TestCaseStats const& )              = default;
-        TestCaseStats( TestCaseStats && )                  = default;
-        TestCaseStats& operator = ( TestCaseStats const& ) = default;
-        TestCaseStats& operator = ( TestCaseStats && )     = default;
-#  endif
-
-        TestCaseInfo testInfo;
-        Totals totals;
-        std::string stdOut;
-        std::string stdErr;
-        bool aborting;
-    };
-
-    struct TestGroupStats {
-        TestGroupStats( GroupInfo const& _groupInfo,
-                        Totals const& _totals,
-                        bool _aborting )
-        :   groupInfo( _groupInfo ),
-            totals( _totals ),
-            aborting( _aborting )
-        {}
-        TestGroupStats( GroupInfo const& _groupInfo )
-        :   groupInfo( _groupInfo ),
-            aborting( false )
-        {}
-        virtual ~TestGroupStats();
-
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        TestGroupStats( TestGroupStats const& )              = default;
-        TestGroupStats( TestGroupStats && )                  = default;
-        TestGroupStats& operator = ( TestGroupStats const& ) = default;
-        TestGroupStats& operator = ( TestGroupStats && )     = default;
-#  endif
-
-        GroupInfo groupInfo;
-        Totals totals;
-        bool aborting;
-    };
-
-    struct TestRunStats {
-        TestRunStats(   TestRunInfo const& _runInfo,
-                        Totals const& _totals,
-                        bool _aborting )
-        :   runInfo( _runInfo ),
-            totals( _totals ),
-            aborting( _aborting )
-        {}
-        virtual ~TestRunStats();
-
-#  ifndef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        TestRunStats( TestRunStats const& _other )
-        :   runInfo( _other.runInfo ),
-            totals( _other.totals ),
-            aborting( _other.aborting )
-        {}
-#  else
-        TestRunStats( TestRunStats const& )              = default;
-        TestRunStats( TestRunStats && )                  = default;
-        TestRunStats& operator = ( TestRunStats const& ) = default;
-        TestRunStats& operator = ( TestRunStats && )     = default;
-#  endif
-
-        TestRunInfo runInfo;
-        Totals totals;
-        bool aborting;
-    };
-
-    class MultipleReporters;
-
-    struct IStreamingReporter : IShared {
-        virtual ~IStreamingReporter();
-
-        // Implementing class must also provide the following static method:
-        // static std::string getDescription();
-
-        virtual ReporterPreferences getPreferences() const = 0;
-
-        virtual void noMatchingTestCases( std::string const& spec ) = 0;
-
-        virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0;
-        virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0;
-
-        virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0;
-        virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0;
-
-        virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0;
-
-        // The return value indicates if the messages buffer should be cleared:
-        virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0;
-
-        virtual void sectionEnded( SectionStats const& sectionStats ) = 0;
-        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0;
-        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0;
-        virtual void testRunEnded( TestRunStats const& testRunStats ) = 0;
-
-        virtual void skipTest( TestCaseInfo const& testInfo ) = 0;
-
-        virtual MultipleReporters* tryAsMulti() { return CATCH_NULL; }
-    };
-
-    struct IReporterFactory : IShared {
-        virtual ~IReporterFactory();
-        virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0;
-        virtual std::string getDescription() const = 0;
-    };
-
-    struct IReporterRegistry {
-        typedef std::map<std::string, Ptr<IReporterFactory> > FactoryMap;
-        typedef std::vector<Ptr<IReporterFactory> > Listeners;
-
-        virtual ~IReporterRegistry();
-        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const = 0;
-        virtual FactoryMap const& getFactories() const = 0;
-        virtual Listeners const& getListeners() const = 0;
-    };
-
-    Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter );
-
-}
-
-#include <limits>
-#include <algorithm>
-
-namespace Catch {
-
-    inline std::size_t listTests( Config const& config ) {
-
-        TestSpec testSpec = config.testSpec();
-        if( config.testSpec().hasFilters() )
-            Catch::cout() << "Matching test cases:\n";
-        else {
-            Catch::cout() << "All available test cases:\n";
-            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
-        }
-
-        std::size_t matchedTests = 0;
-        TextAttributes nameAttr, tagsAttr;
-        nameAttr.setInitialIndent( 2 ).setIndent( 4 );
-        tagsAttr.setIndent( 6 );
-
-        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
-        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
-                it != itEnd;
-                ++it ) {
-            matchedTests++;
-            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
-            Colour::Code colour = testCaseInfo.isHidden()
-                ? Colour::SecondaryText
-                : Colour::None;
-            Colour colourGuard( colour );
-
-            Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl;
-            if( !testCaseInfo.tags.empty() )
-                Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl;
-        }
-
-        if( !config.testSpec().hasFilters() )
-            Catch::cout() << pluralise( matchedTests, "test case" ) << "\n" << std::endl;
-        else
-            Catch::cout() << pluralise( matchedTests, "matching test case" ) << "\n" << std::endl;
-        return matchedTests;
-    }
-
-    inline std::size_t listTestsNamesOnly( Config const& config ) {
-        TestSpec testSpec = config.testSpec();
-        if( !config.testSpec().hasFilters() )
-            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
-        std::size_t matchedTests = 0;
-        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
-        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
-                it != itEnd;
-                ++it ) {
-            matchedTests++;
-            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
-            if( startsWith( testCaseInfo.name, "#" ) )
-               Catch::cout() << "\"" << testCaseInfo.name << "\"" << std::endl;
-            else
-               Catch::cout() << testCaseInfo.name << std::endl;
-        }
-        return matchedTests;
-    }
-
-    struct TagInfo {
-        TagInfo() : count ( 0 ) {}
-        void add( std::string const& spelling ) {
-            ++count;
-            spellings.insert( spelling );
-        }
-        std::string all() const {
-            std::string out;
-            for( std::set<std::string>::const_iterator it = spellings.begin(), itEnd = spellings.end();
-                        it != itEnd;
-                        ++it )
-                out += "[" + *it + "]";
-            return out;
-        }
-        std::set<std::string> spellings;
-        std::size_t count;
-    };
-
-    inline std::size_t listTags( Config const& config ) {
-        TestSpec testSpec = config.testSpec();
-        if( config.testSpec().hasFilters() )
-            Catch::cout() << "Tags for matching test cases:\n";
-        else {
-            Catch::cout() << "All available tags:\n";
-            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
-        }
-
-        std::map<std::string, TagInfo> tagCounts;
-
-        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
-        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
-                it != itEnd;
-                ++it ) {
-            for( std::set<std::string>::const_iterator  tagIt = it->getTestCaseInfo().tags.begin(),
-                                                        tagItEnd = it->getTestCaseInfo().tags.end();
-                    tagIt != tagItEnd;
-                    ++tagIt ) {
-                std::string tagName = *tagIt;
-                std::string lcaseTagName = toLower( tagName );
-                std::map<std::string, TagInfo>::iterator countIt = tagCounts.find( lcaseTagName );
-                if( countIt == tagCounts.end() )
-                    countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first;
-                countIt->second.add( tagName );
-            }
-        }
-
-        for( std::map<std::string, TagInfo>::const_iterator countIt = tagCounts.begin(),
-                                                            countItEnd = tagCounts.end();
-                countIt != countItEnd;
-                ++countIt ) {
-            std::ostringstream oss;
-            oss << "  " << std::setw(2) << countIt->second.count << "  ";
-            Text wrapper( countIt->second.all(), TextAttributes()
-                                                    .setInitialIndent( 0 )
-                                                    .setIndent( oss.str().size() )
-                                                    .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) );
-            Catch::cout() << oss.str() << wrapper << "\n";
-        }
-        Catch::cout() << pluralise( tagCounts.size(), "tag" ) << "\n" << std::endl;
-        return tagCounts.size();
-    }
-
-    inline std::size_t listReporters( Config const& /*config*/ ) {
-        Catch::cout() << "Available reporters:\n";
-        IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories();
-        IReporterRegistry::FactoryMap::const_iterator itBegin = factories.begin(), itEnd = factories.end(), it;
-        std::size_t maxNameLen = 0;
-        for(it = itBegin; it != itEnd; ++it )
-            maxNameLen = (std::max)( maxNameLen, it->first.size() );
-
-        for(it = itBegin; it != itEnd; ++it ) {
-            Text wrapper( it->second->getDescription(), TextAttributes()
-                                                        .setInitialIndent( 0 )
-                                                        .setIndent( 7+maxNameLen )
-                                                        .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) );
-            Catch::cout() << "  "
-                    << it->first
-                    << ":"
-                    << std::string( maxNameLen - it->first.size() + 2, ' ' )
-                    << wrapper << "\n";
-        }
-        Catch::cout() << std::endl;
-        return factories.size();
-    }
-
-    inline Option<std::size_t> list( Config const& config ) {
-        Option<std::size_t> listedCount;
-        if( config.listTests() )
-            listedCount = listedCount.valueOr(0) + listTests( config );
-        if( config.listTestNamesOnly() )
-            listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config );
-        if( config.listTags() )
-            listedCount = listedCount.valueOr(0) + listTags( config );
-        if( config.listReporters() )
-            listedCount = listedCount.valueOr(0) + listReporters( config );
-        return listedCount;
-    }
-
-} // end namespace Catch
-
-// #included from: internal/catch_run_context.hpp
-#define TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED
-
-// #included from: catch_test_case_tracker.hpp
-#define TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED
-
-#include <map>
-#include <string>
-#include <assert.h>
-#include <vector>
-
-namespace Catch {
-namespace TestCaseTracking {
-
-    struct ITracker : SharedImpl<> {
-        virtual ~ITracker();
-
-        // static queries
-        virtual std::string name() const = 0;
-
-        // dynamic queries
-        virtual bool isComplete() const = 0; // Successfully completed or failed
-        virtual bool isSuccessfullyCompleted() const = 0;
-        virtual bool isOpen() const = 0; // Started but not complete
-        virtual bool hasChildren() const = 0;
-
-        virtual ITracker& parent() = 0;
-
-        // actions
-        virtual void close() = 0; // Successfully complete
-        virtual void fail() = 0;
-        virtual void markAsNeedingAnotherRun() = 0;
-
-        virtual void addChild( Ptr<ITracker> const& child ) = 0;
-        virtual ITracker* findChild( std::string const& name ) = 0;
-        virtual void openChild() = 0;
-
-        // Debug/ checking
-        virtual bool isSectionTracker() const = 0;
-        virtual bool isIndexTracker() const = 0;
-    };
-
-    class TrackerContext {
-
-        enum RunState {
-            NotStarted,
-            Executing,
-            CompletedCycle
-        };
-
-        Ptr<ITracker> m_rootTracker;
-        ITracker* m_currentTracker;
-        RunState m_runState;
-
-    public:
-
-        static TrackerContext& instance() {
-            static TrackerContext s_instance;
-            return s_instance;
-        }
-
-        TrackerContext()
-        :   m_currentTracker( CATCH_NULL ),
-            m_runState( NotStarted )
-        {}
-
-        ITracker& startRun();
-
-        void endRun() {
-            m_rootTracker.reset();
-            m_currentTracker = CATCH_NULL;
-            m_runState = NotStarted;
-        }
-
-        void startCycle() {
-            m_currentTracker = m_rootTracker.get();
-            m_runState = Executing;
-        }
-        void completeCycle() {
-            m_runState = CompletedCycle;
-        }
-
-        bool completedCycle() const {
-            return m_runState == CompletedCycle;
-        }
-        ITracker& currentTracker() {
-            return *m_currentTracker;
-        }
-        void setCurrentTracker( ITracker* tracker ) {
-            m_currentTracker = tracker;
-        }
-    };
-
-    class TrackerBase : public ITracker {
-    protected:
-        enum CycleState {
-            NotStarted,
-            Executing,
-            ExecutingChildren,
-            NeedsAnotherRun,
-            CompletedSuccessfully,
-            Failed
-        };
-        class TrackerHasName {
-            std::string m_name;
-        public:
-            TrackerHasName( std::string const& name ) : m_name( name ) {}
-            bool operator ()( Ptr<ITracker> const& tracker ) {
-                return tracker->name() == m_name;
-            }
-        };
-        typedef std::vector<Ptr<ITracker> > Children;
-        std::string m_name;
-        TrackerContext& m_ctx;
-        ITracker* m_parent;
-        Children m_children;
-        CycleState m_runState;
-    public:
-        TrackerBase( std::string const& name, TrackerContext& ctx, ITracker* parent )
-        :   m_name( name ),
-            m_ctx( ctx ),
-            m_parent( parent ),
-            m_runState( NotStarted )
-        {}
-        virtual ~TrackerBase();
-
-        virtual std::string name() const CATCH_OVERRIDE {
-            return m_name;
-        }
-        virtual bool isComplete() const CATCH_OVERRIDE {
-            return m_runState == CompletedSuccessfully || m_runState == Failed;
-        }
-        virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE {
-            return m_runState == CompletedSuccessfully;
-        }
-        virtual bool isOpen() const CATCH_OVERRIDE {
-            return m_runState != NotStarted && !isComplete();
-        }
-        virtual bool hasChildren() const CATCH_OVERRIDE {
-            return !m_children.empty();
-        }
-
-        virtual void addChild( Ptr<ITracker> const& child ) CATCH_OVERRIDE {
-            m_children.push_back( child );
-        }
-
-        virtual ITracker* findChild( std::string const& name ) CATCH_OVERRIDE {
-            Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( name ) );
-            return( it != m_children.end() )
-                ? it->get()
-                : CATCH_NULL;
-        }
-        virtual ITracker& parent() CATCH_OVERRIDE {
-            assert( m_parent ); // Should always be non-null except for root
-            return *m_parent;
-        }
-
-        virtual void openChild() CATCH_OVERRIDE {
-            if( m_runState != ExecutingChildren ) {
-                m_runState = ExecutingChildren;
-                if( m_parent )
-                    m_parent->openChild();
-            }
-        }
-
-        virtual bool isSectionTracker() const CATCH_OVERRIDE { return false; }
-        virtual bool isIndexTracker() const CATCH_OVERRIDE { return false; }
-
-        void open() {
-            m_runState = Executing;
-            moveToThis();
-            if( m_parent )
-                m_parent->openChild();
-        }
-
-        virtual void close() CATCH_OVERRIDE {
-
-            // Close any still open children (e.g. generators)
-            while( &m_ctx.currentTracker() != this )
-                m_ctx.currentTracker().close();
-
-            switch( m_runState ) {
-                case NotStarted:
-                case CompletedSuccessfully:
-                case Failed:
-                    throw std::logic_error( "Illogical state" );
-
-                case NeedsAnotherRun:
-                    break;;
-
-                case Executing:
-                    m_runState = CompletedSuccessfully;
-                    break;
-                case ExecutingChildren:
-                    if( m_children.empty() || m_children.back()->isComplete() )
-                        m_runState = CompletedSuccessfully;
-                    break;
-
-                default:
-                    throw std::logic_error( "Unexpected state" );
-            }
-            moveToParent();
-            m_ctx.completeCycle();
-        }
-        virtual void fail() CATCH_OVERRIDE {
-            m_runState = Failed;
-            if( m_parent )
-                m_parent->markAsNeedingAnotherRun();
-            moveToParent();
-            m_ctx.completeCycle();
-        }
-        virtual void markAsNeedingAnotherRun() CATCH_OVERRIDE {
-            m_runState = NeedsAnotherRun;
-        }
-    private:
-        void moveToParent() {
-            assert( m_parent );
-            m_ctx.setCurrentTracker( m_parent );
-        }
-        void moveToThis() {
-            m_ctx.setCurrentTracker( this );
-        }
-    };
-
-    class SectionTracker : public TrackerBase {
-    public:
-        SectionTracker( std::string const& name, TrackerContext& ctx, ITracker* parent )
-        :   TrackerBase( name, ctx, parent )
-        {}
-        virtual ~SectionTracker();
-
-        virtual bool isSectionTracker() const CATCH_OVERRIDE { return true; }
-
-        static SectionTracker& acquire( TrackerContext& ctx, std::string const& name ) {
-            SectionTracker* section = CATCH_NULL;
-
-            ITracker& currentTracker = ctx.currentTracker();
-            if( ITracker* childTracker = currentTracker.findChild( name ) ) {
-                assert( childTracker );
-                assert( childTracker->isSectionTracker() );
-                section = static_cast<SectionTracker*>( childTracker );
-            }
-            else {
-                section = new SectionTracker( name, ctx, &currentTracker );
-                currentTracker.addChild( section );
-            }
-            if( !ctx.completedCycle() && !section->isComplete() ) {
-
-                section->open();
-            }
-            return *section;
-        }
-    };
-
-    class IndexTracker : public TrackerBase {
-        int m_size;
-        int m_index;
-    public:
-        IndexTracker( std::string const& name, TrackerContext& ctx, ITracker* parent, int size )
-        :   TrackerBase( name, ctx, parent ),
-            m_size( size ),
-            m_index( -1 )
-        {}
-        virtual ~IndexTracker();
-
-        virtual bool isIndexTracker() const CATCH_OVERRIDE { return true; }
-
-        static IndexTracker& acquire( TrackerContext& ctx, std::string const& name, int size ) {
-            IndexTracker* tracker = CATCH_NULL;
-
-            ITracker& currentTracker = ctx.currentTracker();
-            if( ITracker* childTracker = currentTracker.findChild( name ) ) {
-                assert( childTracker );
-                assert( childTracker->isIndexTracker() );
-                tracker = static_cast<IndexTracker*>( childTracker );
-            }
-            else {
-                tracker = new IndexTracker( name, ctx, &currentTracker, size );
-                currentTracker.addChild( tracker );
-            }
-
-            if( !ctx.completedCycle() && !tracker->isComplete() ) {
-                if( tracker->m_runState != ExecutingChildren && tracker->m_runState != NeedsAnotherRun )
-                    tracker->moveNext();
-                tracker->open();
-            }
-
-            return *tracker;
-        }
-
-        int index() const { return m_index; }
-
-        void moveNext() {
-            m_index++;
-            m_children.clear();
-        }
-
-        virtual void close() CATCH_OVERRIDE {
-            TrackerBase::close();
-            if( m_runState == CompletedSuccessfully && m_index < m_size-1 )
-                m_runState = Executing;
-        }
-    };
-
-    inline ITracker& TrackerContext::startRun() {
-        m_rootTracker = new SectionTracker( "{root}", *this, CATCH_NULL );
-        m_currentTracker = CATCH_NULL;
-        m_runState = Executing;
-        return *m_rootTracker;
-    }
-
-} // namespace TestCaseTracking
-
-using TestCaseTracking::ITracker;
-using TestCaseTracking::TrackerContext;
-using TestCaseTracking::SectionTracker;
-using TestCaseTracking::IndexTracker;
-
-} // namespace Catch
-
-// #included from: catch_fatal_condition.hpp
-#define TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED
-
-namespace Catch {
-
-    // Report the error condition then exit the process
-    inline void fatal( std::string const& message, int exitCode ) {
-        IContext& context = Catch::getCurrentContext();
-        IResultCapture* resultCapture = context.getResultCapture();
-        resultCapture->handleFatalErrorCondition( message );
-
-		if( Catch::alwaysTrue() ) // avoids "no return" warnings
-            exit( exitCode );
-    }
-
-} // namespace Catch
-
-#if defined ( CATCH_PLATFORM_WINDOWS ) /////////////////////////////////////////
-
-namespace Catch {
-
-    struct FatalConditionHandler {
-		void reset() {}
-	};
-
-} // namespace Catch
-
-#else // Not Windows - assumed to be POSIX compatible //////////////////////////
-
-#include <signal.h>
-
-namespace Catch {
-
-    struct SignalDefs { int id; const char* name; };
-    extern SignalDefs signalDefs[];
-    SignalDefs signalDefs[] = {
-            { SIGINT,  "SIGINT - Terminal interrupt signal" },
-            { SIGILL,  "SIGILL - Illegal instruction signal" },
-            { SIGFPE,  "SIGFPE - Floating point error signal" },
-            { SIGSEGV, "SIGSEGV - Segmentation violation signal" },
-            { SIGTERM, "SIGTERM - Termination request signal" },
-            { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" }
-        };
-
-    struct FatalConditionHandler {
-
-        static void handleSignal( int sig ) {
-            for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i )
-                if( sig == signalDefs[i].id )
-                    fatal( signalDefs[i].name, -sig );
-            fatal( "<unknown signal>", -sig );
-        }
-
-        FatalConditionHandler() : m_isSet( true ) {
-            for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i )
-                signal( signalDefs[i].id, handleSignal );
-        }
-        ~FatalConditionHandler() {
-            reset();
-        }
-        void reset() {
-            if( m_isSet ) {
-                for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i )
-                    signal( signalDefs[i].id, SIG_DFL );
-                m_isSet = false;
-            }
-        }
-
-        bool m_isSet;
-    };
-
-} // namespace Catch
-
-#endif // not Windows
-
-#include <set>
-#include <string>
-
-namespace Catch {
-
-    class StreamRedirect {
-
-    public:
-        StreamRedirect( std::ostream& stream, std::string& targetString )
-        :   m_stream( stream ),
-            m_prevBuf( stream.rdbuf() ),
-            m_targetString( targetString )
-        {
-            stream.rdbuf( m_oss.rdbuf() );
-        }
-
-        ~StreamRedirect() {
-            m_targetString += m_oss.str();
-            m_stream.rdbuf( m_prevBuf );
-        }
-
-    private:
-        std::ostream& m_stream;
-        std::streambuf* m_prevBuf;
-        std::ostringstream m_oss;
-        std::string& m_targetString;
-    };
-
-    ///////////////////////////////////////////////////////////////////////////
-
-    class RunContext : public IResultCapture, public IRunner {
-
-        RunContext( RunContext const& );
-        void operator =( RunContext const& );
-
-    public:
-
-        explicit RunContext( Ptr<IConfig const> const& _config, Ptr<IStreamingReporter> const& reporter )
-        :   m_runInfo( _config->name() ),
-            m_context( getCurrentMutableContext() ),
-            m_activeTestCase( CATCH_NULL ),
-            m_config( _config ),
-            m_reporter( reporter )
-        {
-            m_context.setRunner( this );
-            m_context.setConfig( m_config );
-            m_context.setResultCapture( this );
-            m_reporter->testRunStarting( m_runInfo );
-        }
-
-        virtual ~RunContext() {
-            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) );
-        }
-
-        void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) {
-            m_reporter->testGroupStarting( GroupInfo( testSpec, groupIndex, groupsCount ) );
-        }
-        void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ) {
-            m_reporter->testGroupEnded( TestGroupStats( GroupInfo( testSpec, groupIndex, groupsCount ), totals, aborting() ) );
-        }
-
-        Totals runTest( TestCase const& testCase ) {
-            Totals prevTotals = m_totals;
-
-            std::string redirectedCout;
-            std::string redirectedCerr;
-
-            TestCaseInfo testInfo = testCase.getTestCaseInfo();
-
-            m_reporter->testCaseStarting( testInfo );
-
-            m_activeTestCase = &testCase;
-
-            do {
-                m_trackerContext.startRun();
-                do {
-                    m_trackerContext.startCycle();
-                    m_testCaseTracker = &SectionTracker::acquire( m_trackerContext, testInfo.name );
-                    runCurrentTest( redirectedCout, redirectedCerr );
-                }
-                while( !m_testCaseTracker->isSuccessfullyCompleted() && !aborting() );
-            }
-            // !TBD: deprecated - this will be replaced by indexed trackers
-            while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() );
-
-            Totals deltaTotals = m_totals.delta( prevTotals );
-            if( testInfo.expectedToFail() && deltaTotals.testCases.passed > 0 ) {
-                deltaTotals.assertions.failed++;
-                deltaTotals.testCases.passed--;
-                deltaTotals.testCases.failed++;
-            }
-            m_totals.testCases += deltaTotals.testCases;
-            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
-                                                        deltaTotals,
-                                                        redirectedCout,
-                                                        redirectedCerr,
-                                                        aborting() ) );
-
-            m_activeTestCase = CATCH_NULL;
-            m_testCaseTracker = CATCH_NULL;
-
-            return deltaTotals;
-        }
-
-        Ptr<IConfig const> config() const {
-            return m_config;
-        }
-
-    private: // IResultCapture
-
-        virtual void assertionEnded( AssertionResult const& result ) {
-            if( result.getResultType() == ResultWas::Ok ) {
-                m_totals.assertions.passed++;
-            }
-            else if( !result.isOk() ) {
-                m_totals.assertions.failed++;
-            }
-
-            if( m_reporter->assertionEnded( AssertionStats( result, m_messages, m_totals ) ) )
-                m_messages.clear();
-
-            // Reset working state
-            m_lastAssertionInfo = AssertionInfo( "", m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}" , m_lastAssertionInfo.resultDisposition );
-            m_lastResult = result;
-        }
-
-        virtual bool sectionStarted (
-            SectionInfo const& sectionInfo,
-            Counts& assertions
-        )
-        {
-            std::ostringstream oss;
-            oss << sectionInfo.name << "@" << sectionInfo.lineInfo;
-
-            ITracker& sectionTracker = SectionTracker::acquire( m_trackerContext, oss.str() );
-            if( !sectionTracker.isOpen() )
-                return false;
-            m_activeSections.push_back( &sectionTracker );
-
-            m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo;
-
-            m_reporter->sectionStarting( sectionInfo );
-
-            assertions = m_totals.assertions;
-
-            return true;
-        }
-        bool testForMissingAssertions( Counts& assertions ) {
-            if( assertions.total() != 0 )
-                return false;
-            if( !m_config->warnAboutMissingAssertions() )
-                return false;
-            if( m_trackerContext.currentTracker().hasChildren() )
-                return false;
-            m_totals.assertions.failed++;
-            assertions.failed++;
-            return true;
-        }
-
-        virtual void sectionEnded( SectionEndInfo const& endInfo ) {
-            Counts assertions = m_totals.assertions - endInfo.prevAssertions;
-            bool missingAssertions = testForMissingAssertions( assertions );
-
-            if( !m_activeSections.empty() ) {
-                m_activeSections.back()->close();
-                m_activeSections.pop_back();
-            }
-
-            m_reporter->sectionEnded( SectionStats( endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions ) );
-            m_messages.clear();
-        }
-
-        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) {
-            if( m_unfinishedSections.empty() )
-                m_activeSections.back()->fail();
-            else
-                m_activeSections.back()->close();
-            m_activeSections.pop_back();
-
-            m_unfinishedSections.push_back( endInfo );
-        }
-
-        virtual void pushScopedMessage( MessageInfo const& message ) {
-            m_messages.push_back( message );
-        }
-
-        virtual void popScopedMessage( MessageInfo const& message ) {
-            m_messages.erase( std::remove( m_messages.begin(), m_messages.end(), message ), m_messages.end() );
-        }
-
-        virtual std::string getCurrentTestName() const {
-            return m_activeTestCase
-                ? m_activeTestCase->getTestCaseInfo().name
-                : "";
-        }
-
-        virtual const AssertionResult* getLastResult() const {
-            return &m_lastResult;
-        }
-
-        virtual void handleFatalErrorCondition( std::string const& message ) {
-            ResultBuilder resultBuilder = makeUnexpectedResultBuilder();
-            resultBuilder.setResultType( ResultWas::FatalErrorCondition );
-            resultBuilder << message;
-            resultBuilder.captureExpression();
-
-            handleUnfinishedSections();
-
-            // Recreate section for test case (as we will lose the one that was in scope)
-            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
-            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
-
-            Counts assertions;
-            assertions.failed = 1;
-            SectionStats testCaseSectionStats( testCaseSection, assertions, 0, false );
-            m_reporter->sectionEnded( testCaseSectionStats );
-
-            TestCaseInfo testInfo = m_activeTestCase->getTestCaseInfo();
-
-            Totals deltaTotals;
-            deltaTotals.testCases.failed = 1;
-            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
-                                                        deltaTotals,
-                                                        "",
-                                                        "",
-                                                        false ) );
-            m_totals.testCases.failed++;
-            testGroupEnded( "", m_totals, 1, 1 );
-            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, false ) );
-        }
-
-    public:
-        // !TBD We need to do this another way!
-        bool aborting() const {
-            return m_totals.assertions.failed == static_cast<std::size_t>( m_config->abortAfter() );
-        }
-
-    private:
-
-        void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) {
-            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
-            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
-            m_reporter->sectionStarting( testCaseSection );
-            Counts prevAssertions = m_totals.assertions;
-            double duration = 0;
-            try {
-                m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, "", ResultDisposition::Normal );
-
-                seedRng( *m_config );
-
-                Timer timer;
-                timer.start();
-                if( m_reporter->getPreferences().shouldRedirectStdOut ) {
-                    StreamRedirect coutRedir( Catch::cout(), redirectedCout );
-                    StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr );
-                    invokeActiveTestCase();
-                }
-                else {
-                    invokeActiveTestCase();
-                }
-                duration = timer.getElapsedSeconds();
-            }
-            catch( TestFailureException& ) {
-                // This just means the test was aborted due to failure
-            }
-            catch(...) {
-                makeUnexpectedResultBuilder().useActiveException();
-            }
-            m_testCaseTracker->close();
-            handleUnfinishedSections();
-            m_messages.clear();
-
-            Counts assertions = m_totals.assertions - prevAssertions;
-            bool missingAssertions = testForMissingAssertions( assertions );
-
-            if( testCaseInfo.okToFail() ) {
-                std::swap( assertions.failedButOk, assertions.failed );
-                m_totals.assertions.failed -= assertions.failedButOk;
-                m_totals.assertions.failedButOk += assertions.failedButOk;
-            }
-
-            SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions );
-            m_reporter->sectionEnded( testCaseSectionStats );
-        }
-
-        void invokeActiveTestCase() {
-            FatalConditionHandler fatalConditionHandler; // Handle signals
-            m_activeTestCase->invoke();
-            fatalConditionHandler.reset();
-        }
-
-    private:
-
-        ResultBuilder makeUnexpectedResultBuilder() const {
-            return ResultBuilder(   m_lastAssertionInfo.macroName.c_str(),
-                                    m_lastAssertionInfo.lineInfo,
-                                    m_lastAssertionInfo.capturedExpression.c_str(),
-                                    m_lastAssertionInfo.resultDisposition );
-        }
-
-        void handleUnfinishedSections() {
-            // If sections ended prematurely due to an exception we stored their
-            // infos here so we can tear them down outside the unwind process.
-            for( std::vector<SectionEndInfo>::const_reverse_iterator it = m_unfinishedSections.rbegin(),
-                        itEnd = m_unfinishedSections.rend();
-                    it != itEnd;
-                    ++it )
-                sectionEnded( *it );
-            m_unfinishedSections.clear();
-        }
-
-        TestRunInfo m_runInfo;
-        IMutableContext& m_context;
-        TestCase const* m_activeTestCase;
-        ITracker* m_testCaseTracker;
-        ITracker* m_currentSectionTracker;
-        AssertionResult m_lastResult;
-
-        Ptr<IConfig const> m_config;
-        Totals m_totals;
-        Ptr<IStreamingReporter> m_reporter;
-        std::vector<MessageInfo> m_messages;
-        AssertionInfo m_lastAssertionInfo;
-        std::vector<SectionEndInfo> m_unfinishedSections;
-        std::vector<ITracker*> m_activeSections;
-        TrackerContext m_trackerContext;
-    };
-
-    IResultCapture& getResultCapture() {
-        if( IResultCapture* capture = getCurrentContext().getResultCapture() )
-            return *capture;
-        else
-            throw std::logic_error( "No result capture instance" );
-    }
-
-} // end namespace Catch
-
-// #included from: internal/catch_version.h
-#define TWOBLUECUBES_CATCH_VERSION_H_INCLUDED
-
-namespace Catch {
-
-    // Versioning information
-    struct Version {
-        Version(    unsigned int _majorVersion,
-                    unsigned int _minorVersion,
-                    unsigned int _patchNumber,
-                    std::string const& _branchName,
-                    unsigned int _buildNumber );
-
-        unsigned int const majorVersion;
-        unsigned int const minorVersion;
-        unsigned int const patchNumber;
-
-        // buildNumber is only used if branchName is not null
-        std::string const branchName;
-        unsigned int const buildNumber;
-
-        friend std::ostream& operator << ( std::ostream& os, Version const& version );
-
-    private:
-        void operator=( Version const& );
-    };
-
-    extern Version libraryVersion;
-}
-
-#include <fstream>
-#include <stdlib.h>
-#include <limits>
-
-namespace Catch {
-
-    Ptr<IStreamingReporter> createReporter( std::string const& reporterName, Ptr<Config> const& config ) {
-        Ptr<IStreamingReporter> reporter = getRegistryHub().getReporterRegistry().create( reporterName, config.get() );
-        if( !reporter ) {
-            std::ostringstream oss;
-            oss << "No reporter registered with name: '" << reporterName << "'";
-            throw std::domain_error( oss.str() );
-        }
-        return reporter;
-    }
-
-    Ptr<IStreamingReporter> makeReporter( Ptr<Config> const& config ) {
-        std::vector<std::string> reporters = config->getReporterNames();
-        if( reporters.empty() )
-            reporters.push_back( "console" );
-
-        Ptr<IStreamingReporter> reporter;
-        for( std::vector<std::string>::const_iterator it = reporters.begin(), itEnd = reporters.end();
-                it != itEnd;
-                ++it )
-            reporter = addReporter( reporter, createReporter( *it, config ) );
-        return reporter;
-    }
-    Ptr<IStreamingReporter> addListeners( Ptr<IConfig const> const& config, Ptr<IStreamingReporter> reporters ) {
-        IReporterRegistry::Listeners listeners = getRegistryHub().getReporterRegistry().getListeners();
-        for( IReporterRegistry::Listeners::const_iterator it = listeners.begin(), itEnd = listeners.end();
-                it != itEnd;
-                ++it )
-            reporters = addReporter(reporters, (*it)->create( ReporterConfig( config ) ) );
-        return reporters;
-    }
-
-    Totals runTests( Ptr<Config> const& config ) {
-
-        Ptr<IConfig const> iconfig = config.get();
-
-        Ptr<IStreamingReporter> reporter = makeReporter( config );
-        reporter = addListeners( iconfig, reporter );
-
-        RunContext context( iconfig, reporter );
-
-        Totals totals;
-
-        context.testGroupStarting( config->name(), 1, 1 );
-
-        TestSpec testSpec = config->testSpec();
-        if( !testSpec.hasFilters() )
-            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests
-
-        std::vector<TestCase> const& allTestCases = getAllTestCasesSorted( *iconfig );
-        for( std::vector<TestCase>::const_iterator it = allTestCases.begin(), itEnd = allTestCases.end();
-                it != itEnd;
-                ++it ) {
-            if( !context.aborting() && matchTest( *it, testSpec, *iconfig ) )
-                totals += context.runTest( *it );
-            else
-                reporter->skipTest( *it );
-        }
-
-        context.testGroupEnded( iconfig->name(), totals, 1, 1 );
-        return totals;
-    }
-
-    void applyFilenamesAsTags( IConfig const& config ) {
-        std::vector<TestCase> const& tests = getAllTestCasesSorted( config );
-        for(std::size_t i = 0; i < tests.size(); ++i ) {
-            TestCase& test = const_cast<TestCase&>( tests[i] );
-            std::set<std::string> tags = test.tags;
-
-            std::string filename = test.lineInfo.file;
-            std::string::size_type lastSlash = filename.find_last_of( "\\/" );
-            if( lastSlash != std::string::npos )
-                filename = filename.substr( lastSlash+1 );
-
-            std::string::size_type lastDot = filename.find_last_of( "." );
-            if( lastDot != std::string::npos )
-                filename = filename.substr( 0, lastDot );
-
-            tags.insert( "#" + filename );
-            setTags( test, tags );
-        }
-    }
-
-    class Session : NonCopyable {
-        static bool alreadyInstantiated;
-
-    public:
-
-        struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; };
-
-        Session()
-        : m_cli( makeCommandLineParser() ) {
-            if( alreadyInstantiated ) {
-                std::string msg = "Only one instance of Catch::Session can ever be used";
-                Catch::cerr() << msg << std::endl;
-                throw std::logic_error( msg );
-            }
-            alreadyInstantiated = true;
-        }
-        ~Session() {
-            Catch::cleanUp();
-        }
-
-        void showHelp( std::string const& processName ) {
-            Catch::cout() << "\nCatch v" << libraryVersion << "\n";
-
-            m_cli.usage( Catch::cout(), processName );
-            Catch::cout() << "For more detail usage please see the project docs\n" << std::endl;
-        }
-
-        int applyCommandLine( int argc, char const* const* const argv, OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) {
-            try {
-                m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail );
-                m_unusedTokens = m_cli.parseInto( Clara::argsToVector( argc, argv ), m_configData );
-                if( m_configData.showHelp )
-                    showHelp( m_configData.processName );
-                m_config.reset();
-            }
-            catch( std::exception& ex ) {
-                {
-                    Colour colourGuard( Colour::Red );
-                    Catch::cerr()
-                        << "\nError(s) in input:\n"
-                        << Text( ex.what(), TextAttributes().setIndent(2) )
-                        << "\n\n";
-                }
-                m_cli.usage( Catch::cout(), m_configData.processName );
-                return (std::numeric_limits<int>::max)();
-            }
-            return 0;
-        }
-
-        void useConfigData( ConfigData const& _configData ) {
-            m_configData = _configData;
-            m_config.reset();
-        }
-
-        int run( int argc, char const* const* const argv ) {
-
-            int returnCode = applyCommandLine( argc, argv );
-            if( returnCode == 0 )
-                returnCode = run();
-            return returnCode;
-        }
-
-        int run() {
-            if( m_configData.showHelp )
-                return 0;
-
-            try
-            {
-                config(); // Force config to be constructed
-
-                seedRng( *m_config );
-
-                if( m_configData.filenamesAsTags )
-                    applyFilenamesAsTags( *m_config );
-
-                // Handle list request
-                if( Option<std::size_t> listed = list( config() ) )
-                    return static_cast<int>( *listed );
-
-                return static_cast<int>( runTests( m_config ).assertions.failed );
-            }
-            catch( std::exception& ex ) {
-                Catch::cerr() << ex.what() << std::endl;
-                return (std::numeric_limits<int>::max)();
-            }
-        }
-
-        Clara::CommandLine<ConfigData> const& cli() const {
-            return m_cli;
-        }
-        std::vector<Clara::Parser::Token> const& unusedTokens() const {
-            return m_unusedTokens;
-        }
-        ConfigData& configData() {
-            return m_configData;
-        }
-        Config& config() {
-            if( !m_config )
-                m_config = new Config( m_configData );
-            return *m_config;
-        }
-    private:
-        Clara::CommandLine<ConfigData> m_cli;
-        std::vector<Clara::Parser::Token> m_unusedTokens;
-        ConfigData m_configData;
-        Ptr<Config> m_config;
-    };
-
-    bool Session::alreadyInstantiated = false;
-
-} // end namespace Catch
-
-// #included from: catch_registry_hub.hpp
-#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED
-
-// #included from: catch_test_case_registry_impl.hpp
-#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED
-
-#include <vector>
-#include <set>
-#include <sstream>
-#include <iostream>
-#include <algorithm>
-
-namespace Catch {
-
-    struct RandomNumberGenerator {
-        typedef std::ptrdiff_t result_type;
-
-        result_type operator()( result_type n ) const { return std::rand() % n; }
-
-#ifdef CATCH_CONFIG_CPP11_SHUFFLE
-        static constexpr result_type min() { return 0; }
-        static constexpr result_type max() { return 1000000; }
-        result_type operator()() const { return std::rand() % max(); }
-#endif
-        template<typename V>
-        static void shuffle( V& vector ) {
-            RandomNumberGenerator rng;
-#ifdef CATCH_CONFIG_CPP11_SHUFFLE
-            std::shuffle( vector.begin(), vector.end(), rng );
-#else
-            std::random_shuffle( vector.begin(), vector.end(), rng );
-#endif
-        }
-    };
-
-    inline std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ) {
-
-        std::vector<TestCase> sorted = unsortedTestCases;
-
-        switch( config.runOrder() ) {
-            case RunTests::InLexicographicalOrder:
-                std::sort( sorted.begin(), sorted.end() );
-                break;
-            case RunTests::InRandomOrder:
-                {
-                    seedRng( config );
-                    RandomNumberGenerator::shuffle( sorted );
-                }
-                break;
-            case RunTests::InDeclarationOrder:
-                // already in declaration order
-                break;
-        }
-        return sorted;
-    }
-    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) {
-        return testSpec.matches( testCase ) && ( config.allowThrows() || !testCase.throws() );
-    }
-
-    void enforceNoDuplicateTestCases( std::vector<TestCase> const& functions ) {
-        std::set<TestCase> seenFunctions;
-        for( std::vector<TestCase>::const_iterator it = functions.begin(), itEnd = functions.end();
-            it != itEnd;
-            ++it ) {
-            std::pair<std::set<TestCase>::const_iterator, bool> prev = seenFunctions.insert( *it );
-            if( !prev.second ) {
-                std::ostringstream ss;
-
-                ss  << Colour( Colour::Red )
-                    << "error: TEST_CASE( \"" << it->name << "\" ) already defined.\n"
-                    << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo << "\n"
-                    << "\tRedefined at " << it->getTestCaseInfo().lineInfo << std::endl;
-
-                throw std::runtime_error(ss.str());
-            }
-        }
-    }
-
-    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ) {
-        std::vector<TestCase> filtered;
-        filtered.reserve( testCases.size() );
-        for( std::vector<TestCase>::const_iterator it = testCases.begin(), itEnd = testCases.end();
-                it != itEnd;
-                ++it )
-            if( matchTest( *it, testSpec, config ) )
-                filtered.push_back( *it );
-        return filtered;
-    }
-    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ) {
-        return getRegistryHub().getTestCaseRegistry().getAllTestsSorted( config );
-    }
-
-    class TestRegistry : public ITestCaseRegistry {
-    public:
-        TestRegistry()
-        :   m_currentSortOrder( RunTests::InDeclarationOrder ),
-            m_unnamedCount( 0 )
-        {}
-        virtual ~TestRegistry();
-
-        virtual void registerTest( TestCase const& testCase ) {
-            std::string name = testCase.getTestCaseInfo().name;
-            if( name == "" ) {
-                std::ostringstream oss;
-                oss << "Anonymous test case " << ++m_unnamedCount;
-                return registerTest( testCase.withName( oss.str() ) );
-            }
-            m_functions.push_back( testCase );
-        }
-
-        virtual std::vector<TestCase> const& getAllTests() const {
-            return m_functions;
-        }
-        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const {
-            if( m_sortedFunctions.empty() )
-                enforceNoDuplicateTestCases( m_functions );
-
-            if(  m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty() ) {
-                m_sortedFunctions = sortTests( config, m_functions );
-                m_currentSortOrder = config.runOrder();
-            }
-            return m_sortedFunctions;
-        }
-
-    private:
-        std::vector<TestCase> m_functions;
-        mutable RunTests::InWhatOrder m_currentSortOrder;
-        mutable std::vector<TestCase> m_sortedFunctions;
-        size_t m_unnamedCount;
-        std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised
-    };
-
-    ///////////////////////////////////////////////////////////////////////////
-
-    class FreeFunctionTestCase : public SharedImpl<ITestCase> {
-    public:
-
-        FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {}
-
-        virtual void invoke() const {
-            m_fun();
-        }
-
-    private:
-        virtual ~FreeFunctionTestCase();
-
-        TestFunction m_fun;
-    };
-
-    inline std::string extractClassName( std::string const& classOrQualifiedMethodName ) {
-        std::string className = classOrQualifiedMethodName;
-        if( startsWith( className, "&" ) )
-        {
-            std::size_t lastColons = className.rfind( "::" );
-            std::size_t penultimateColons = className.rfind( "::", lastColons-1 );
-            if( penultimateColons == std::string::npos )
-                penultimateColons = 1;
-            className = className.substr( penultimateColons, lastColons-penultimateColons );
-        }
-        return className;
-    }
-
-    void registerTestCase
-        (   ITestCase* testCase,
-            char const* classOrQualifiedMethodName,
-            NameAndDesc const& nameAndDesc,
-            SourceLineInfo const& lineInfo ) {
-
-        getMutableRegistryHub().registerTest
-            ( makeTestCase
-                (   testCase,
-                    extractClassName( classOrQualifiedMethodName ),
-                    nameAndDesc.name,
-                    nameAndDesc.description,
-                    lineInfo ) );
-    }
-    void registerTestCaseFunction
-        (   TestFunction function,
-            SourceLineInfo const& lineInfo,
-            NameAndDesc const& nameAndDesc ) {
-        registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo );
-    }
-
-    ///////////////////////////////////////////////////////////////////////////
-
-    AutoReg::AutoReg
-        (   TestFunction function,
-            SourceLineInfo const& lineInfo,
-            NameAndDesc const& nameAndDesc ) {
-        registerTestCaseFunction( function, lineInfo, nameAndDesc );
-    }
-
-    AutoReg::~AutoReg() {}
-
-} // end namespace Catch
-
-// #included from: catch_reporter_registry.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED
-
-#include <map>
-
-namespace Catch {
-
-    class ReporterRegistry : public IReporterRegistry {
-
-    public:
-
-        virtual ~ReporterRegistry() CATCH_OVERRIDE {}
-
-        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const CATCH_OVERRIDE {
-            FactoryMap::const_iterator it =  m_factories.find( name );
-            if( it == m_factories.end() )
-                return CATCH_NULL;
-            return it->second->create( ReporterConfig( config ) );
-        }
-
-        void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) {
-            m_factories.insert( std::make_pair( name, factory ) );
-        }
-        void registerListener( Ptr<IReporterFactory> const& factory ) {
-            m_listeners.push_back( factory );
-        }
-
-        virtual FactoryMap const& getFactories() const CATCH_OVERRIDE {
-            return m_factories;
-        }
-        virtual Listeners const& getListeners() const CATCH_OVERRIDE {
-            return m_listeners;
-        }
-
-    private:
-        FactoryMap m_factories;
-        Listeners m_listeners;
-    };
-}
-
-// #included from: catch_exception_translator_registry.hpp
-#define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED
-
-#ifdef __OBJC__
-#import "Foundation/Foundation.h"
-#endif
-
-namespace Catch {
-
-    class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
-    public:
-        ~ExceptionTranslatorRegistry() {
-            deleteAll( m_translators );
-        }
-
-        virtual void registerTranslator( const IExceptionTranslator* translator ) {
-            m_translators.push_back( translator );
-        }
-
-        virtual std::string translateActiveException() const {
-            try {
-#ifdef __OBJC__
-                // In Objective-C try objective-c exceptions first
-                @try {
-                    return tryTranslators();
-                }
-                @catch (NSException *exception) {
-                    return Catch::toString( [exception description] );
-                }
-#else
-                return tryTranslators();
-#endif
-            }
-            catch( TestFailureException& ) {
-                throw;
-            }
-            catch( std::exception& ex ) {
-                return ex.what();
-            }
-            catch( std::string& msg ) {
-                return msg;
-            }
-            catch( const char* msg ) {
-                return msg;
-            }
-            catch(...) {
-                return "Unknown exception";
-            }
-        }
-
-        std::string tryTranslators() const {
-            if( m_translators.empty() )
-                throw;
-            else
-                return m_translators[0]->translate( m_translators.begin()+1, m_translators.end() );
-        }
-
-    private:
-        std::vector<const IExceptionTranslator*> m_translators;
-    };
-}
-
-namespace Catch {
-
-    namespace {
-
-        class RegistryHub : public IRegistryHub, public IMutableRegistryHub {
-
-            RegistryHub( RegistryHub const& );
-            void operator=( RegistryHub const& );
-
-        public: // IRegistryHub
-            RegistryHub() {
-            }
-            virtual IReporterRegistry const& getReporterRegistry() const CATCH_OVERRIDE {
-                return m_reporterRegistry;
-            }
-            virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_OVERRIDE {
-                return m_testCaseRegistry;
-            }
-            virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() CATCH_OVERRIDE {
-                return m_exceptionTranslatorRegistry;
-            }
-
-        public: // IMutableRegistryHub
-            virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
-                m_reporterRegistry.registerReporter( name, factory );
-            }
-            virtual void registerListener( Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
-                m_reporterRegistry.registerListener( factory );
-            }
-            virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE {
-                m_testCaseRegistry.registerTest( testInfo );
-            }
-            virtual void registerTranslator( const IExceptionTranslator* translator ) CATCH_OVERRIDE {
-                m_exceptionTranslatorRegistry.registerTranslator( translator );
-            }
-
-        private:
-            TestRegistry m_testCaseRegistry;
-            ReporterRegistry m_reporterRegistry;
-            ExceptionTranslatorRegistry m_exceptionTranslatorRegistry;
-        };
-
-        // Single, global, instance
-        inline RegistryHub*& getTheRegistryHub() {
-            static RegistryHub* theRegistryHub = CATCH_NULL;
-            if( !theRegistryHub )
-                theRegistryHub = new RegistryHub();
-            return theRegistryHub;
-        }
-    }
-
-    IRegistryHub& getRegistryHub() {
-        return *getTheRegistryHub();
-    }
-    IMutableRegistryHub& getMutableRegistryHub() {
-        return *getTheRegistryHub();
-    }
-    void cleanUp() {
-        delete getTheRegistryHub();
-        getTheRegistryHub() = CATCH_NULL;
-        cleanUpContext();
-    }
-    std::string translateActiveException() {
-        return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
-    }
-
-} // end namespace Catch
-
-// #included from: catch_notimplemented_exception.hpp
-#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED
-
-#include <ostream>
-
-namespace Catch {
-
-    NotImplementedException::NotImplementedException( SourceLineInfo const& lineInfo )
-    :   m_lineInfo( lineInfo ) {
-        std::ostringstream oss;
-        oss << lineInfo << ": function ";
-        oss << "not implemented";
-        m_what = oss.str();
-    }
-
-    const char* NotImplementedException::what() const CATCH_NOEXCEPT {
-        return m_what.c_str();
-    }
-
-} // end namespace Catch
-
-// #included from: catch_context_impl.hpp
-#define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED
-
-// #included from: catch_stream.hpp
-#define TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED
-
-#include <stdexcept>
-#include <cstdio>
-#include <iostream>
-
-namespace Catch {
-
-    template<typename WriterF, size_t bufferSize=256>
-    class StreamBufImpl : public StreamBufBase {
-        char data[bufferSize];
-        WriterF m_writer;
-
-    public:
-        StreamBufImpl() {
-            setp( data, data + sizeof(data) );
-        }
-
-        ~StreamBufImpl() CATCH_NOEXCEPT {
-            sync();
-        }
-
-    private:
-        int overflow( int c ) {
-            sync();
-
-            if( c != EOF ) {
-                if( pbase() == epptr() )
-                    m_writer( std::string( 1, static_cast<char>( c ) ) );
-                else
-                    sputc( static_cast<char>( c ) );
-            }
-            return 0;
-        }
-
-        int sync() {
-            if( pbase() != pptr() ) {
-                m_writer( std::string( pbase(), static_cast<std::string::size_type>( pptr() - pbase() ) ) );
-                setp( pbase(), epptr() );
-            }
-            return 0;
-        }
-    };
-
-    ///////////////////////////////////////////////////////////////////////////
-
-    FileStream::FileStream( std::string const& filename ) {
-        m_ofs.open( filename.c_str() );
-        if( m_ofs.fail() ) {
-            std::ostringstream oss;
-            oss << "Unable to open file: '" << filename << "'";
-            throw std::domain_error( oss.str() );
-        }
-    }
-
-    std::ostream& FileStream::stream() const {
-        return m_ofs;
-    }
-
-    struct OutputDebugWriter {
-
-        void operator()( std::string const&str ) {
-            writeToDebugConsole( str );
-        }
-    };
-
-    DebugOutStream::DebugOutStream()
-    :   m_streamBuf( new StreamBufImpl<OutputDebugWriter>() ),
-        m_os( m_streamBuf.get() )
-    {}
-
-    std::ostream& DebugOutStream::stream() const {
-        return m_os;
-    }
-
-    // Store the streambuf from cout up-front because
-    // cout may get redirected when running tests
-    CoutStream::CoutStream()
-    :   m_os( Catch::cout().rdbuf() )
-    {}
-
-    std::ostream& CoutStream::stream() const {
-        return m_os;
-    }
-
-#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions
-    std::ostream& cout() {
-        return std::cout;
-    }
-    std::ostream& cerr() {
-        return std::cerr;
-    }
-#endif
-}
-
-namespace Catch {
-
-    class Context : public IMutableContext {
-
-        Context() : m_config( CATCH_NULL ), m_runner( CATCH_NULL ), m_resultCapture( CATCH_NULL ) {}
-        Context( Context const& );
-        void operator=( Context const& );
-
-    public: // IContext
-        virtual IResultCapture* getResultCapture() {
-            return m_resultCapture;
-        }
-        virtual IRunner* getRunner() {
-            return m_runner;
-        }
-        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) {
-            return getGeneratorsForCurrentTest()
-            .getGeneratorInfo( fileInfo, totalSize )
-            .getCurrentIndex();
-        }
-        virtual bool advanceGeneratorsForCurrentTest() {
-            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
-            return generators && generators->moveNext();
-        }
-
-        virtual Ptr<IConfig const> getConfig() const {
-            return m_config;
-        }
-
-    public: // IMutableContext
-        virtual void setResultCapture( IResultCapture* resultCapture ) {
-            m_resultCapture = resultCapture;
-        }
-        virtual void setRunner( IRunner* runner ) {
-            m_runner = runner;
-        }
-        virtual void setConfig( Ptr<IConfig const> const& config ) {
-            m_config = config;
-        }
-
-        friend IMutableContext& getCurrentMutableContext();
-
-    private:
-        IGeneratorsForTest* findGeneratorsForCurrentTest() {
-            std::string testName = getResultCapture()->getCurrentTestName();
-
-            std::map<std::string, IGeneratorsForTest*>::const_iterator it =
-                m_generatorsByTestName.find( testName );
-            return it != m_generatorsByTestName.end()
-                ? it->second
-                : CATCH_NULL;
-        }
-
-        IGeneratorsForTest& getGeneratorsForCurrentTest() {
-            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
-            if( !generators ) {
-                std::string testName = getResultCapture()->getCurrentTestName();
-                generators = createGeneratorsForTest();
-                m_generatorsByTestName.insert( std::make_pair( testName, generators ) );
-            }
-            return *generators;
-        }
-
-    private:
-        Ptr<IConfig const> m_config;
-        IRunner* m_runner;
-        IResultCapture* m_resultCapture;
-        std::map<std::string, IGeneratorsForTest*> m_generatorsByTestName;
-    };
-
-    namespace {
-        Context* currentContext = CATCH_NULL;
-    }
-    IMutableContext& getCurrentMutableContext() {
-        if( !currentContext )
-            currentContext = new Context();
-        return *currentContext;
-    }
-    IContext& getCurrentContext() {
-        return getCurrentMutableContext();
-    }
-
-    void cleanUpContext() {
-        delete currentContext;
-        currentContext = CATCH_NULL;
-    }
-}
-
-// #included from: catch_console_colour_impl.hpp
-#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED
-
-namespace Catch {
-    namespace {
-
-        struct IColourImpl {
-            virtual ~IColourImpl() {}
-            virtual void use( Colour::Code _colourCode ) = 0;
-        };
-
-        struct NoColourImpl : IColourImpl {
-            void use( Colour::Code ) {}
-
-            static IColourImpl* instance() {
-                static NoColourImpl s_instance;
-                return &s_instance;
-            }
-        };
-
-    } // anon namespace
-} // namespace Catch
-
-#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI )
-#   ifdef CATCH_PLATFORM_WINDOWS
-#       define CATCH_CONFIG_COLOUR_WINDOWS
-#   else
-#       define CATCH_CONFIG_COLOUR_ANSI
-#   endif
-#endif
-
-#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) /////////////////////////////////////////
-
-#ifndef NOMINMAX
-#define NOMINMAX
-#endif
-
-#ifdef __AFXDLL
-#include <AfxWin.h>
-#else
-#include <windows.h>
-#endif
-
-namespace Catch {
-namespace {
-
-    class Win32ColourImpl : public IColourImpl {
-    public:
-        Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) )
-        {
-            CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
-            GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo );
-            originalForegroundAttributes = csbiInfo.wAttributes & ~( BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY );
-            originalBackgroundAttributes = csbiInfo.wAttributes & ~( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY );
-        }
-
-        virtual void use( Colour::Code _colourCode ) {
-            switch( _colourCode ) {
-                case Colour::None:      return setTextAttribute( originalForegroundAttributes );
-                case Colour::White:     return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
-                case Colour::Red:       return setTextAttribute( FOREGROUND_RED );
-                case Colour::Green:     return setTextAttribute( FOREGROUND_GREEN );
-                case Colour::Blue:      return setTextAttribute( FOREGROUND_BLUE );
-                case Colour::Cyan:      return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN );
-                case Colour::Yellow:    return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN );
-                case Colour::Grey:      return setTextAttribute( 0 );
-
-                case Colour::LightGrey:     return setTextAttribute( FOREGROUND_INTENSITY );
-                case Colour::BrightRed:     return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED );
-                case Colour::BrightGreen:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN );
-                case Colour::BrightWhite:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
-
-                case Colour::Bright: throw std::logic_error( "not a colour" );
-            }
-        }
-
-    private:
-        void setTextAttribute( WORD _textAttribute ) {
-            SetConsoleTextAttribute( stdoutHandle, _textAttribute | originalBackgroundAttributes );
-        }
-        HANDLE stdoutHandle;
-        WORD originalForegroundAttributes;
-        WORD originalBackgroundAttributes;
-    };
-
-    IColourImpl* platformColourInstance() {
-        static Win32ColourImpl s_instance;
-
-        Ptr<IConfig const> config = getCurrentContext().getConfig();
-        UseColour::YesOrNo colourMode = config
-            ? config->useColour()
-            : UseColour::Auto;
-        if( colourMode == UseColour::Auto )
-            colourMode = !isDebuggerActive()
-                ? UseColour::Yes
-                : UseColour::No;
-        return colourMode == UseColour::Yes
-            ? &s_instance
-            : NoColourImpl::instance();
-    }
-
-} // end anon namespace
-} // end namespace Catch
-
-#elif defined( CATCH_CONFIG_COLOUR_ANSI ) //////////////////////////////////////
-
-#include <unistd.h>
-
-namespace Catch {
-namespace {
-
-    // use POSIX/ ANSI console terminal codes
-    // Thanks to Adam Strzelecki for original contribution
-    // (http://github.com/nanoant)
-    // https://github.com/philsquared/Catch/pull/131
-    class PosixColourImpl : public IColourImpl {
-    public:
-        virtual void use( Colour::Code _colourCode ) {
-            switch( _colourCode ) {
-                case Colour::None:
-                case Colour::White:     return setColour( "[0m" );
-                case Colour::Red:       return setColour( "[0;31m" );
-                case Colour::Green:     return setColour( "[0;32m" );
-                case Colour::Blue:      return setColour( "[0;34m" );
-                case Colour::Cyan:      return setColour( "[0;36m" );
-                case Colour::Yellow:    return setColour( "[0;33m" );
-                case Colour::Grey:      return setColour( "[1;30m" );
-
-                case Colour::LightGrey:     return setColour( "[0;37m" );
-                case Colour::BrightRed:     return setColour( "[1;31m" );
-                case Colour::BrightGreen:   return setColour( "[1;32m" );
-                case Colour::BrightWhite:   return setColour( "[1;37m" );
-
-                case Colour::Bright: throw std::logic_error( "not a colour" );
-            }
-        }
-        static IColourImpl* instance() {
-            static PosixColourImpl s_instance;
-            return &s_instance;
-        }
-
-    private:
-        void setColour( const char* _escapeCode ) {
-            Catch::cout() << '\033' << _escapeCode;
-        }
-    };
-
-    IColourImpl* platformColourInstance() {
-        Ptr<IConfig const> config = getCurrentContext().getConfig();
-        UseColour::YesOrNo colourMode = config
-            ? config->useColour()
-            : UseColour::Auto;
-        if( colourMode == UseColour::Auto )
-            colourMode = (!isDebuggerActive() && isatty(STDOUT_FILENO) )
-                ? UseColour::Yes
-                : UseColour::No;
-        return colourMode == UseColour::Yes
-            ? PosixColourImpl::instance()
-            : NoColourImpl::instance();
-    }
-
-} // end anon namespace
-} // end namespace Catch
-
-#else  // not Windows or ANSI ///////////////////////////////////////////////
-
-namespace Catch {
-
-    static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); }
-
-} // end namespace Catch
-
-#endif // Windows/ ANSI/ None
-
-namespace Catch {
-
-    Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); }
-    Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast<Colour&>( _other ).m_moved = true; }
-    Colour::~Colour(){ if( !m_moved ) use( None ); }
-
-    void Colour::use( Code _colourCode ) {
-        static IColourImpl* impl = platformColourInstance();
-        impl->use( _colourCode );
-    }
-
-} // end namespace Catch
-
-// #included from: catch_generators_impl.hpp
-#define TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED
-
-#include <vector>
-#include <string>
-#include <map>
-
-namespace Catch {
-
-    struct GeneratorInfo : IGeneratorInfo {
-
-        GeneratorInfo( std::size_t size )
-        :   m_size( size ),
-            m_currentIndex( 0 )
-        {}
-
-        bool moveNext() {
-            if( ++m_currentIndex == m_size ) {
-                m_currentIndex = 0;
-                return false;
-            }
-            return true;
-        }
-
-        std::size_t getCurrentIndex() const {
-            return m_currentIndex;
-        }
-
-        std::size_t m_size;
-        std::size_t m_currentIndex;
-    };
-
-    ///////////////////////////////////////////////////////////////////////////
-
-    class GeneratorsForTest : public IGeneratorsForTest {
-
-    public:
-        ~GeneratorsForTest() {
-            deleteAll( m_generatorsInOrder );
-        }
-
-        IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) {
-            std::map<std::string, IGeneratorInfo*>::const_iterator it = m_generatorsByName.find( fileInfo );
-            if( it == m_generatorsByName.end() ) {
-                IGeneratorInfo* info = new GeneratorInfo( size );
-                m_generatorsByName.insert( std::make_pair( fileInfo, info ) );
-                m_generatorsInOrder.push_back( info );
-                return *info;
-            }
-            return *it->second;
-        }
-
-        bool moveNext() {
-            std::vector<IGeneratorInfo*>::const_iterator it = m_generatorsInOrder.begin();
-            std::vector<IGeneratorInfo*>::const_iterator itEnd = m_generatorsInOrder.end();
-            for(; it != itEnd; ++it ) {
-                if( (*it)->moveNext() )
-                    return true;
-            }
-            return false;
-        }
-
-    private:
-        std::map<std::string, IGeneratorInfo*> m_generatorsByName;
-        std::vector<IGeneratorInfo*> m_generatorsInOrder;
-    };
-
-    IGeneratorsForTest* createGeneratorsForTest()
-    {
-        return new GeneratorsForTest();
-    }
-
-} // end namespace Catch
-
-// #included from: catch_assertionresult.hpp
-#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
-
-namespace Catch {
-
-    AssertionInfo::AssertionInfo(   std::string const& _macroName,
-                                    SourceLineInfo const& _lineInfo,
-                                    std::string const& _capturedExpression,
-                                    ResultDisposition::Flags _resultDisposition )
-    :   macroName( _macroName ),
-        lineInfo( _lineInfo ),
-        capturedExpression( _capturedExpression ),
-        resultDisposition( _resultDisposition )
-    {}
-
-    AssertionResult::AssertionResult() {}
-
-    AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data )
-    :   m_info( info ),
-        m_resultData( data )
-    {}
-
-    AssertionResult::~AssertionResult() {}
-
-    // Result was a success
-    bool AssertionResult::succeeded() const {
-        return Catch::isOk( m_resultData.resultType );
-    }
-
-    // Result was a success, or failure is suppressed
-    bool AssertionResult::isOk() const {
-        return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition );
-    }
-
-    ResultWas::OfType AssertionResult::getResultType() const {
-        return m_resultData.resultType;
-    }
-
-    bool AssertionResult::hasExpression() const {
-        return !m_info.capturedExpression.empty();
-    }
-
-    bool AssertionResult::hasMessage() const {
-        return !m_resultData.message.empty();
-    }
-
-    std::string AssertionResult::getExpression() const {
-        if( isFalseTest( m_info.resultDisposition ) )
-            return "!" + m_info.capturedExpression;
-        else
-            return m_info.capturedExpression;
-    }
-    std::string AssertionResult::getExpressionInMacro() const {
-        if( m_info.macroName.empty() )
-            return m_info.capturedExpression;
-        else
-            return m_info.macroName + "( " + m_info.capturedExpression + " )";
-    }
-
-    bool AssertionResult::hasExpandedExpression() const {
-        return hasExpression() && getExpandedExpression() != getExpression();
-    }
-
-    std::string AssertionResult::getExpandedExpression() const {
-        return m_resultData.reconstructedExpression;
-    }
-
-    std::string AssertionResult::getMessage() const {
-        return m_resultData.message;
-    }
-    SourceLineInfo AssertionResult::getSourceInfo() const {
-        return m_info.lineInfo;
-    }
-
-    std::string AssertionResult::getTestMacroName() const {
-        return m_info.macroName;
-    }
-
-} // end namespace Catch
-
-// #included from: catch_test_case_info.hpp
-#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED
-
-namespace Catch {
-
-    inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) {
-        if( startsWith( tag, "." ) ||
-            tag == "hide" ||
-            tag == "!hide" )
-            return TestCaseInfo::IsHidden;
-        else if( tag == "!throws" )
-            return TestCaseInfo::Throws;
-        else if( tag == "!shouldfail" )
-            return TestCaseInfo::ShouldFail;
-        else if( tag == "!mayfail" )
-            return TestCaseInfo::MayFail;
-        else
-            return TestCaseInfo::None;
-    }
-    inline bool isReservedTag( std::string const& tag ) {
-        return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !isalnum( tag[0] );
-    }
-    inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) {
-        if( isReservedTag( tag ) ) {
-            {
-                Colour colourGuard( Colour::Red );
-                Catch::cerr()
-                    << "Tag name [" << tag << "] not allowed.\n"
-                    << "Tag names starting with non alpha-numeric characters are reserved\n";
-            }
-            {
-                Colour colourGuard( Colour::FileName );
-                Catch::cerr() << _lineInfo << std::endl;
-            }
-            exit(1);
-        }
-    }
-
-    TestCase makeTestCase(  ITestCase* _testCase,
-                            std::string const& _className,
-                            std::string const& _name,
-                            std::string const& _descOrTags,
-                            SourceLineInfo const& _lineInfo )
-    {
-        bool isHidden( startsWith( _name, "./" ) ); // Legacy support
-
-        // Parse out tags
-        std::set<std::string> tags;
-        std::string desc, tag;
-        bool inTag = false;
-        for( std::size_t i = 0; i < _descOrTags.size(); ++i ) {
-            char c = _descOrTags[i];
-            if( !inTag ) {
-                if( c == '[' )
-                    inTag = true;
-                else
-                    desc += c;
-            }
-            else {
-                if( c == ']' ) {
-                    TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag );
-                    if( prop == TestCaseInfo::IsHidden )
-                        isHidden = true;
-                    else if( prop == TestCaseInfo::None )
-                        enforceNotReservedTag( tag, _lineInfo );
-
-                    tags.insert( tag );
-                    tag.clear();
-                    inTag = false;
-                }
-                else
-                    tag += c;
-            }
-        }
-        if( isHidden ) {
-            tags.insert( "hide" );
-            tags.insert( "." );
-        }
-
-        TestCaseInfo info( _name, _className, desc, tags, _lineInfo );
-        return TestCase( _testCase, info );
-    }
-
-    void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags )
-    {
-        testCaseInfo.tags = tags;
-        testCaseInfo.lcaseTags.clear();
-
-        std::ostringstream oss;
-        for( std::set<std::string>::const_iterator it = tags.begin(), itEnd = tags.end(); it != itEnd; ++it ) {
-            oss << "[" << *it << "]";
-            std::string lcaseTag = toLower( *it );
-            testCaseInfo.properties = static_cast<TestCaseInfo::SpecialProperties>( testCaseInfo.properties | parseSpecialTag( lcaseTag ) );
-            testCaseInfo.lcaseTags.insert( lcaseTag );
-        }
-        testCaseInfo.tagsAsString = oss.str();
-    }
-
-    TestCaseInfo::TestCaseInfo( std::string const& _name,
-                                std::string const& _className,
-                                std::string const& _description,
-                                std::set<std::string> const& _tags,
-                                SourceLineInfo const& _lineInfo )
-    :   name( _name ),
-        className( _className ),
-        description( _description ),
-        lineInfo( _lineInfo ),
-        properties( None )
-    {
-        setTags( *this, _tags );
-    }
-
-    TestCaseInfo::TestCaseInfo( TestCaseInfo const& other )
-    :   name( other.name ),
-        className( other.className ),
-        description( other.description ),
-        tags( other.tags ),
-        lcaseTags( other.lcaseTags ),
-        tagsAsString( other.tagsAsString ),
-        lineInfo( other.lineInfo ),
-        properties( other.properties )
-    {}
-
-    bool TestCaseInfo::isHidden() const {
-        return ( properties & IsHidden ) != 0;
-    }
-    bool TestCaseInfo::throws() const {
-        return ( properties & Throws ) != 0;
-    }
-    bool TestCaseInfo::okToFail() const {
-        return ( properties & (ShouldFail | MayFail ) ) != 0;
-    }
-    bool TestCaseInfo::expectedToFail() const {
-        return ( properties & (ShouldFail ) ) != 0;
-    }
-
-    TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {}
-
-    TestCase::TestCase( TestCase const& other )
-    :   TestCaseInfo( other ),
-        test( other.test )
-    {}
-
-    TestCase TestCase::withName( std::string const& _newName ) const {
-        TestCase other( *this );
-        other.name = _newName;
-        return other;
-    }
-
-    void TestCase::swap( TestCase& other ) {
-        test.swap( other.test );
-        name.swap( other.name );
-        className.swap( other.className );
-        description.swap( other.description );
-        tags.swap( other.tags );
-        lcaseTags.swap( other.lcaseTags );
-        tagsAsString.swap( other.tagsAsString );
-        std::swap( TestCaseInfo::properties, static_cast<TestCaseInfo&>( other ).properties );
-        std::swap( lineInfo, other.lineInfo );
-    }
-
-    void TestCase::invoke() const {
-        test->invoke();
-    }
-
-    bool TestCase::operator == ( TestCase const& other ) const {
-        return  test.get() == other.test.get() &&
-                name == other.name &&
-                className == other.className;
-    }
-
-    bool TestCase::operator < ( TestCase const& other ) const {
-        return name < other.name;
-    }
-    TestCase& TestCase::operator = ( TestCase const& other ) {
-        TestCase temp( other );
-        swap( temp );
-        return *this;
-    }
-
-    TestCaseInfo const& TestCase::getTestCaseInfo() const
-    {
-        return *this;
-    }
-
-} // end namespace Catch
-
-// #included from: catch_version.hpp
-#define TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
-
-namespace Catch {
-
-    Version::Version
-        (   unsigned int _majorVersion,
-            unsigned int _minorVersion,
-            unsigned int _patchNumber,
-            std::string const& _branchName,
-            unsigned int _buildNumber )
-    :   majorVersion( _majorVersion ),
-        minorVersion( _minorVersion ),
-        patchNumber( _patchNumber ),
-        branchName( _branchName ),
-        buildNumber( _buildNumber )
-    {}
-
-    std::ostream& operator << ( std::ostream& os, Version const& version ) {
-        os  << version.majorVersion << "."
-            << version.minorVersion << "."
-            << version.patchNumber;
-
-        if( !version.branchName.empty() ) {
-            os  << "-" << version.branchName
-                << "." << version.buildNumber;
-        }
-        return os;
-    }
-
-    Version libraryVersion( 1, 6, 0, "", 0 );
-
-}
-
-// #included from: catch_message.hpp
-#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED
-
-namespace Catch {
-
-    MessageInfo::MessageInfo(   std::string const& _macroName,
-                                SourceLineInfo const& _lineInfo,
-                                ResultWas::OfType _type )
-    :   macroName( _macroName ),
-        lineInfo( _lineInfo ),
-        type( _type ),
-        sequence( ++globalCount )
-    {}
-
-    // This may need protecting if threading support is added
-    unsigned int MessageInfo::globalCount = 0;
-
-    ////////////////////////////////////////////////////////////////////////////
-
-    ScopedMessage::ScopedMessage( MessageBuilder const& builder )
-    : m_info( builder.m_info )
-    {
-        m_info.message = builder.m_stream.str();
-        getResultCapture().pushScopedMessage( m_info );
-    }
-    ScopedMessage::ScopedMessage( ScopedMessage const& other )
-    : m_info( other.m_info )
-    {}
-
-    ScopedMessage::~ScopedMessage() {
-        getResultCapture().popScopedMessage( m_info );
-    }
-
-} // end namespace Catch
-
-// #included from: catch_legacy_reporter_adapter.hpp
-#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED
-
-// #included from: catch_legacy_reporter_adapter.h
-#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
-
-namespace Catch
-{
-    // Deprecated
-    struct IReporter : IShared {
-        virtual ~IReporter();
-
-        virtual bool shouldRedirectStdout() const = 0;
-
-        virtual void StartTesting() = 0;
-        virtual void EndTesting( Totals const& totals ) = 0;
-        virtual void StartGroup( std::string const& groupName ) = 0;
-        virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0;
-        virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0;
-        virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0;
-        virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0;
-        virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0;
-        virtual void NoAssertionsInSection( std::string const& sectionName ) = 0;
-        virtual void NoAssertionsInTestCase( std::string const& testName ) = 0;
-        virtual void Aborted() = 0;
-        virtual void Result( AssertionResult const& result ) = 0;
-    };
-
-    class LegacyReporterAdapter : public SharedImpl<IStreamingReporter>
-    {
-    public:
-        LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter );
-        virtual ~LegacyReporterAdapter();
-
-        virtual ReporterPreferences getPreferences() const;
-        virtual void noMatchingTestCases( std::string const& );
-        virtual void testRunStarting( TestRunInfo const& );
-        virtual void testGroupStarting( GroupInfo const& groupInfo );
-        virtual void testCaseStarting( TestCaseInfo const& testInfo );
-        virtual void sectionStarting( SectionInfo const& sectionInfo );
-        virtual void assertionStarting( AssertionInfo const& );
-        virtual bool assertionEnded( AssertionStats const& assertionStats );
-        virtual void sectionEnded( SectionStats const& sectionStats );
-        virtual void testCaseEnded( TestCaseStats const& testCaseStats );
-        virtual void testGroupEnded( TestGroupStats const& testGroupStats );
-        virtual void testRunEnded( TestRunStats const& testRunStats );
-        virtual void skipTest( TestCaseInfo const& );
-
-    private:
-        Ptr<IReporter> m_legacyReporter;
-    };
-}
-
-namespace Catch
-{
-    LegacyReporterAdapter::LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter )
-    :   m_legacyReporter( legacyReporter )
-    {}
-    LegacyReporterAdapter::~LegacyReporterAdapter() {}
-
-    ReporterPreferences LegacyReporterAdapter::getPreferences() const {
-        ReporterPreferences prefs;
-        prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout();
-        return prefs;
-    }
-
-    void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {}
-    void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) {
-        m_legacyReporter->StartTesting();
-    }
-    void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) {
-        m_legacyReporter->StartGroup( groupInfo.name );
-    }
-    void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) {
-        m_legacyReporter->StartTestCase( testInfo );
-    }
-    void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) {
-        m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description );
-    }
-    void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) {
-        // Not on legacy interface
-    }
-
-    bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) {
-        if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
-            for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
-                    it != itEnd;
-                    ++it ) {
-                if( it->type == ResultWas::Info ) {
-                    ResultBuilder rb( it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal );
-                    rb << it->message;
-                    rb.setResultType( ResultWas::Info );
-                    AssertionResult result = rb.build();
-                    m_legacyReporter->Result( result );
-                }
-            }
-        }
-        m_legacyReporter->Result( assertionStats.assertionResult );
-        return true;
-    }
-    void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) {
-        if( sectionStats.missingAssertions )
-            m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name );
-        m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions );
-    }
-    void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) {
-        m_legacyReporter->EndTestCase
-            (   testCaseStats.testInfo,
-                testCaseStats.totals,
-                testCaseStats.stdOut,
-                testCaseStats.stdErr );
-    }
-    void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) {
-        if( testGroupStats.aborting )
-            m_legacyReporter->Aborted();
-        m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals );
-    }
-    void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) {
-        m_legacyReporter->EndTesting( testRunStats.totals );
-    }
-    void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) {
-    }
-}
-
-// #included from: catch_timer.hpp
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wc++11-long-long"
-#endif
-
-#ifdef CATCH_PLATFORM_WINDOWS
-#include <windows.h>
-#else
-#include <sys/time.h>
-#endif
-
-namespace Catch {
-
-    namespace {
-#ifdef CATCH_PLATFORM_WINDOWS
-        uint64_t getCurrentTicks() {
-            static uint64_t hz=0, hzo=0;
-            if (!hz) {
-                QueryPerformanceFrequency( reinterpret_cast<LARGE_INTEGER*>( &hz ) );
-                QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &hzo ) );
-            }
-            uint64_t t;
-            QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &t ) );
-            return ((t-hzo)*1000000)/hz;
-        }
-#else
-        uint64_t getCurrentTicks() {
-            timeval t;
-            gettimeofday(&t,CATCH_NULL);
-            return static_cast<uint64_t>( t.tv_sec ) * 1000000ull + static_cast<uint64_t>( t.tv_usec );
-        }
-#endif
-    }
-
-    void Timer::start() {
-        m_ticks = getCurrentTicks();
-    }
-    unsigned int Timer::getElapsedMicroseconds() const {
-        return static_cast<unsigned int>(getCurrentTicks() - m_ticks);
-    }
-    unsigned int Timer::getElapsedMilliseconds() const {
-        return static_cast<unsigned int>(getElapsedMicroseconds()/1000);
-    }
-    double Timer::getElapsedSeconds() const {
-        return getElapsedMicroseconds()/1000000.0;
-    }
-
-} // namespace Catch
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-// #included from: catch_common.hpp
-#define TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED
-
-namespace Catch {
-
-    bool startsWith( std::string const& s, std::string const& prefix ) {
-        return s.size() >= prefix.size() && s.substr( 0, prefix.size() ) == prefix;
-    }
-    bool endsWith( std::string const& s, std::string const& suffix ) {
-        return s.size() >= suffix.size() && s.substr( s.size()-suffix.size(), suffix.size() ) == suffix;
-    }
-    bool contains( std::string const& s, std::string const& infix ) {
-        return s.find( infix ) != std::string::npos;
-    }
-    char toLowerCh(char c) {
-        return static_cast<char>( ::tolower( c ) );
-    }
-    void toLowerInPlace( std::string& s ) {
-        std::transform( s.begin(), s.end(), s.begin(), toLowerCh );
-    }
-    std::string toLower( std::string const& s ) {
-        std::string lc = s;
-        toLowerInPlace( lc );
-        return lc;
-    }
-    std::string trim( std::string const& str ) {
-        static char const* whitespaceChars = "\n\r\t ";
-        std::string::size_type start = str.find_first_not_of( whitespaceChars );
-        std::string::size_type end = str.find_last_not_of( whitespaceChars );
-
-        return start != std::string::npos ? str.substr( start, 1+end-start ) : "";
-    }
-
-    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) {
-        bool replaced = false;
-        std::size_t i = str.find( replaceThis );
-        while( i != std::string::npos ) {
-            replaced = true;
-            str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() );
-            if( i < str.size()-withThis.size() )
-                i = str.find( replaceThis, i+withThis.size() );
-            else
-                i = std::string::npos;
-        }
-        return replaced;
-    }
-
-    pluralise::pluralise( std::size_t count, std::string const& label )
-    :   m_count( count ),
-        m_label( label )
-    {}
-
-    std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) {
-        os << pluraliser.m_count << " " << pluraliser.m_label;
-        if( pluraliser.m_count != 1 )
-            os << "s";
-        return os;
-    }
-
-    SourceLineInfo::SourceLineInfo() : line( 0 ){}
-    SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line )
-    :   file( _file ),
-        line( _line )
-    {}
-    SourceLineInfo::SourceLineInfo( SourceLineInfo const& other )
-    :   file( other.file ),
-        line( other.line )
-    {}
-    bool SourceLineInfo::empty() const {
-        return file.empty();
-    }
-    bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const {
-        return line == other.line && file == other.file;
-    }
-    bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const {
-        return line < other.line || ( line == other.line  && file < other.file );
-    }
-
-    void seedRng( IConfig const& config ) {
-        if( config.rngSeed() != 0 )
-            std::srand( config.rngSeed() );
-    }
-    unsigned int rngSeed() {
-        return getCurrentContext().getConfig()->rngSeed();
-    }
-
-    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) {
-#ifndef __GNUG__
-        os << info.file << "(" << info.line << ")";
-#else
-        os << info.file << ":" << info.line;
-#endif
-        return os;
-    }
-
-    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) {
-        std::ostringstream oss;
-        oss << locationInfo << ": Internal Catch error: '" << message << "'";
-        if( alwaysTrue() )
-            throw std::logic_error( oss.str() );
-    }
-}
-
-// #included from: catch_section.hpp
-#define TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED
-
-namespace Catch {
-
-    SectionInfo::SectionInfo
-        (   SourceLineInfo const& _lineInfo,
-            std::string const& _name,
-            std::string const& _description )
-    :   name( _name ),
-        description( _description ),
-        lineInfo( _lineInfo )
-    {}
-
-    Section::Section( SectionInfo const& info )
-    :   m_info( info ),
-        m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) )
-    {
-        m_timer.start();
-    }
-
-    Section::~Section() {
-        if( m_sectionIncluded ) {
-            SectionEndInfo endInfo( m_info, m_assertions, m_timer.getElapsedSeconds() );
-            if( std::uncaught_exception() )
-                getResultCapture().sectionEndedEarly( endInfo );
-            else
-                getResultCapture().sectionEnded( endInfo );
-        }
-    }
-
-    // This indicates whether the section should be executed or not
-    Section::operator bool() const {
-        return m_sectionIncluded;
-    }
-
-} // end namespace Catch
-
-// #included from: catch_debugger.hpp
-#define TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED
-
-#include <iostream>
-
-#ifdef CATCH_PLATFORM_MAC
-
-    #include <assert.h>
-    #include <stdbool.h>
-    #include <sys/types.h>
-    #include <unistd.h>
-    #include <sys/sysctl.h>
-
-    namespace Catch{
-
-        // The following function is taken directly from the following technical note:
-        // http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html
-
-        // Returns true if the current process is being debugged (either
-        // running under the debugger or has a debugger attached post facto).
-        bool isDebuggerActive(){
-
-            int                 mib[4];
-            struct kinfo_proc   info;
-            size_t              size;
-
-            // Initialize the flags so that, if sysctl fails for some bizarre
-            // reason, we get a predictable result.
-
-            info.kp_proc.p_flag = 0;
-
-            // Initialize mib, which tells sysctl the info we want, in this case
-            // we're looking for information about a specific process ID.
-
-            mib[0] = CTL_KERN;
-            mib[1] = KERN_PROC;
-            mib[2] = KERN_PROC_PID;
-            mib[3] = getpid();
-
-            // Call sysctl.
-
-            size = sizeof(info);
-            if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, CATCH_NULL, 0) != 0 ) {
-                Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl;
-                return false;
-            }
-
-            // We're being debugged if the P_TRACED flag is set.
-
-            return ( (info.kp_proc.p_flag & P_TRACED) != 0 );
-        }
-    } // namespace Catch
-
-#elif defined(_MSC_VER)
-    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
-    namespace Catch {
-        bool isDebuggerActive() {
-            return IsDebuggerPresent() != 0;
-        }
-    }
-#elif defined(__MINGW32__)
-    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
-    namespace Catch {
-        bool isDebuggerActive() {
-            return IsDebuggerPresent() != 0;
-        }
-    }
-#else
-    namespace Catch {
-       inline bool isDebuggerActive() { return false; }
-    }
-#endif // Platform
-
-#ifdef CATCH_PLATFORM_WINDOWS
-    extern "C" __declspec(dllimport) void __stdcall OutputDebugStringA( const char* );
-    namespace Catch {
-        void writeToDebugConsole( std::string const& text ) {
-            ::OutputDebugStringA( text.c_str() );
-        }
-    }
-#else
-    namespace Catch {
-        void writeToDebugConsole( std::string const& text ) {
-            // !TBD: Need a version for Mac/ XCode and other IDEs
-            Catch::cout() << text;
-        }
-    }
-#endif // Platform
-
-// #included from: catch_tostring.hpp
-#define TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
-
-namespace Catch {
-
-namespace Detail {
-
-    const std::string unprintableString = "{?}";
-
-    namespace {
-        const int hexThreshold = 255;
-
-        struct Endianness {
-            enum Arch { Big, Little };
-
-            static Arch which() {
-                union _{
-                    int asInt;
-                    char asChar[sizeof (int)];
-                } u;
-
-                u.asInt = 1;
-                return ( u.asChar[sizeof(int)-1] == 1 ) ? Big : Little;
-            }
-        };
-    }
-
-    std::string rawMemoryToString( const void *object, std::size_t size )
-    {
-        // Reverse order for little endian architectures
-        int i = 0, end = static_cast<int>( size ), inc = 1;
-        if( Endianness::which() == Endianness::Little ) {
-            i = end-1;
-            end = inc = -1;
-        }
-
-        unsigned char const *bytes = static_cast<unsigned char const *>(object);
-        std::ostringstream os;
-        os << "0x" << std::setfill('0') << std::hex;
-        for( ; i != end; i += inc )
-             os << std::setw(2) << static_cast<unsigned>(bytes[i]);
-       return os.str();
-    }
-}
-
-std::string toString( std::string const& value ) {
-    std::string s = value;
-    if( getCurrentContext().getConfig()->showInvisibles() ) {
-        for(size_t i = 0; i < s.size(); ++i ) {
-            std::string subs;
-            switch( s[i] ) {
-            case '\n': subs = "\\n"; break;
-            case '\t': subs = "\\t"; break;
-            default: break;
-            }
-            if( !subs.empty() ) {
-                s = s.substr( 0, i ) + subs + s.substr( i+1 );
-                ++i;
-            }
-        }
-    }
-    return "\"" + s + "\"";
-}
-std::string toString( std::wstring const& value ) {
-
-    std::string s;
-    s.reserve( value.size() );
-    for(size_t i = 0; i < value.size(); ++i )
-        s += value[i] <= 0xff ? static_cast<char>( value[i] ) : '?';
-    return Catch::toString( s );
-}
-
-std::string toString( const char* const value ) {
-    return value ? Catch::toString( std::string( value ) ) : std::string( "{null string}" );
-}
-
-std::string toString( char* const value ) {
-    return Catch::toString( static_cast<const char*>( value ) );
-}
-
-std::string toString( const wchar_t* const value )
-{
-	return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" );
-}
-
-std::string toString( wchar_t* const value )
-{
-	return Catch::toString( static_cast<const wchar_t*>( value ) );
-}
-
-std::string toString( int value ) {
-    std::ostringstream oss;
-    oss << value;
-    if( value > Detail::hexThreshold )
-        oss << " (0x" << std::hex << value << ")";
-    return oss.str();
-}
-
-std::string toString( unsigned long value ) {
-    std::ostringstream oss;
-    oss << value;
-    if( value > Detail::hexThreshold )
-        oss << " (0x" << std::hex << value << ")";
-    return oss.str();
-}
-
-std::string toString( unsigned int value ) {
-    return Catch::toString( static_cast<unsigned long>( value ) );
-}
-
-template<typename T>
-std::string fpToString( T value, int precision ) {
-    std::ostringstream oss;
-    oss << std::setprecision( precision )
-        << std::fixed
-        << value;
-    std::string d = oss.str();
-    std::size_t i = d.find_last_not_of( '0' );
-    if( i != std::string::npos && i != d.size()-1 ) {
-        if( d[i] == '.' )
-            i++;
-        d = d.substr( 0, i+1 );
-    }
-    return d;
-}
-
-std::string toString( const double value ) {
-    return fpToString( value, 10 );
-}
-std::string toString( const float value ) {
-    return fpToString( value, 5 ) + "f";
-}
-
-std::string toString( bool value ) {
-    return value ? "true" : "false";
-}
-
-std::string toString( char value ) {
-    return value < ' '
-        ? toString( static_cast<unsigned int>( value ) )
-        : Detail::makeString( value );
-}
-
-std::string toString( signed char value ) {
-    return toString( static_cast<char>( value ) );
-}
-
-std::string toString( unsigned char value ) {
-    return toString( static_cast<char>( value ) );
-}
-
-#ifdef CATCH_CONFIG_CPP11_LONG_LONG
-std::string toString( long long value ) {
-    std::ostringstream oss;
-    oss << value;
-    if( value > Detail::hexThreshold )
-        oss << " (0x" << std::hex << value << ")";
-    return oss.str();
-}
-std::string toString( unsigned long long value ) {
-    std::ostringstream oss;
-    oss << value;
-    if( value > Detail::hexThreshold )
-        oss << " (0x" << std::hex << value << ")";
-    return oss.str();
-}
-#endif
-
-#ifdef CATCH_CONFIG_CPP11_NULLPTR
-std::string toString( std::nullptr_t ) {
-    return "nullptr";
-}
-#endif
-
-#ifdef __OBJC__
-    std::string toString( NSString const * const& nsstring ) {
-        if( !nsstring )
-            return "nil";
-        return "@" + toString([nsstring UTF8String]);
-    }
-    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) {
-        if( !nsstring )
-            return "nil";
-        return "@" + toString([nsstring UTF8String]);
-    }
-    std::string toString( NSObject* const& nsObject ) {
-        return toString( [nsObject description] );
-    }
-#endif
-
-} // end namespace Catch
-
-// #included from: catch_result_builder.hpp
-#define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED
-
-namespace Catch {
-
-    std::string capturedExpressionWithSecondArgument( std::string const& capturedExpression, std::string const& secondArg ) {
-        return secondArg.empty() || secondArg == "\"\""
-            ? capturedExpression
-            : capturedExpression + ", " + secondArg;
-    }
-    ResultBuilder::ResultBuilder(   char const* macroName,
-                                    SourceLineInfo const& lineInfo,
-                                    char const* capturedExpression,
-                                    ResultDisposition::Flags resultDisposition,
-                                    char const* secondArg )
-    :   m_assertionInfo( macroName, lineInfo, capturedExpressionWithSecondArgument( capturedExpression, secondArg ), resultDisposition ),
-        m_shouldDebugBreak( false ),
-        m_shouldThrow( false )
-    {}
-
-    ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) {
-        m_data.resultType = result;
-        return *this;
-    }
-    ResultBuilder& ResultBuilder::setResultType( bool result ) {
-        m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed;
-        return *this;
-    }
-    ResultBuilder& ResultBuilder::setLhs( std::string const& lhs ) {
-        m_exprComponents.lhs = lhs;
-        return *this;
-    }
-    ResultBuilder& ResultBuilder::setRhs( std::string const& rhs ) {
-        m_exprComponents.rhs = rhs;
-        return *this;
-    }
-    ResultBuilder& ResultBuilder::setOp( std::string const& op ) {
-        m_exprComponents.op = op;
-        return *this;
-    }
-
-    void ResultBuilder::endExpression() {
-        m_exprComponents.testFalse = isFalseTest( m_assertionInfo.resultDisposition );
-        captureExpression();
-    }
-
-    void ResultBuilder::useActiveException( ResultDisposition::Flags resultDisposition ) {
-        m_assertionInfo.resultDisposition = resultDisposition;
-        m_stream.oss << Catch::translateActiveException();
-        captureResult( ResultWas::ThrewException );
-    }
-
-    void ResultBuilder::captureResult( ResultWas::OfType resultType ) {
-        setResultType( resultType );
-        captureExpression();
-    }
-    void ResultBuilder::captureExpectedException( std::string const& expectedMessage ) {
-        if( expectedMessage.empty() )
-            captureExpectedException( Matchers::Impl::Generic::AllOf<std::string>() );
-        else
-            captureExpectedException( Matchers::Equals( expectedMessage ) );
-    }
-
-    void ResultBuilder::captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher ) {
-
-        assert( m_exprComponents.testFalse == false );
-        AssertionResultData data = m_data;
-        data.resultType = ResultWas::Ok;
-        data.reconstructedExpression = m_assertionInfo.capturedExpression;
-
-        std::string actualMessage = Catch::translateActiveException();
-        if( !matcher.match( actualMessage ) ) {
-            data.resultType = ResultWas::ExpressionFailed;
-            data.reconstructedExpression = actualMessage;
-        }
-        AssertionResult result( m_assertionInfo, data );
-        handleResult( result );
-    }
-
-    void ResultBuilder::captureExpression() {
-        AssertionResult result = build();
-        handleResult( result );
-    }
-    void ResultBuilder::handleResult( AssertionResult const& result )
-    {
-        getResultCapture().assertionEnded( result );
-
-        if( !result.isOk() ) {
-            if( getCurrentContext().getConfig()->shouldDebugBreak() )
-                m_shouldDebugBreak = true;
-            if( getCurrentContext().getRunner()->aborting() || (m_assertionInfo.resultDisposition & ResultDisposition::Normal) )
-                m_shouldThrow = true;
-        }
-    }
-    void ResultBuilder::react() {
-        if( m_shouldThrow )
-            throw Catch::TestFailureException();
-    }
-
-    bool ResultBuilder::shouldDebugBreak() const { return m_shouldDebugBreak; }
-    bool ResultBuilder::allowThrows() const { return getCurrentContext().getConfig()->allowThrows(); }
-
-    AssertionResult ResultBuilder::build() const
-    {
-        assert( m_data.resultType != ResultWas::Unknown );
-
-        AssertionResultData data = m_data;
-
-        // Flip bool results if testFalse is set
-        if( m_exprComponents.testFalse ) {
-            if( data.resultType == ResultWas::Ok )
-                data.resultType = ResultWas::ExpressionFailed;
-            else if( data.resultType == ResultWas::ExpressionFailed )
-                data.resultType = ResultWas::Ok;
-        }
-
-        data.message = m_stream.oss.str();
-        data.reconstructedExpression = reconstructExpression();
-        if( m_exprComponents.testFalse ) {
-            if( m_exprComponents.op == "" )
-                data.reconstructedExpression = "!" + data.reconstructedExpression;
-            else
-                data.reconstructedExpression = "!(" + data.reconstructedExpression + ")";
-        }
-        return AssertionResult( m_assertionInfo, data );
-    }
-    std::string ResultBuilder::reconstructExpression() const {
-        if( m_exprComponents.op == "" )
-            return m_exprComponents.lhs.empty() ? m_assertionInfo.capturedExpression : m_exprComponents.lhs;
-        else if( m_exprComponents.op == "matches" )
-            return m_exprComponents.lhs + " " + m_exprComponents.rhs;
-        else if( m_exprComponents.op != "!" ) {
-            if( m_exprComponents.lhs.size() + m_exprComponents.rhs.size() < 40 &&
-                m_exprComponents.lhs.find("\n") == std::string::npos &&
-                m_exprComponents.rhs.find("\n") == std::string::npos )
-                return m_exprComponents.lhs + " " + m_exprComponents.op + " " + m_exprComponents.rhs;
-            else
-                return m_exprComponents.lhs + "\n" + m_exprComponents.op + "\n" + m_exprComponents.rhs;
-        }
-        else
-            return "{can't expand - use " + m_assertionInfo.macroName + "_FALSE( " + m_assertionInfo.capturedExpression.substr(1) + " ) instead of " + m_assertionInfo.macroName + "( " + m_assertionInfo.capturedExpression + " ) for better diagnostics}";
-    }
-
-} // end namespace Catch
-
-// #included from: catch_tag_alias_registry.hpp
-#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED
-
-// #included from: catch_tag_alias_registry.h
-#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED
-
-#include <map>
-
-namespace Catch {
-
-    class TagAliasRegistry : public ITagAliasRegistry {
-    public:
-        virtual ~TagAliasRegistry();
-        virtual Option<TagAlias> find( std::string const& alias ) const;
-        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const;
-        void add( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
-        static TagAliasRegistry& get();
-
-    private:
-        std::map<std::string, TagAlias> m_registry;
-    };
-
-} // end namespace Catch
-
-#include <map>
-#include <iostream>
-
-namespace Catch {
-
-    TagAliasRegistry::~TagAliasRegistry() {}
-
-    Option<TagAlias> TagAliasRegistry::find( std::string const& alias ) const {
-        std::map<std::string, TagAlias>::const_iterator it = m_registry.find( alias );
-        if( it != m_registry.end() )
-            return it->second;
-        else
-            return Option<TagAlias>();
-    }
-
-    std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const {
-        std::string expandedTestSpec = unexpandedTestSpec;
-        for( std::map<std::string, TagAlias>::const_iterator it = m_registry.begin(), itEnd = m_registry.end();
-                it != itEnd;
-                ++it ) {
-            std::size_t pos = expandedTestSpec.find( it->first );
-            if( pos != std::string::npos ) {
-                expandedTestSpec =  expandedTestSpec.substr( 0, pos ) +
-                                    it->second.tag +
-                                    expandedTestSpec.substr( pos + it->first.size() );
-            }
-        }
-        return expandedTestSpec;
-    }
-
-    void TagAliasRegistry::add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
-
-        if( !startsWith( alias, "[@" ) || !endsWith( alias, "]" ) ) {
-            std::ostringstream oss;
-            oss << "error: tag alias, \"" << alias << "\" is not of the form [@alias name].\n" << lineInfo;
-            throw std::domain_error( oss.str().c_str() );
-        }
-        if( !m_registry.insert( std::make_pair( alias, TagAlias( tag, lineInfo ) ) ).second ) {
-            std::ostringstream oss;
-            oss << "error: tag alias, \"" << alias << "\" already registered.\n"
-                << "\tFirst seen at " << find(alias)->lineInfo << "\n"
-                << "\tRedefined at " << lineInfo;
-            throw std::domain_error( oss.str().c_str() );
-        }
-    }
-
-    TagAliasRegistry& TagAliasRegistry::get() {
-        static TagAliasRegistry instance;
-        return instance;
-
-    }
-
-    ITagAliasRegistry::~ITagAliasRegistry() {}
-    ITagAliasRegistry const& ITagAliasRegistry::get() { return TagAliasRegistry::get(); }
-
-    RegistrarForTagAliases::RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
-        try {
-            TagAliasRegistry::get().add( alias, tag, lineInfo );
-        }
-        catch( std::exception& ex ) {
-            Colour colourGuard( Colour::Red );
-            Catch::cerr() << ex.what() << std::endl;
-            exit(1);
-        }
-    }
-
-} // end namespace Catch
-
-// #included from: ../reporters/catch_reporter_multi.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED
-
-namespace Catch {
-
-class MultipleReporters : public SharedImpl<IStreamingReporter> {
-    typedef std::vector<Ptr<IStreamingReporter> > Reporters;
-    Reporters m_reporters;
-
-public:
-    void add( Ptr<IStreamingReporter> const& reporter ) {
-        m_reporters.push_back( reporter );
-    }
-
-public: // IStreamingReporter
-
-    virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
-        return m_reporters[0]->getPreferences();
-    }
-
-    virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->noMatchingTestCases( spec );
-    }
-
-    virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testRunStarting( testRunInfo );
-    }
-
-    virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testGroupStarting( groupInfo );
-    }
-
-    virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testCaseStarting( testInfo );
-    }
-
-    virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->sectionStarting( sectionInfo );
-    }
-
-    virtual void assertionStarting( AssertionInfo const& assertionInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->assertionStarting( assertionInfo );
-    }
-
-    // The return value indicates if the messages buffer should be cleared:
-    virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
-        bool clearBuffer = false;
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            clearBuffer |= (*it)->assertionEnded( assertionStats );
-        return clearBuffer;
-    }
-
-    virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->sectionEnded( sectionStats );
-    }
-
-    virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testCaseEnded( testCaseStats );
-    }
-
-    virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testGroupEnded( testGroupStats );
-    }
-
-    virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testRunEnded( testRunStats );
-    }
-
-    virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->skipTest( testInfo );
-    }
-
-    virtual MultipleReporters* tryAsMulti() CATCH_OVERRIDE {
-        return this;
-    }
-
-};
-
-Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter ) {
-    Ptr<IStreamingReporter> resultingReporter;
-
-    if( existingReporter ) {
-        MultipleReporters* multi = existingReporter->tryAsMulti();
-        if( !multi ) {
-            multi = new MultipleReporters;
-            resultingReporter = Ptr<IStreamingReporter>( multi );
-            if( existingReporter )
-                multi->add( existingReporter );
-        }
-        else
-            resultingReporter = existingReporter;
-        multi->add( additionalReporter );
-    }
-    else
-        resultingReporter = additionalReporter;
-
-    return resultingReporter;
-}
-
-} // end namespace Catch
-
-// #included from: ../reporters/catch_reporter_xml.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED
-
-// #included from: catch_reporter_bases.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED
-
-#include <cstring>
-
-namespace Catch {
-
-    struct StreamingReporterBase : SharedImpl<IStreamingReporter> {
-
-        StreamingReporterBase( ReporterConfig const& _config )
-        :   m_config( _config.fullConfig() ),
-            stream( _config.stream() )
-        {
-            m_reporterPrefs.shouldRedirectStdOut = false;
-        }
-
-        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
-            return m_reporterPrefs;
-        }
-
-        virtual ~StreamingReporterBase() CATCH_OVERRIDE;
-
-        virtual void noMatchingTestCases( std::string const& ) CATCH_OVERRIDE {}
-
-        virtual void testRunStarting( TestRunInfo const& _testRunInfo ) CATCH_OVERRIDE {
-            currentTestRunInfo = _testRunInfo;
-        }
-        virtual void testGroupStarting( GroupInfo const& _groupInfo ) CATCH_OVERRIDE {
-            currentGroupInfo = _groupInfo;
-        }
-
-        virtual void testCaseStarting( TestCaseInfo const& _testInfo ) CATCH_OVERRIDE {
-            currentTestCaseInfo = _testInfo;
-        }
-        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
-            m_sectionStack.push_back( _sectionInfo );
-        }
-
-        virtual void sectionEnded( SectionStats const& /* _sectionStats */ ) CATCH_OVERRIDE {
-            m_sectionStack.pop_back();
-        }
-        virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats */ ) CATCH_OVERRIDE {
-            currentTestCaseInfo.reset();
-        }
-        virtual void testGroupEnded( TestGroupStats const& /* _testGroupStats */ ) CATCH_OVERRIDE {
-            currentGroupInfo.reset();
-        }
-        virtual void testRunEnded( TestRunStats const& /* _testRunStats */ ) CATCH_OVERRIDE {
-            currentTestCaseInfo.reset();
-            currentGroupInfo.reset();
-            currentTestRunInfo.reset();
-        }
-
-        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {
-            // Don't do anything with this by default.
-            // It can optionally be overridden in the derived class.
-        }
-
-        Ptr<IConfig const> m_config;
-        std::ostream& stream;
-
-        LazyStat<TestRunInfo> currentTestRunInfo;
-        LazyStat<GroupInfo> currentGroupInfo;
-        LazyStat<TestCaseInfo> currentTestCaseInfo;
-
-        std::vector<SectionInfo> m_sectionStack;
-        ReporterPreferences m_reporterPrefs;
-    };
-
-    struct CumulativeReporterBase : SharedImpl<IStreamingReporter> {
-        template<typename T, typename ChildNodeT>
-        struct Node : SharedImpl<> {
-            explicit Node( T const& _value ) : value( _value ) {}
-            virtual ~Node() {}
-
-            typedef std::vector<Ptr<ChildNodeT> > ChildNodes;
-            T value;
-            ChildNodes children;
-        };
-        struct SectionNode : SharedImpl<> {
-            explicit SectionNode( SectionStats const& _stats ) : stats( _stats ) {}
-            virtual ~SectionNode();
-
-            bool operator == ( SectionNode const& other ) const {
-                return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo;
-            }
-            bool operator == ( Ptr<SectionNode> const& other ) const {
-                return operator==( *other );
-            }
-
-            SectionStats stats;
-            typedef std::vector<Ptr<SectionNode> > ChildSections;
-            typedef std::vector<AssertionStats> Assertions;
-            ChildSections childSections;
-            Assertions assertions;
-            std::string stdOut;
-            std::string stdErr;
-        };
-
-        struct BySectionInfo {
-            BySectionInfo( SectionInfo const& other ) : m_other( other ) {}
-			BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {}
-            bool operator() ( Ptr<SectionNode> const& node ) const {
-                return node->stats.sectionInfo.lineInfo == m_other.lineInfo;
-            }
-        private:
-			void operator=( BySectionInfo const& );
-            SectionInfo const& m_other;
-        };
-
-        typedef Node<TestCaseStats, SectionNode> TestCaseNode;
-        typedef Node<TestGroupStats, TestCaseNode> TestGroupNode;
-        typedef Node<TestRunStats, TestGroupNode> TestRunNode;
-
-        CumulativeReporterBase( ReporterConfig const& _config )
-        :   m_config( _config.fullConfig() ),
-            stream( _config.stream() )
-        {
-            m_reporterPrefs.shouldRedirectStdOut = false;
-        }
-        ~CumulativeReporterBase();
-
-        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
-            return m_reporterPrefs;
-        }
-
-        virtual void testRunStarting( TestRunInfo const& ) CATCH_OVERRIDE {}
-        virtual void testGroupStarting( GroupInfo const& ) CATCH_OVERRIDE {}
-
-        virtual void testCaseStarting( TestCaseInfo const& ) CATCH_OVERRIDE {}
-
-        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
-            SectionStats incompleteStats( sectionInfo, Counts(), 0, false );
-            Ptr<SectionNode> node;
-            if( m_sectionStack.empty() ) {
-                if( !m_rootSection )
-                    m_rootSection = new SectionNode( incompleteStats );
-                node = m_rootSection;
-            }
-            else {
-                SectionNode& parentNode = *m_sectionStack.back();
-                SectionNode::ChildSections::const_iterator it =
-                    std::find_if(   parentNode.childSections.begin(),
-                                    parentNode.childSections.end(),
-                                    BySectionInfo( sectionInfo ) );
-                if( it == parentNode.childSections.end() ) {
-                    node = new SectionNode( incompleteStats );
-                    parentNode.childSections.push_back( node );
-                }
-                else
-                    node = *it;
-            }
-            m_sectionStack.push_back( node );
-            m_deepestSection = node;
-        }
-
-        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
-
-        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
-            assert( !m_sectionStack.empty() );
-            SectionNode& sectionNode = *m_sectionStack.back();
-            sectionNode.assertions.push_back( assertionStats );
-            return true;
-        }
-        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
-            assert( !m_sectionStack.empty() );
-            SectionNode& node = *m_sectionStack.back();
-            node.stats = sectionStats;
-            m_sectionStack.pop_back();
-        }
-        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
-            Ptr<TestCaseNode> node = new TestCaseNode( testCaseStats );
-            assert( m_sectionStack.size() == 0 );
-            node->children.push_back( m_rootSection );
-            m_testCases.push_back( node );
-            m_rootSection.reset();
-
-            assert( m_deepestSection );
-            m_deepestSection->stdOut = testCaseStats.stdOut;
-            m_deepestSection->stdErr = testCaseStats.stdErr;
-        }
-        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
-            Ptr<TestGroupNode> node = new TestGroupNode( testGroupStats );
-            node->children.swap( m_testCases );
-            m_testGroups.push_back( node );
-        }
-        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
-            Ptr<TestRunNode> node = new TestRunNode( testRunStats );
-            node->children.swap( m_testGroups );
-            m_testRuns.push_back( node );
-            testRunEndedCumulative();
-        }
-        virtual void testRunEndedCumulative() = 0;
-
-        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {}
-
-        Ptr<IConfig const> m_config;
-        std::ostream& stream;
-        std::vector<AssertionStats> m_assertions;
-        std::vector<std::vector<Ptr<SectionNode> > > m_sections;
-        std::vector<Ptr<TestCaseNode> > m_testCases;
-        std::vector<Ptr<TestGroupNode> > m_testGroups;
-
-        std::vector<Ptr<TestRunNode> > m_testRuns;
-
-        Ptr<SectionNode> m_rootSection;
-        Ptr<SectionNode> m_deepestSection;
-        std::vector<Ptr<SectionNode> > m_sectionStack;
-        ReporterPreferences m_reporterPrefs;
-
-    };
-
-    template<char C>
-    char const* getLineOfChars() {
-        static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0};
-        if( !*line ) {
-            memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 );
-            line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0;
-        }
-        return line;
-    }
-
-    struct TestEventListenerBase : StreamingReporterBase {
-        TestEventListenerBase( ReporterConfig const& _config )
-        :   StreamingReporterBase( _config )
-        {}
-
-        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
-        virtual bool assertionEnded( AssertionStats const& ) CATCH_OVERRIDE {
-            return false;
-        }
-    };
-
-} // end namespace Catch
-
-// #included from: ../internal/catch_reporter_registrars.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
-
-namespace Catch {
-
-    template<typename T>
-    class LegacyReporterRegistrar {
-
-        class ReporterFactory : public IReporterFactory {
-            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
-                return new LegacyReporterAdapter( new T( config ) );
-            }
-
-            virtual std::string getDescription() const {
-                return T::getDescription();
-            }
-        };
-
-    public:
-
-        LegacyReporterRegistrar( std::string const& name ) {
-            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
-        }
-    };
-
-    template<typename T>
-    class ReporterRegistrar {
-
-        class ReporterFactory : public SharedImpl<IReporterFactory> {
-
-            // *** Please Note ***:
-            // - If you end up here looking at a compiler error because it's trying to register
-            // your custom reporter class be aware that the native reporter interface has changed
-            // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via
-            // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter.
-            // However please consider updating to the new interface as the old one is now
-            // deprecated and will probably be removed quite soon!
-            // Please contact me via github if you have any questions at all about this.
-            // In fact, ideally, please contact me anyway to let me know you've hit this - as I have
-            // no idea who is actually using custom reporters at all (possibly no-one!).
-            // The new interface is designed to minimise exposure to interface changes in the future.
-            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
-                return new T( config );
-            }
-
-            virtual std::string getDescription() const {
-                return T::getDescription();
-            }
-        };
-
-    public:
-
-        ReporterRegistrar( std::string const& name ) {
-            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
-        }
-    };
-
-    template<typename T>
-    class ListenerRegistrar {
-
-        class ListenerFactory : public SharedImpl<IReporterFactory> {
-
-            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
-                return new T( config );
-            }
-            virtual std::string getDescription() const {
-                return "";
-            }
-        };
-
-    public:
-
-        ListenerRegistrar() {
-            getMutableRegistryHub().registerListener( new ListenerFactory() );
-        }
-    };
-}
-
-#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \
-    namespace{ Catch::LegacyReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
-
-#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \
-    namespace{ Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
-
-#define INTERNAL_CATCH_REGISTER_LISTENER( listenerType ) \
-    namespace{ Catch::ListenerRegistrar<listenerType> catch_internal_RegistrarFor##listenerType; }
-
-// #included from: ../internal/catch_xmlwriter.hpp
-#define TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED
-
-#include <sstream>
-#include <string>
-#include <vector>
-#include <iomanip>
-
-namespace Catch {
-
-    class XmlEncode {
-    public:
-        enum ForWhat { ForTextNodes, ForAttributes };
-
-        XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes )
-        :   m_str( str ),
-            m_forWhat( forWhat )
-        {}
-
-        void encodeTo( std::ostream& os ) const {
-
-            // Apostrophe escaping not necessary if we always use " to write attributes
-            // (see: http://www.w3.org/TR/xml/#syntax)
-
-            for( std::size_t i = 0; i < m_str.size(); ++ i ) {
-                char c = m_str[i];
-                switch( c ) {
-                    case '<':   os << "&lt;"; break;
-                    case '&':   os << "&amp;"; break;
-
-                    case '>':
-                        // See: http://www.w3.org/TR/xml/#syntax
-                        if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' )
-                            os << "&gt;";
-                        else
-                            os << c;
-                        break;
-
-                    case '\"':
-                        if( m_forWhat == ForAttributes )
-                            os << "&quot;";
-                        else
-                            os << c;
-                        break;
-
-                    default:
-                        // Escape control chars - based on contribution by @espenalb in PR #465 and
-                        // by @mrpi PR #588
-                        if ( ( c >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' )
-                            os << "&#x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2) << static_cast<int>( c ) << ';';
-                        else
-                            os << c;
-                }
-            }
-        }
-
-        friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) {
-            xmlEncode.encodeTo( os );
-            return os;
-        }
-
-    private:
-        std::string m_str;
-        ForWhat m_forWhat;
-    };
-
-    class XmlWriter {
-    public:
-
-        class ScopedElement {
-        public:
-            ScopedElement( XmlWriter* writer )
-            :   m_writer( writer )
-            {}
-
-            ScopedElement( ScopedElement const& other )
-            :   m_writer( other.m_writer ){
-                other.m_writer = CATCH_NULL;
-            }
-
-            ~ScopedElement() {
-                if( m_writer )
-                    m_writer->endElement();
-            }
-
-            ScopedElement& writeText( std::string const& text, bool indent = true ) {
-                m_writer->writeText( text, indent );
-                return *this;
-            }
-
-            template<typename T>
-            ScopedElement& writeAttribute( std::string const& name, T const& attribute ) {
-                m_writer->writeAttribute( name, attribute );
-                return *this;
-            }
-
-        private:
-            mutable XmlWriter* m_writer;
-        };
-
-        XmlWriter()
-        :   m_tagIsOpen( false ),
-            m_needsNewline( false ),
-            m_os( &Catch::cout() )
-        {
-            // We encode control characters, which requires
-            // XML 1.1
-            // see http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0
-            *m_os << "<?xml version=\"1.1\" encoding=\"UTF-8\"?>\n";
-        }
-
-        XmlWriter( std::ostream& os )
-        :   m_tagIsOpen( false ),
-            m_needsNewline( false ),
-            m_os( &os )
-        {
-            *m_os << "<?xml version=\"1.1\" encoding=\"UTF-8\"?>\n";
-        }
-
-        ~XmlWriter() {
-            while( !m_tags.empty() )
-                endElement();
-        }
-
-        XmlWriter& startElement( std::string const& name ) {
-            ensureTagClosed();
-            newlineIfNecessary();
-            stream() << m_indent << "<" << name;
-            m_tags.push_back( name );
-            m_indent += "  ";
-            m_tagIsOpen = true;
-            return *this;
-        }
-
-        ScopedElement scopedElement( std::string const& name ) {
-            ScopedElement scoped( this );
-            startElement( name );
-            return scoped;
-        }
-
-        XmlWriter& endElement() {
-            newlineIfNecessary();
-            m_indent = m_indent.substr( 0, m_indent.size()-2 );
-            if( m_tagIsOpen ) {
-                stream() << "/>\n";
-                m_tagIsOpen = false;
-            }
-            else {
-                stream() << m_indent << "</" << m_tags.back() << ">\n";
-            }
-            m_tags.pop_back();
-            return *this;
-        }
-
-        XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) {
-            if( !name.empty() && !attribute.empty() )
-                stream() << " " << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << "\"";
-            return *this;
-        }
-
-        XmlWriter& writeAttribute( std::string const& name, bool attribute ) {
-            stream() << " " << name << "=\"" << ( attribute ? "true" : "false" ) << "\"";
-            return *this;
-        }
-
-        template<typename T>
-        XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
-            std::ostringstream oss;
-            oss << attribute;
-            return writeAttribute( name, oss.str() );
-        }
-
-        XmlWriter& writeText( std::string const& text, bool indent = true ) {
-            if( !text.empty() ){
-                bool tagWasOpen = m_tagIsOpen;
-                ensureTagClosed();
-                if( tagWasOpen && indent )
-                    stream() << m_indent;
-                stream() << XmlEncode( text );
-                m_needsNewline = true;
-            }
-            return *this;
-        }
-
-        XmlWriter& writeComment( std::string const& text ) {
-            ensureTagClosed();
-            stream() << m_indent << "<!--" << text << "-->";
-            m_needsNewline = true;
-            return *this;
-        }
-
-        XmlWriter& writeBlankLine() {
-            ensureTagClosed();
-            stream() << "\n";
-            return *this;
-        }
-
-        void setStream( std::ostream& os ) {
-            m_os = &os;
-        }
-
-    private:
-        XmlWriter( XmlWriter const& );
-        void operator=( XmlWriter const& );
-
-        std::ostream& stream() {
-            return *m_os;
-        }
-
-        void ensureTagClosed() {
-            if( m_tagIsOpen ) {
-                stream() << ">\n";
-                m_tagIsOpen = false;
-            }
-        }
-
-        void newlineIfNecessary() {
-            if( m_needsNewline ) {
-                stream() << "\n";
-                m_needsNewline = false;
-            }
-        }
-
-        bool m_tagIsOpen;
-        bool m_needsNewline;
-        std::vector<std::string> m_tags;
-        std::string m_indent;
-        std::ostream* m_os;
-    };
-
-}
-// #included from: catch_reenable_warnings.h
-
-#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED
-
-#ifdef __clang__
-#    ifdef __ICC // icpc defines the __clang__ macro
-#        pragma warning(pop)
-#    else
-#        pragma clang diagnostic pop
-#    endif
-#elif defined __GNUC__
-#    pragma GCC diagnostic pop
-#endif
-
-
-namespace Catch {
-    class XmlReporter : public StreamingReporterBase {
-    public:
-        XmlReporter( ReporterConfig const& _config )
-        :   StreamingReporterBase( _config ),
-            m_xml(_config.stream()),
-            m_sectionDepth( 0 )
-        {
-            m_reporterPrefs.shouldRedirectStdOut = true;
-        }
-
-        virtual ~XmlReporter() CATCH_OVERRIDE;
-
-        static std::string getDescription() {
-            return "Reports test results as an XML document";
-        }
-
-    public: // StreamingReporterBase
-
-        virtual void noMatchingTestCases( std::string const& s ) CATCH_OVERRIDE {
-            StreamingReporterBase::noMatchingTestCases( s );
-        }
-
-        virtual void testRunStarting( TestRunInfo const& testInfo ) CATCH_OVERRIDE {
-            StreamingReporterBase::testRunStarting( testInfo );
-            m_xml.startElement( "Catch" );
-            if( !m_config->name().empty() )
-                m_xml.writeAttribute( "name", m_config->name() );
-        }
-
-        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
-            StreamingReporterBase::testGroupStarting( groupInfo );
-            m_xml.startElement( "Group" )
-                .writeAttribute( "name", groupInfo.name );
-        }
-
-        virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
-            StreamingReporterBase::testCaseStarting(testInfo);
-            m_xml.startElement( "TestCase" ).writeAttribute( "name", testInfo.name );
-
-            if ( m_config->showDurations() == ShowDurations::Always )
-                m_testCaseTimer.start();
-        }
-
-        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
-            StreamingReporterBase::sectionStarting( sectionInfo );
-            if( m_sectionDepth++ > 0 ) {
-                m_xml.startElement( "Section" )
-                    .writeAttribute( "name", trim( sectionInfo.name ) )
-                    .writeAttribute( "description", sectionInfo.description );
-            }
-        }
-
-        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { }
-
-        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
-            const AssertionResult& assertionResult = assertionStats.assertionResult;
-
-            // Print any info messages in <Info> tags.
-            if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
-                for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
-                        it != itEnd;
-                        ++it ) {
-                    if( it->type == ResultWas::Info ) {
-                        m_xml.scopedElement( "Info" )
-                            .writeText( it->message );
-                    } else if ( it->type == ResultWas::Warning ) {
-                        m_xml.scopedElement( "Warning" )
-                            .writeText( it->message );
-                    }
-                }
-            }
-
-            // Drop out if result was successful but we're not printing them.
-            if( !m_config->includeSuccessfulResults() && isOk(assertionResult.getResultType()) )
-                return true;
-
-            // Print the expression if there is one.
-            if( assertionResult.hasExpression() ) {
-                m_xml.startElement( "Expression" )
-                    .writeAttribute( "success", assertionResult.succeeded() )
-					.writeAttribute( "type", assertionResult.getTestMacroName() )
-                    .writeAttribute( "filename", assertionResult.getSourceInfo().file )
-                    .writeAttribute( "line", assertionResult.getSourceInfo().line );
-
-                m_xml.scopedElement( "Original" )
-                    .writeText( assertionResult.getExpression() );
-                m_xml.scopedElement( "Expanded" )
-                    .writeText( assertionResult.getExpandedExpression() );
-            }
-
-            // And... Print a result applicable to each result type.
-            switch( assertionResult.getResultType() ) {
-                case ResultWas::ThrewException:
-                    m_xml.scopedElement( "Exception" )
-                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
-                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
-                        .writeText( assertionResult.getMessage() );
-                    break;
-                case ResultWas::FatalErrorCondition:
-                    m_xml.scopedElement( "FatalErrorCondition" )
-                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
-                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
-                        .writeText( assertionResult.getMessage() );
-                    break;
-                case ResultWas::Info:
-                    m_xml.scopedElement( "Info" )
-                        .writeText( assertionResult.getMessage() );
-                    break;
-                case ResultWas::Warning:
-                    // Warning will already have been written
-                    break;
-                case ResultWas::ExplicitFailure:
-                    m_xml.scopedElement( "Failure" )
-                        .writeText( assertionResult.getMessage() );
-                    break;
-                default:
-                    break;
-            }
-
-            if( assertionResult.hasExpression() )
-                m_xml.endElement();
-
-            return true;
-        }
-
-        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
-            StreamingReporterBase::sectionEnded( sectionStats );
-            if( --m_sectionDepth > 0 ) {
-                XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" );
-                e.writeAttribute( "successes", sectionStats.assertions.passed );
-                e.writeAttribute( "failures", sectionStats.assertions.failed );
-                e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk );
-
-                if ( m_config->showDurations() == ShowDurations::Always )
-                    e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds );
-
-                m_xml.endElement();
-            }
-        }
-
-        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
-            StreamingReporterBase::testCaseEnded( testCaseStats );
-            XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" );
-            e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() );
-
-            if ( m_config->showDurations() == ShowDurations::Always )
-                e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() );
-
-            m_xml.endElement();
-        }
-
-        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
-            StreamingReporterBase::testGroupEnded( testGroupStats );
-            // TODO: Check testGroupStats.aborting and act accordingly.
-            m_xml.scopedElement( "OverallResults" )
-                .writeAttribute( "successes", testGroupStats.totals.assertions.passed )
-                .writeAttribute( "failures", testGroupStats.totals.assertions.failed )
-                .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk );
-            m_xml.endElement();
-        }
-
-        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
-            StreamingReporterBase::testRunEnded( testRunStats );
-            m_xml.scopedElement( "OverallResults" )
-                .writeAttribute( "successes", testRunStats.totals.assertions.passed )
-                .writeAttribute( "failures", testRunStats.totals.assertions.failed )
-                .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk );
-            m_xml.endElement();
-        }
-
-    private:
-        Timer m_testCaseTimer;
-        XmlWriter m_xml;
-        int m_sectionDepth;
-    };
-
-     INTERNAL_CATCH_REGISTER_REPORTER( "xml", XmlReporter )
-
-} // end namespace Catch
-
-// #included from: ../reporters/catch_reporter_junit.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED
-
-#include <assert.h>
-
-namespace Catch {
-
-    class JunitReporter : public CumulativeReporterBase {
-    public:
-        JunitReporter( ReporterConfig const& _config )
-        :   CumulativeReporterBase( _config ),
-            xml( _config.stream() )
-        {
-            m_reporterPrefs.shouldRedirectStdOut = true;
-        }
-
-        virtual ~JunitReporter() CATCH_OVERRIDE;
-
-        static std::string getDescription() {
-            return "Reports test results in an XML format that looks like Ant's junitreport target";
-        }
-
-        virtual void noMatchingTestCases( std::string const& /*spec*/ ) CATCH_OVERRIDE {}
-
-        virtual void testRunStarting( TestRunInfo const& runInfo ) CATCH_OVERRIDE {
-            CumulativeReporterBase::testRunStarting( runInfo );
-            xml.startElement( "testsuites" );
-        }
-
-        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
-            suiteTimer.start();
-            stdOutForSuite.str("");
-            stdErrForSuite.str("");
-            unexpectedExceptions = 0;
-            CumulativeReporterBase::testGroupStarting( groupInfo );
-        }
-
-        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
-            if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException )
-                unexpectedExceptions++;
-            return CumulativeReporterBase::assertionEnded( assertionStats );
-        }
-
-        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
-            stdOutForSuite << testCaseStats.stdOut;
-            stdErrForSuite << testCaseStats.stdErr;
-            CumulativeReporterBase::testCaseEnded( testCaseStats );
-        }
-
-        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
-            double suiteTime = suiteTimer.getElapsedSeconds();
-            CumulativeReporterBase::testGroupEnded( testGroupStats );
-            writeGroup( *m_testGroups.back(), suiteTime );
-        }
-
-        virtual void testRunEndedCumulative() CATCH_OVERRIDE {
-            xml.endElement();
-        }
-
-        void writeGroup( TestGroupNode const& groupNode, double suiteTime ) {
-            XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" );
-            TestGroupStats const& stats = groupNode.value;
-            xml.writeAttribute( "name", stats.groupInfo.name );
-            xml.writeAttribute( "errors", unexpectedExceptions );
-            xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions );
-            xml.writeAttribute( "tests", stats.totals.assertions.total() );
-            xml.writeAttribute( "hostname", "tbd" ); // !TBD
-            if( m_config->showDurations() == ShowDurations::Never )
-                xml.writeAttribute( "time", "" );
-            else
-                xml.writeAttribute( "time", suiteTime );
-            xml.writeAttribute( "timestamp", "tbd" ); // !TBD
-
-            // Write test cases
-            for( TestGroupNode::ChildNodes::const_iterator
-                    it = groupNode.children.begin(), itEnd = groupNode.children.end();
-                    it != itEnd;
-                    ++it )
-                writeTestCase( **it );
-
-            xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite.str() ), false );
-            xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite.str() ), false );
-        }
-
-        void writeTestCase( TestCaseNode const& testCaseNode ) {
-            TestCaseStats const& stats = testCaseNode.value;
-
-            // All test cases have exactly one section - which represents the
-            // test case itself. That section may have 0-n nested sections
-            assert( testCaseNode.children.size() == 1 );
-            SectionNode const& rootSection = *testCaseNode.children.front();
-
-            std::string className = stats.testInfo.className;
-
-            if( className.empty() ) {
-                if( rootSection.childSections.empty() )
-                    className = "global";
-            }
-            writeSection( className, "", rootSection );
-        }
-
-        void writeSection(  std::string const& className,
-                            std::string const& rootName,
-                            SectionNode const& sectionNode ) {
-            std::string name = trim( sectionNode.stats.sectionInfo.name );
-            if( !rootName.empty() )
-                name = rootName + "/" + name;
-
-            if( !sectionNode.assertions.empty() ||
-                !sectionNode.stdOut.empty() ||
-                !sectionNode.stdErr.empty() ) {
-                XmlWriter::ScopedElement e = xml.scopedElement( "testcase" );
-                if( className.empty() ) {
-                    xml.writeAttribute( "classname", name );
-                    xml.writeAttribute( "name", "root" );
-                }
-                else {
-                    xml.writeAttribute( "classname", className );
-                    xml.writeAttribute( "name", name );
-                }
-                xml.writeAttribute( "time", Catch::toString( sectionNode.stats.durationInSeconds ) );
-
-                writeAssertions( sectionNode );
-
-                if( !sectionNode.stdOut.empty() )
-                    xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), false );
-                if( !sectionNode.stdErr.empty() )
-                    xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), false );
-            }
-            for( SectionNode::ChildSections::const_iterator
-                    it = sectionNode.childSections.begin(),
-                    itEnd = sectionNode.childSections.end();
-                    it != itEnd;
-                    ++it )
-                if( className.empty() )
-                    writeSection( name, "", **it );
-                else
-                    writeSection( className, name, **it );
-        }
-
-        void writeAssertions( SectionNode const& sectionNode ) {
-            for( SectionNode::Assertions::const_iterator
-                    it = sectionNode.assertions.begin(), itEnd = sectionNode.assertions.end();
-                    it != itEnd;
-                    ++it )
-                writeAssertion( *it );
-        }
-        void writeAssertion( AssertionStats const& stats ) {
-            AssertionResult const& result = stats.assertionResult;
-            if( !result.isOk() ) {
-                std::string elementName;
-                switch( result.getResultType() ) {
-                    case ResultWas::ThrewException:
-                    case ResultWas::FatalErrorCondition:
-                        elementName = "error";
-                        break;
-                    case ResultWas::ExplicitFailure:
-                        elementName = "failure";
-                        break;
-                    case ResultWas::ExpressionFailed:
-                        elementName = "failure";
-                        break;
-                    case ResultWas::DidntThrowException:
-                        elementName = "failure";
-                        break;
-
-                    // We should never see these here:
-                    case ResultWas::Info:
-                    case ResultWas::Warning:
-                    case ResultWas::Ok:
-                    case ResultWas::Unknown:
-                    case ResultWas::FailureBit:
-                    case ResultWas::Exception:
-                        elementName = "internalError";
-                        break;
-                }
-
-                XmlWriter::ScopedElement e = xml.scopedElement( elementName );
-
-                xml.writeAttribute( "message", result.getExpandedExpression() );
-                xml.writeAttribute( "type", result.getTestMacroName() );
-
-                std::ostringstream oss;
-                if( !result.getMessage().empty() )
-                    oss << result.getMessage() << "\n";
-                for( std::vector<MessageInfo>::const_iterator
-                        it = stats.infoMessages.begin(),
-                        itEnd = stats.infoMessages.end();
-                            it != itEnd;
-                            ++it )
-                    if( it->type == ResultWas::Info )
-                        oss << it->message << "\n";
-
-                oss << "at " << result.getSourceInfo();
-                xml.writeText( oss.str(), false );
-            }
-        }
-
-        XmlWriter xml;
-        Timer suiteTimer;
-        std::ostringstream stdOutForSuite;
-        std::ostringstream stdErrForSuite;
-        unsigned int unexpectedExceptions;
-    };
-
-    INTERNAL_CATCH_REGISTER_REPORTER( "junit", JunitReporter )
-
-} // end namespace Catch
-
-// #included from: ../reporters/catch_reporter_console.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED
-
-namespace Catch {
-
-    struct ConsoleReporter : StreamingReporterBase {
-        ConsoleReporter( ReporterConfig const& _config )
-        :   StreamingReporterBase( _config ),
-            m_headerPrinted( false )
-        {}
-
-        virtual ~ConsoleReporter() CATCH_OVERRIDE;
-        static std::string getDescription() {
-            return "Reports test results as plain lines of text";
-        }
-
-        virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
-            stream << "No test cases matched '" << spec << "'" << std::endl;
-        }
-
-        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {
-        }
-
-        virtual bool assertionEnded( AssertionStats const& _assertionStats ) CATCH_OVERRIDE {
-            AssertionResult const& result = _assertionStats.assertionResult;
-
-            bool printInfoMessages = true;
-
-            // Drop out if result was successful and we're not printing those
-            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
-                if( result.getResultType() != ResultWas::Warning )
-                    return false;
-                printInfoMessages = false;
-            }
-
-            lazyPrint();
-
-            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
-            printer.print();
-            stream << std::endl;
-            return true;
-        }
-
-        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
-            m_headerPrinted = false;
-            StreamingReporterBase::sectionStarting( _sectionInfo );
-        }
-        virtual void sectionEnded( SectionStats const& _sectionStats ) CATCH_OVERRIDE {
-            if( _sectionStats.missingAssertions ) {
-                lazyPrint();
-                Colour colour( Colour::ResultError );
-                if( m_sectionStack.size() > 1 )
-                    stream << "\nNo assertions in section";
-                else
-                    stream << "\nNo assertions in test case";
-                stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl;
-            }
-            if( m_headerPrinted ) {
-                if( m_config->showDurations() == ShowDurations::Always )
-                    stream << "Completed in " << _sectionStats.durationInSeconds << "s" << std::endl;
-                m_headerPrinted = false;
-            }
-            else {
-                if( m_config->showDurations() == ShowDurations::Always )
-                    stream << _sectionStats.sectionInfo.name << " completed in " << _sectionStats.durationInSeconds << "s" << std::endl;
-            }
-            StreamingReporterBase::sectionEnded( _sectionStats );
-        }
-
-        virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CATCH_OVERRIDE {
-            StreamingReporterBase::testCaseEnded( _testCaseStats );
-            m_headerPrinted = false;
-        }
-        virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) CATCH_OVERRIDE {
-            if( currentGroupInfo.used ) {
-                printSummaryDivider();
-                stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n";
-                printTotals( _testGroupStats.totals );
-                stream << "\n" << std::endl;
-            }
-            StreamingReporterBase::testGroupEnded( _testGroupStats );
-        }
-        virtual void testRunEnded( TestRunStats const& _testRunStats ) CATCH_OVERRIDE {
-            printTotalsDivider( _testRunStats.totals );
-            printTotals( _testRunStats.totals );
-            stream << std::endl;
-            StreamingReporterBase::testRunEnded( _testRunStats );
-        }
-
-    private:
-
-        class AssertionPrinter {
-            void operator= ( AssertionPrinter const& );
-        public:
-            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
-            :   stream( _stream ),
-                stats( _stats ),
-                result( _stats.assertionResult ),
-                colour( Colour::None ),
-                message( result.getMessage() ),
-                messages( _stats.infoMessages ),
-                printInfoMessages( _printInfoMessages )
-            {
-                switch( result.getResultType() ) {
-                    case ResultWas::Ok:
-                        colour = Colour::Success;
-                        passOrFail = "PASSED";
-                        //if( result.hasMessage() )
-                        if( _stats.infoMessages.size() == 1 )
-                            messageLabel = "with message";
-                        if( _stats.infoMessages.size() > 1 )
-                            messageLabel = "with messages";
-                        break;
-                    case ResultWas::ExpressionFailed:
-                        if( result.isOk() ) {
-                            colour = Colour::Success;
-                            passOrFail = "FAILED - but was ok";
-                        }
-                        else {
-                            colour = Colour::Error;
-                            passOrFail = "FAILED";
-                        }
-                        if( _stats.infoMessages.size() == 1 )
-                            messageLabel = "with message";
-                        if( _stats.infoMessages.size() > 1 )
-                            messageLabel = "with messages";
-                        break;
-                    case ResultWas::ThrewException:
-                        colour = Colour::Error;
-                        passOrFail = "FAILED";
-                        messageLabel = "due to unexpected exception with message";
-                        break;
-                    case ResultWas::FatalErrorCondition:
-                        colour = Colour::Error;
-                        passOrFail = "FAILED";
-                        messageLabel = "due to a fatal error condition";
-                        break;
-                    case ResultWas::DidntThrowException:
-                        colour = Colour::Error;
-                        passOrFail = "FAILED";
-                        messageLabel = "because no exception was thrown where one was expected";
-                        break;
-                    case ResultWas::Info:
-                        messageLabel = "info";
-                        break;
-                    case ResultWas::Warning:
-                        messageLabel = "warning";
-                        break;
-                    case ResultWas::ExplicitFailure:
-                        passOrFail = "FAILED";
-                        colour = Colour::Error;
-                        if( _stats.infoMessages.size() == 1 )
-                            messageLabel = "explicitly with message";
-                        if( _stats.infoMessages.size() > 1 )
-                            messageLabel = "explicitly with messages";
-                        break;
-                    // These cases are here to prevent compiler warnings
-                    case ResultWas::Unknown:
-                    case ResultWas::FailureBit:
-                    case ResultWas::Exception:
-                        passOrFail = "** internal error **";
-                        colour = Colour::Error;
-                        break;
-                }
-            }
-
-            void print() const {
-                printSourceInfo();
-                if( stats.totals.assertions.total() > 0 ) {
-                    if( result.isOk() )
-                        stream << "\n";
-                    printResultType();
-                    printOriginalExpression();
-                    printReconstructedExpression();
-                }
-                else {
-                    stream << "\n";
-                }
-                printMessage();
-            }
-
-        private:
-            void printResultType() const {
-                if( !passOrFail.empty() ) {
-                    Colour colourGuard( colour );
-                    stream << passOrFail << ":\n";
-                }
-            }
-            void printOriginalExpression() const {
-                if( result.hasExpression() ) {
-                    Colour colourGuard( Colour::OriginalExpression );
-                    stream  << "  ";
-                    stream << result.getExpressionInMacro();
-                    stream << "\n";
-                }
-            }
-            void printReconstructedExpression() const {
-                if( result.hasExpandedExpression() ) {
-                    stream << "with expansion:\n";
-                    Colour colourGuard( Colour::ReconstructedExpression );
-                    stream << Text( result.getExpandedExpression(), TextAttributes().setIndent(2) ) << "\n";
-                }
-            }
-            void printMessage() const {
-                if( !messageLabel.empty() )
-                    stream << messageLabel << ":" << "\n";
-                for( std::vector<MessageInfo>::const_iterator it = messages.begin(), itEnd = messages.end();
-                        it != itEnd;
-                        ++it ) {
-                    // If this assertion is a warning ignore any INFO messages
-                    if( printInfoMessages || it->type != ResultWas::Info )
-                        stream << Text( it->message, TextAttributes().setIndent(2) ) << "\n";
-                }
-            }
-            void printSourceInfo() const {
-                Colour colourGuard( Colour::FileName );
-                stream << result.getSourceInfo() << ": ";
-            }
-
-            std::ostream& stream;
-            AssertionStats const& stats;
-            AssertionResult const& result;
-            Colour::Code colour;
-            std::string passOrFail;
-            std::string messageLabel;
-            std::string message;
-            std::vector<MessageInfo> messages;
-            bool printInfoMessages;
-        };
-
-        void lazyPrint() {
-
-            if( !currentTestRunInfo.used )
-                lazyPrintRunInfo();
-            if( !currentGroupInfo.used )
-                lazyPrintGroupInfo();
-
-            if( !m_headerPrinted ) {
-                printTestCaseAndSectionHeader();
-                m_headerPrinted = true;
-            }
-        }
-        void lazyPrintRunInfo() {
-            stream  << "\n" << getLineOfChars<'~'>() << "\n";
-            Colour colour( Colour::SecondaryText );
-            stream  << currentTestRunInfo->name
-                    << " is a Catch v"  << libraryVersion << " host application.\n"
-                    << "Run with -? for options\n\n";
-
-            if( m_config->rngSeed() != 0 )
-                stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n";
-
-            currentTestRunInfo.used = true;
-        }
-        void lazyPrintGroupInfo() {
-            if( !currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1 ) {
-                printClosedHeader( "Group: " + currentGroupInfo->name );
-                currentGroupInfo.used = true;
-            }
-        }
-        void printTestCaseAndSectionHeader() {
-            assert( !m_sectionStack.empty() );
-            printOpenHeader( currentTestCaseInfo->name );
-
-            if( m_sectionStack.size() > 1 ) {
-                Colour colourGuard( Colour::Headers );
-
-                std::vector<SectionInfo>::const_iterator
-                    it = m_sectionStack.begin()+1, // Skip first section (test case)
-                    itEnd = m_sectionStack.end();
-                for( ; it != itEnd; ++it )
-                    printHeaderString( it->name, 2 );
-            }
-
-            SourceLineInfo lineInfo = m_sectionStack.front().lineInfo;
-
-            if( !lineInfo.empty() ){
-                stream << getLineOfChars<'-'>() << "\n";
-                Colour colourGuard( Colour::FileName );
-                stream << lineInfo << "\n";
-            }
-            stream << getLineOfChars<'.'>() << "\n" << std::endl;
-        }
-
-        void printClosedHeader( std::string const& _name ) {
-            printOpenHeader( _name );
-            stream << getLineOfChars<'.'>() << "\n";
-        }
-        void printOpenHeader( std::string const& _name ) {
-            stream  << getLineOfChars<'-'>() << "\n";
-            {
-                Colour colourGuard( Colour::Headers );
-                printHeaderString( _name );
-            }
-        }
-
-        // if string has a : in first line will set indent to follow it on
-        // subsequent lines
-        void printHeaderString( std::string const& _string, std::size_t indent = 0 ) {
-            std::size_t i = _string.find( ": " );
-            if( i != std::string::npos )
-                i+=2;
-            else
-                i = 0;
-            stream << Text( _string, TextAttributes()
-                                        .setIndent( indent+i)
-                                        .setInitialIndent( indent ) ) << "\n";
-        }
-
-        struct SummaryColumn {
-
-            SummaryColumn( std::string const& _label, Colour::Code _colour )
-            :   label( _label ),
-                colour( _colour )
-            {}
-            SummaryColumn addRow( std::size_t count ) {
-                std::ostringstream oss;
-                oss << count;
-                std::string row = oss.str();
-                for( std::vector<std::string>::iterator it = rows.begin(); it != rows.end(); ++it ) {
-                    while( it->size() < row.size() )
-                        *it = " " + *it;
-                    while( it->size() > row.size() )
-                        row = " " + row;
-                }
-                rows.push_back( row );
-                return *this;
-            }
-
-            std::string label;
-            Colour::Code colour;
-            std::vector<std::string> rows;
-
-        };
-
-        void printTotals( Totals const& totals ) {
-            if( totals.testCases.total() == 0 ) {
-                stream << Colour( Colour::Warning ) << "No tests ran\n";
-            }
-            else if( totals.assertions.total() > 0 && totals.testCases.allPassed() ) {
-                stream << Colour( Colour::ResultSuccess ) << "All tests passed";
-                stream << " ("
-                        << pluralise( totals.assertions.passed, "assertion" ) << " in "
-                        << pluralise( totals.testCases.passed, "test case" ) << ")"
-                        << "\n";
-            }
-            else {
-
-                std::vector<SummaryColumn> columns;
-                columns.push_back( SummaryColumn( "", Colour::None )
-                                        .addRow( totals.testCases.total() )
-                                        .addRow( totals.assertions.total() ) );
-                columns.push_back( SummaryColumn( "passed", Colour::Success )
-                                        .addRow( totals.testCases.passed )
-                                        .addRow( totals.assertions.passed ) );
-                columns.push_back( SummaryColumn( "failed", Colour::ResultError )
-                                        .addRow( totals.testCases.failed )
-                                        .addRow( totals.assertions.failed ) );
-                columns.push_back( SummaryColumn( "failed as expected", Colour::ResultExpectedFailure )
-                                        .addRow( totals.testCases.failedButOk )
-                                        .addRow( totals.assertions.failedButOk ) );
-
-                printSummaryRow( "test cases", columns, 0 );
-                printSummaryRow( "assertions", columns, 1 );
-            }
-        }
-        void printSummaryRow( std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row ) {
-            for( std::vector<SummaryColumn>::const_iterator it = cols.begin(); it != cols.end(); ++it ) {
-                std::string value = it->rows[row];
-                if( it->label.empty() ) {
-                    stream << label << ": ";
-                    if( value != "0" )
-                        stream << value;
-                    else
-                        stream << Colour( Colour::Warning ) << "- none -";
-                }
-                else if( value != "0" ) {
-                    stream  << Colour( Colour::LightGrey ) << " | ";
-                    stream  << Colour( it->colour )
-                            << value << " " << it->label;
-                }
-            }
-            stream << "\n";
-        }
-
-        static std::size_t makeRatio( std::size_t number, std::size_t total ) {
-            std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0;
-            return ( ratio == 0 && number > 0 ) ? 1 : ratio;
-        }
-        static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) {
-            if( i > j && i > k )
-                return i;
-            else if( j > k )
-                return j;
-            else
-                return k;
-        }
-
-        void printTotalsDivider( Totals const& totals ) {
-            if( totals.testCases.total() > 0 ) {
-                std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() );
-                std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() );
-                std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() );
-                while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 )
-                    findMax( failedRatio, failedButOkRatio, passedRatio )++;
-                while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 )
-                    findMax( failedRatio, failedButOkRatio, passedRatio )--;
-
-                stream << Colour( Colour::Error ) << std::string( failedRatio, '=' );
-                stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' );
-                if( totals.testCases.allPassed() )
-                    stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' );
-                else
-                    stream << Colour( Colour::Success ) << std::string( passedRatio, '=' );
-            }
-            else {
-                stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' );
-            }
-            stream << "\n";
-        }
-        void printSummaryDivider() {
-            stream << getLineOfChars<'-'>() << "\n";
-        }
-
-    private:
-        bool m_headerPrinted;
-    };
-
-    INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter )
-
-} // end namespace Catch
-
-// #included from: ../reporters/catch_reporter_compact.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED
-
-namespace Catch {
-
-    struct CompactReporter : StreamingReporterBase {
-
-        CompactReporter( ReporterConfig const& _config )
-        : StreamingReporterBase( _config )
-        {}
-
-        virtual ~CompactReporter();
-
-        static std::string getDescription() {
-            return "Reports test results on a single line, suitable for IDEs";
-        }
-
-        virtual ReporterPreferences getPreferences() const {
-            ReporterPreferences prefs;
-            prefs.shouldRedirectStdOut = false;
-            return prefs;
-        }
-
-        virtual void noMatchingTestCases( std::string const& spec ) {
-            stream << "No test cases matched '" << spec << "'" << std::endl;
-        }
-
-        virtual void assertionStarting( AssertionInfo const& ) {
-        }
-
-        virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
-            AssertionResult const& result = _assertionStats.assertionResult;
-
-            bool printInfoMessages = true;
-
-            // Drop out if result was successful and we're not printing those
-            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
-                if( result.getResultType() != ResultWas::Warning )
-                    return false;
-                printInfoMessages = false;
-            }
-
-            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
-            printer.print();
-
-            stream << std::endl;
-            return true;
-        }
-
-        virtual void testRunEnded( TestRunStats const& _testRunStats ) {
-            printTotals( _testRunStats.totals );
-            stream << "\n" << std::endl;
-            StreamingReporterBase::testRunEnded( _testRunStats );
-        }
-
-    private:
-        class AssertionPrinter {
-            void operator= ( AssertionPrinter const& );
-        public:
-            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
-            : stream( _stream )
-            , stats( _stats )
-            , result( _stats.assertionResult )
-            , messages( _stats.infoMessages )
-            , itMessage( _stats.infoMessages.begin() )
-            , printInfoMessages( _printInfoMessages )
-            {}
-
-            void print() {
-                printSourceInfo();
-
-                itMessage = messages.begin();
-
-                switch( result.getResultType() ) {
-                    case ResultWas::Ok:
-                        printResultType( Colour::ResultSuccess, passedString() );
-                        printOriginalExpression();
-                        printReconstructedExpression();
-                        if ( ! result.hasExpression() )
-                            printRemainingMessages( Colour::None );
-                        else
-                            printRemainingMessages();
-                        break;
-                    case ResultWas::ExpressionFailed:
-                        if( result.isOk() )
-                            printResultType( Colour::ResultSuccess, failedString() + std::string( " - but was ok" ) );
-                        else
-                            printResultType( Colour::Error, failedString() );
-                        printOriginalExpression();
-                        printReconstructedExpression();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::ThrewException:
-                        printResultType( Colour::Error, failedString() );
-                        printIssue( "unexpected exception with message:" );
-                        printMessage();
-                        printExpressionWas();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::FatalErrorCondition:
-                        printResultType( Colour::Error, failedString() );
-                        printIssue( "fatal error condition with message:" );
-                        printMessage();
-                        printExpressionWas();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::DidntThrowException:
-                        printResultType( Colour::Error, failedString() );
-                        printIssue( "expected exception, got none" );
-                        printExpressionWas();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::Info:
-                        printResultType( Colour::None, "info" );
-                        printMessage();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::Warning:
-                        printResultType( Colour::None, "warning" );
-                        printMessage();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::ExplicitFailure:
-                        printResultType( Colour::Error, failedString() );
-                        printIssue( "explicitly" );
-                        printRemainingMessages( Colour::None );
-                        break;
-                    // These cases are here to prevent compiler warnings
-                    case ResultWas::Unknown:
-                    case ResultWas::FailureBit:
-                    case ResultWas::Exception:
-                        printResultType( Colour::Error, "** internal error **" );
-                        break;
-                }
-            }
-
-        private:
-            // Colour::LightGrey
-
-            static Colour::Code dimColour() { return Colour::FileName; }
-
-#ifdef CATCH_PLATFORM_MAC
-            static const char* failedString() { return "FAILED"; }
-            static const char* passedString() { return "PASSED"; }
-#else
-            static const char* failedString() { return "failed"; }
-            static const char* passedString() { return "passed"; }
-#endif
-
-            void printSourceInfo() const {
-                Colour colourGuard( Colour::FileName );
-                stream << result.getSourceInfo() << ":";
-            }
-
-            void printResultType( Colour::Code colour, std::string passOrFail ) const {
-                if( !passOrFail.empty() ) {
-                    {
-                        Colour colourGuard( colour );
-                        stream << " " << passOrFail;
-                    }
-                    stream << ":";
-                }
-            }
-
-            void printIssue( std::string issue ) const {
-                stream << " " << issue;
-            }
-
-            void printExpressionWas() {
-                if( result.hasExpression() ) {
-                    stream << ";";
-                    {
-                        Colour colour( dimColour() );
-                        stream << " expression was:";
-                    }
-                    printOriginalExpression();
-                }
-            }
-
-            void printOriginalExpression() const {
-                if( result.hasExpression() ) {
-                    stream << " " << result.getExpression();
-                }
-            }
-
-            void printReconstructedExpression() const {
-                if( result.hasExpandedExpression() ) {
-                    {
-                        Colour colour( dimColour() );
-                        stream << " for: ";
-                    }
-                    stream << result.getExpandedExpression();
-                }
-            }
-
-            void printMessage() {
-                if ( itMessage != messages.end() ) {
-                    stream << " '" << itMessage->message << "'";
-                    ++itMessage;
-                }
-            }
-
-            void printRemainingMessages( Colour::Code colour = dimColour() ) {
-                if ( itMessage == messages.end() )
-                    return;
-
-                // using messages.end() directly yields compilation error:
-                std::vector<MessageInfo>::const_iterator itEnd = messages.end();
-                const std::size_t N = static_cast<std::size_t>( std::distance( itMessage, itEnd ) );
-
-                {
-                    Colour colourGuard( colour );
-                    stream << " with " << pluralise( N, "message" ) << ":";
-                }
-
-                for(; itMessage != itEnd; ) {
-                    // If this assertion is a warning ignore any INFO messages
-                    if( printInfoMessages || itMessage->type != ResultWas::Info ) {
-                        stream << " '" << itMessage->message << "'";
-                        if ( ++itMessage != itEnd ) {
-                            Colour colourGuard( dimColour() );
-                            stream << " and";
-                        }
-                    }
-                }
-            }
-
-        private:
-            std::ostream& stream;
-            AssertionStats const& stats;
-            AssertionResult const& result;
-            std::vector<MessageInfo> messages;
-            std::vector<MessageInfo>::const_iterator itMessage;
-            bool printInfoMessages;
-        };
-
-        // Colour, message variants:
-        // - white: No tests ran.
-        // -   red: Failed [both/all] N test cases, failed [both/all] M assertions.
-        // - white: Passed [both/all] N test cases (no assertions).
-        // -   red: Failed N tests cases, failed M assertions.
-        // - green: Passed [both/all] N tests cases with M assertions.
-
-        std::string bothOrAll( std::size_t count ) const {
-            return count == 1 ? "" : count == 2 ? "both " : "all " ;
-        }
-
-        void printTotals( const Totals& totals ) const {
-            if( totals.testCases.total() == 0 ) {
-                stream << "No tests ran.";
-            }
-            else if( totals.testCases.failed == totals.testCases.total() ) {
-                Colour colour( Colour::ResultError );
-                const std::string qualify_assertions_failed =
-                    totals.assertions.failed == totals.assertions.total() ?
-                        bothOrAll( totals.assertions.failed ) : "";
-                stream <<
-                    "Failed " << bothOrAll( totals.testCases.failed )
-                              << pluralise( totals.testCases.failed, "test case"  ) << ", "
-                    "failed " << qualify_assertions_failed <<
-                                 pluralise( totals.assertions.failed, "assertion" ) << ".";
-            }
-            else if( totals.assertions.total() == 0 ) {
-                stream <<
-                    "Passed " << bothOrAll( totals.testCases.total() )
-                              << pluralise( totals.testCases.total(), "test case" )
-                              << " (no assertions).";
-            }
-            else if( totals.assertions.failed ) {
-                Colour colour( Colour::ResultError );
-                stream <<
-                    "Failed " << pluralise( totals.testCases.failed, "test case"  ) << ", "
-                    "failed " << pluralise( totals.assertions.failed, "assertion" ) << ".";
-            }
-            else {
-                Colour colour( Colour::ResultSuccess );
-                stream <<
-                    "Passed " << bothOrAll( totals.testCases.passed )
-                              << pluralise( totals.testCases.passed, "test case"  ) <<
-                    " with "  << pluralise( totals.assertions.passed, "assertion" ) << ".";
-            }
-        }
-    };
-
-    INTERNAL_CATCH_REGISTER_REPORTER( "compact", CompactReporter )
-
-} // end namespace Catch
-
-namespace Catch {
-    // These are all here to avoid warnings about not having any out of line
-    // virtual methods
-    NonCopyable::~NonCopyable() {}
-    IShared::~IShared() {}
-    IStream::~IStream() CATCH_NOEXCEPT {}
-    FileStream::~FileStream() CATCH_NOEXCEPT {}
-    CoutStream::~CoutStream() CATCH_NOEXCEPT {}
-    DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {}
-    StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {}
-    IContext::~IContext() {}
-    IResultCapture::~IResultCapture() {}
-    ITestCase::~ITestCase() {}
-    ITestCaseRegistry::~ITestCaseRegistry() {}
-    IRegistryHub::~IRegistryHub() {}
-    IMutableRegistryHub::~IMutableRegistryHub() {}
-    IExceptionTranslator::~IExceptionTranslator() {}
-    IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
-    IReporter::~IReporter() {}
-    IReporterFactory::~IReporterFactory() {}
-    IReporterRegistry::~IReporterRegistry() {}
-    IStreamingReporter::~IStreamingReporter() {}
-    AssertionStats::~AssertionStats() {}
-    SectionStats::~SectionStats() {}
-    TestCaseStats::~TestCaseStats() {}
-    TestGroupStats::~TestGroupStats() {}
-    TestRunStats::~TestRunStats() {}
-    CumulativeReporterBase::SectionNode::~SectionNode() {}
-    CumulativeReporterBase::~CumulativeReporterBase() {}
-
-    StreamingReporterBase::~StreamingReporterBase() {}
-    ConsoleReporter::~ConsoleReporter() {}
-    CompactReporter::~CompactReporter() {}
-    IRunner::~IRunner() {}
-    IMutableContext::~IMutableContext() {}
-    IConfig::~IConfig() {}
-    XmlReporter::~XmlReporter() {}
-    JunitReporter::~JunitReporter() {}
-    TestRegistry::~TestRegistry() {}
-    FreeFunctionTestCase::~FreeFunctionTestCase() {}
-    IGeneratorInfo::~IGeneratorInfo() {}
-    IGeneratorsForTest::~IGeneratorsForTest() {}
-    WildcardPattern::~WildcardPattern() {}
-    TestSpec::Pattern::~Pattern() {}
-    TestSpec::NamePattern::~NamePattern() {}
-    TestSpec::TagPattern::~TagPattern() {}
-    TestSpec::ExcludedPattern::~ExcludedPattern() {}
-
-    Matchers::Impl::StdString::Equals::~Equals() {}
-    Matchers::Impl::StdString::Contains::~Contains() {}
-    Matchers::Impl::StdString::StartsWith::~StartsWith() {}
-    Matchers::Impl::StdString::EndsWith::~EndsWith() {}
-
-    void Config::dummy() {}
-
-    namespace TestCaseTracking {
-        ITracker::~ITracker() {}
-        TrackerBase::~TrackerBase() {}
-        SectionTracker::~SectionTracker() {}
-        IndexTracker::~IndexTracker() {}
-    }
-}
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-#endif
-
-#ifdef CATCH_CONFIG_MAIN
-// #included from: internal/catch_default_main.hpp
-#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
-
-#ifndef __OBJC__
-
-// Standard C/C++ main entry point
-int main (int argc, char * argv[]) {
-    return Catch::Session().run( argc, argv );
-}
-
-#else // __OBJC__
-
-// Objective-C entry point
-int main (int argc, char * const argv[]) {
-#if !CATCH_ARC_ENABLED
-    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-#endif
-
-    Catch::registerTestMethods();
-    int result = Catch::Session().run( argc, (char* const*)argv );
-
-#if !CATCH_ARC_ENABLED
-    [pool drain];
-#endif
-
-    return result;
-}
-
-#endif // __OBJC__
-
-#endif
-
-#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED
-#  undef CLARA_CONFIG_MAIN
-#endif
-
-//////
-
-// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
-#ifdef CATCH_CONFIG_PREFIX_ALL
-
-#define CATCH_REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE" )
-#define CATCH_REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "CATCH_REQUIRE_FALSE" )
-
-#define CATCH_REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "CATCH_REQUIRE_THROWS" )
-#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS_AS" )
-#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "CATCH_REQUIRE_THROWS_WITH" )
-#define CATCH_REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_NOTHROW" )
-
-#define CATCH_CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK" )
-#define CATCH_CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CATCH_CHECK_FALSE" )
-#define CATCH_CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_IF" )
-#define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" )
-#define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" )
-
-#define CATCH_CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CATCH_CHECK_THROWS" )
-#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" )
-#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" )
-#define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" )
-
-#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THAT" )
-#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THAT" )
-
-#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
-#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "CATCH_WARN", msg )
-#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
-#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
-#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
-
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-    #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
-    #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
-    #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
-    #define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
-    #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
-    #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ )
-    #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ )
-#else
-    #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
-    #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
-    #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
-    #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description )
-    #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
-    #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg )
-    #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg )
-#endif
-#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
-
-#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
-#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
-
-#define CATCH_GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
-
-// "BDD-style" convenience wrappers
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ )
-#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
-#else
-#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags )
-#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
-#endif
-#define CATCH_GIVEN( desc )    CATCH_SECTION( std::string( "Given: ") + desc, "" )
-#define CATCH_WHEN( desc )     CATCH_SECTION( std::string( " When: ") + desc, "" )
-#define CATCH_AND_WHEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
-#define CATCH_THEN( desc )     CATCH_SECTION( std::string( " Then: ") + desc, "" )
-#define CATCH_AND_THEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
-
-// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
-#else
-
-#define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "REQUIRE" )
-#define REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "REQUIRE_FALSE" )
-
-#define REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "REQUIRE_THROWS" )
-#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "REQUIRE_THROWS_AS" )
-#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "REQUIRE_THROWS_WITH" )
-#define REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "REQUIRE_NOTHROW" )
-
-#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" )
-#define CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CHECK_FALSE" )
-#define CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_IF" )
-#define CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_ELSE" )
-#define CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CHECK_NOFAIL" )
-
-#define CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CHECK_THROWS" )
-#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS_AS" )
-#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CHECK_THROWS_WITH" )
-#define CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_NOTHROW" )
-
-#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THAT" )
-#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "REQUIRE_THAT" )
-
-#define INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
-#define WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "WARN", msg )
-#define SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
-#define CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
-#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
-
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-    #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
-    #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
-    #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
-    #define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
-    #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
-    #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ )
-    #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ )
-#else
-    #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
-    #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
-    #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
-    #define REGISTER_TEST_CASE( method, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( method, name, description )
-    #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
-    #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg )
-    #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg )
-#endif
-#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
-
-#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
-#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
-
-#define GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
-
-#endif
-
-#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )
-
-// "BDD-style" convenience wrappers
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ )
-#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
-#else
-#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags )
-#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
-#endif
-#define GIVEN( desc )    SECTION( std::string("   Given: ") + desc, "" )
-#define WHEN( desc )     SECTION( std::string("    When: ") + desc, "" )
-#define AND_WHEN( desc ) SECTION( std::string("And when: ") + desc, "" )
-#define THEN( desc )     SECTION( std::string("    Then: ") + desc, "" )
-#define AND_THEN( desc ) SECTION( std::string("     And: ") + desc, "" )
-
-using Catch::Detail::Approx;
-
-#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
-
+/*
+ *  Catch v1.7.0
+ *  Generated: 2017-02-01 21:32:13.239291
+ *  ----------------------------------------------------------
+ *  This file has been merged from multiple headers. Please don't edit it directly
+ *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
+ *
+ *  Distributed under the Boost Software License, Version 1.0. (See accompanying
+ *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ */
+#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+
+#define TWOBLUECUBES_CATCH_HPP_INCLUDED
+
+#ifdef __clang__
+#    pragma clang system_header
+#elif defined __GNUC__
+#    pragma GCC system_header
+#endif
+
+// #included from: internal/catch_suppress_warnings.h
+
+#ifdef __clang__
+#   ifdef __ICC // icpc defines the __clang__ macro
+#       pragma warning(push)
+#       pragma warning(disable: 161 1682)
+#   else // __ICC
+#       pragma clang diagnostic ignored "-Wglobal-constructors"
+#       pragma clang diagnostic ignored "-Wvariadic-macros"
+#       pragma clang diagnostic ignored "-Wc99-extensions"
+#       pragma clang diagnostic ignored "-Wunused-variable"
+#       pragma clang diagnostic push
+#       pragma clang diagnostic ignored "-Wpadded"
+#       pragma clang diagnostic ignored "-Wc++98-compat"
+#       pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
+#       pragma clang diagnostic ignored "-Wswitch-enum"
+#       pragma clang diagnostic ignored "-Wcovered-switch-default"
+#    endif
+#elif defined __GNUC__
+#    pragma GCC diagnostic ignored "-Wvariadic-macros"
+#    pragma GCC diagnostic ignored "-Wunused-variable"
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wpadded"
+#endif
+#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER)
+#  define CATCH_IMPL
+#endif
+
+#ifdef CATCH_IMPL
+#  ifndef CLARA_CONFIG_MAIN
+#    define CLARA_CONFIG_MAIN_NOT_DEFINED
+#    define CLARA_CONFIG_MAIN
+#  endif
+#endif
+
+// #included from: internal/catch_notimplemented_exception.h
+#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
+
+// #included from: catch_common.h
+#define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
+
+// #included from: catch_compiler_capabilities.h
+#define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
+
+// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
+// The following features are defined:
+//
+// CATCH_CONFIG_CPP11_NULLPTR : is nullptr supported?
+// CATCH_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
+// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
+// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported?
+// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported
+// CATCH_CONFIG_CPP11_LONG_LONG : is long long supported?
+// CATCH_CONFIG_CPP11_OVERRIDE : is override supported?
+// CATCH_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
+// CATCH_CONFIG_CPP11_SHUFFLE : is std::shuffle supported?
+// CATCH_CONFIG_CPP11_TYPE_TRAITS : are type_traits and enable_if supported?
+
+// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
+
+// CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported?
+// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported?
+// ****************
+// Note to maintainers: if new toggles are added please document them
+// in configuration.md, too
+// ****************
+
+// In general each macro has a _NO_<feature name> form
+// (e.g. CATCH_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
+// Many features, at point of detection, define an _INTERNAL_ macro, so they
+// can be combined, en-mass, with the _NO_ forms later.
+
+// All the C++11 features can be disabled with CATCH_CONFIG_NO_CPP11
+
+#ifdef __cplusplus
+
+#  if __cplusplus >= 201103L
+#    define CATCH_CPP11_OR_GREATER
+#  endif
+
+#  if __cplusplus >= 201402L
+#    define CATCH_CPP14_OR_GREATER
+#  endif
+
+#endif
+
+#ifdef __clang__
+
+#  if __has_feature(cxx_nullptr)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#  endif
+
+#  if __has_feature(cxx_noexcept)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#  endif
+
+#   if defined(CATCH_CPP11_OR_GREATER)
+#       define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS _Pragma( "clang diagnostic ignored \"-Wparentheses\"" )
+#   endif
+
+#endif // __clang__
+
+////////////////////////////////////////////////////////////////////////////////
+// Borland
+#ifdef __BORLANDC__
+
+#endif // __BORLANDC__
+
+////////////////////////////////////////////////////////////////////////////////
+// EDG
+#ifdef __EDG_VERSION__
+
+#endif // __EDG_VERSION__
+
+////////////////////////////////////////////////////////////////////////////////
+// Digital Mars
+#ifdef __DMC__
+
+#endif // __DMC__
+
+////////////////////////////////////////////////////////////////////////////////
+// GCC
+#ifdef __GNUC__
+
+#   if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+#       define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#   endif
+
+#   if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) && defined(CATCH_CPP11_OR_GREATER)
+#       define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS _Pragma( "GCC diagnostic ignored \"-Wparentheses\"" )
+#   endif
+
+// - otherwise more recent versions define __cplusplus >= 201103L
+// and will get picked up below
+
+#endif // __GNUC__
+
+////////////////////////////////////////////////////////////////////////////////
+// Visual C++
+#ifdef _MSC_VER
+
+#if (_MSC_VER >= 1600)
+#   define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#   define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
+#define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+#define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
+#endif
+
+#endif // _MSC_VER
+
+////////////////////////////////////////////////////////////////////////////////
+
+// Use variadic macros if the compiler supports them
+#if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \
+    ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \
+    ( defined __GNUC__ && __GNUC__ >= 3 ) || \
+    ( !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L )
+
+#define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+
+#endif
+
+// Use __COUNTER__ if the compiler supports it
+#if ( defined _MSC_VER && _MSC_VER >= 1300 ) || \
+    ( defined __GNUC__  && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3 ) || \
+    ( defined __clang__ && __clang_major__ >= 3 )
+
+#define CATCH_INTERNAL_CONFIG_COUNTER
+
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// C++ language feature support
+
+// catch all support for C++11
+#if defined(CATCH_CPP11_OR_GREATER)
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#    define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+#    define CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+#    define CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+#    define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+#  endif
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG)
+#    define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG
+#  endif
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE)
+#    define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE
+#  endif
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
+#    define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#  endif
+# if !defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE)
+#   define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+#  endif
+# if !defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS)
+#  define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
+# endif
+
+#endif // __cplusplus >= 201103L
+
+// Now set the actual defines based on the above + anything the user has configured
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NO_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_NULLPTR
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_NOEXCEPT
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_GENERATED_METHODS
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_NO_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_IS_ENUM
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_CPP11_NO_TUPLE) && !defined(CATCH_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_TUPLE
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS)
+#   define CATCH_CONFIG_VARIADIC_MACROS
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_LONG_LONG
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_OVERRIDE
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_UNIQUE_PTR
+#endif
+// Use of __COUNTER__ is suppressed if __JETBRAINS_IDE__ is #defined (meaning we're being parsed by a JetBrains IDE for
+// analytics) because, at time of writing, __COUNTER__ is not properly handled by it.
+// This does not affect compilation
+#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) && !defined(__JETBRAINS_IDE__)
+#   define CATCH_CONFIG_COUNTER
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_SHUFFLE
+#endif
+# if defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_NO_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_NO_CPP11)
+#  define CATCH_CONFIG_CPP11_TYPE_TRAITS
+# endif
+
+#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS)
+#   define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
+#endif
+
+// noexcept support:
+#if defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_NOEXCEPT)
+#  define CATCH_NOEXCEPT noexcept
+#  define CATCH_NOEXCEPT_IS(x) noexcept(x)
+#else
+#  define CATCH_NOEXCEPT throw()
+#  define CATCH_NOEXCEPT_IS(x)
+#endif
+
+// nullptr support
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+#   define CATCH_NULL nullptr
+#else
+#   define CATCH_NULL NULL
+#endif
+
+// override support
+#ifdef CATCH_CONFIG_CPP11_OVERRIDE
+#   define CATCH_OVERRIDE override
+#else
+#   define CATCH_OVERRIDE
+#endif
+
+// unique_ptr support
+#ifdef CATCH_CONFIG_CPP11_UNIQUE_PTR
+#   define CATCH_AUTO_PTR( T ) std::unique_ptr<T>
+#else
+#   define CATCH_AUTO_PTR( T ) std::auto_ptr<T>
+#endif
+
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
+#ifdef CATCH_CONFIG_COUNTER
+#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )
+#else
+#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
+#endif
+
+#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr
+#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr )
+
+#include <sstream>
+#include <stdexcept>
+#include <algorithm>
+
+namespace Catch {
+
+    struct IConfig;
+
+    struct CaseSensitive { enum Choice {
+        Yes,
+        No
+    }; };
+
+    class NonCopyable {
+#ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        NonCopyable( NonCopyable const& )              = delete;
+        NonCopyable( NonCopyable && )                  = delete;
+        NonCopyable& operator = ( NonCopyable const& ) = delete;
+        NonCopyable& operator = ( NonCopyable && )     = delete;
+#else
+        NonCopyable( NonCopyable const& info );
+        NonCopyable& operator = ( NonCopyable const& );
+#endif
+
+    protected:
+        NonCopyable() {}
+        virtual ~NonCopyable();
+    };
+
+    class SafeBool {
+    public:
+        typedef void (SafeBool::*type)() const;
+
+        static type makeSafe( bool value ) {
+            return value ? &SafeBool::trueValue : 0;
+        }
+    private:
+        void trueValue() const {}
+    };
+
+    template<typename ContainerT>
+    inline void deleteAll( ContainerT& container ) {
+        typename ContainerT::const_iterator it = container.begin();
+        typename ContainerT::const_iterator itEnd = container.end();
+        for(; it != itEnd; ++it )
+            delete *it;
+    }
+    template<typename AssociativeContainerT>
+    inline void deleteAllValues( AssociativeContainerT& container ) {
+        typename AssociativeContainerT::const_iterator it = container.begin();
+        typename AssociativeContainerT::const_iterator itEnd = container.end();
+        for(; it != itEnd; ++it )
+            delete it->second;
+    }
+
+    bool startsWith( std::string const& s, std::string const& prefix );
+    bool startsWith( std::string const& s, char prefix );
+    bool endsWith( std::string const& s, std::string const& suffix );
+    bool endsWith( std::string const& s, char suffix );
+    bool contains( std::string const& s, std::string const& infix );
+    bool contains( std::string const& s, std::string const& infix );
+    void toLowerInPlace( std::string& s );
+    std::string toLower( std::string const& s );
+    std::string trim( std::string const& str );
+    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis );
+
+    struct pluralise {
+        pluralise( std::size_t count, std::string const& label );
+
+        friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser );
+
+        std::size_t m_count;
+        std::string m_label;
+    };
+
+    struct SourceLineInfo {
+
+        SourceLineInfo();
+        SourceLineInfo( char const* _file, std::size_t _line );
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        SourceLineInfo(SourceLineInfo const& other)          = default;
+        SourceLineInfo( SourceLineInfo && )                  = default;
+        SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
+        SourceLineInfo& operator = ( SourceLineInfo && )     = default;
+#  endif
+        bool empty() const;
+        bool operator == ( SourceLineInfo const& other ) const;
+        bool operator < ( SourceLineInfo const& other ) const;
+
+        char const* file;
+        std::size_t line;
+    };
+
+    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info );
+
+    // This is just here to avoid compiler warnings with macro constants and boolean literals
+    inline bool isTrue( bool value ){ return value; }
+    inline bool alwaysTrue() { return true; }
+    inline bool alwaysFalse() { return false; }
+
+    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo );
+
+    void seedRng( IConfig const& config );
+    unsigned int rngSeed();
+
+    // Use this in variadic streaming macros to allow
+    //    >> +StreamEndStop
+    // as well as
+    //    >> stuff +StreamEndStop
+    struct StreamEndStop {
+        std::string operator+() {
+            return std::string();
+        }
+    };
+    template<typename T>
+    T const& operator + ( T const& value, StreamEndStop ) {
+        return value;
+    }
+}
+
+#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )
+#define CATCH_INTERNAL_ERROR( msg ) ::Catch::throwLogicError( msg, CATCH_INTERNAL_LINEINFO );
+
+#include <ostream>
+
+namespace Catch {
+
+    class NotImplementedException : public std::exception
+    {
+    public:
+        NotImplementedException( SourceLineInfo const& lineInfo );
+        NotImplementedException( NotImplementedException const& ) {}
+
+        virtual ~NotImplementedException() CATCH_NOEXCEPT {}
+
+        virtual const char* what() const CATCH_NOEXCEPT;
+
+    private:
+        std::string m_what;
+        SourceLineInfo m_lineInfo;
+    };
+
+} // end namespace Catch
+
+///////////////////////////////////////////////////////////////////////////////
+#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO )
+
+// #included from: internal/catch_context.h
+#define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
+
+// #included from: catch_interfaces_generators.h
+#define TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct IGeneratorInfo {
+        virtual ~IGeneratorInfo();
+        virtual bool moveNext() = 0;
+        virtual std::size_t getCurrentIndex() const = 0;
+    };
+
+    struct IGeneratorsForTest {
+        virtual ~IGeneratorsForTest();
+
+        virtual IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) = 0;
+        virtual bool moveNext() = 0;
+    };
+
+    IGeneratorsForTest* createGeneratorsForTest();
+
+} // end namespace Catch
+
+// #included from: catch_ptr.hpp
+#define TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    // An intrusive reference counting smart pointer.
+    // T must implement addRef() and release() methods
+    // typically implementing the IShared interface
+    template<typename T>
+    class Ptr {
+    public:
+        Ptr() : m_p( CATCH_NULL ){}
+        Ptr( T* p ) : m_p( p ){
+            if( m_p )
+                m_p->addRef();
+        }
+        Ptr( Ptr const& other ) : m_p( other.m_p ){
+            if( m_p )
+                m_p->addRef();
+        }
+        ~Ptr(){
+            if( m_p )
+                m_p->release();
+        }
+        void reset() {
+            if( m_p )
+                m_p->release();
+            m_p = CATCH_NULL;
+        }
+        Ptr& operator = ( T* p ){
+            Ptr temp( p );
+            swap( temp );
+            return *this;
+        }
+        Ptr& operator = ( Ptr const& other ){
+            Ptr temp( other );
+            swap( temp );
+            return *this;
+        }
+        void swap( Ptr& other ) { std::swap( m_p, other.m_p ); }
+        T* get() const{ return m_p; }
+        T& operator*() const { return *m_p; }
+        T* operator->() const { return m_p; }
+        bool operator !() const { return m_p == CATCH_NULL; }
+        operator SafeBool::type() const { return SafeBool::makeSafe( m_p != CATCH_NULL ); }
+
+    private:
+        T* m_p;
+    };
+
+    struct IShared : NonCopyable {
+        virtual ~IShared();
+        virtual void addRef() const = 0;
+        virtual void release() const = 0;
+    };
+
+    template<typename T = IShared>
+    struct SharedImpl : T {
+
+        SharedImpl() : m_rc( 0 ){}
+
+        virtual void addRef() const {
+            ++m_rc;
+        }
+        virtual void release() const {
+            if( --m_rc == 0 )
+                delete this;
+        }
+
+        mutable unsigned int m_rc;
+    };
+
+} // end namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#include <memory>
+#include <vector>
+#include <stdlib.h>
+
+namespace Catch {
+
+    class TestCase;
+    class Stream;
+    struct IResultCapture;
+    struct IRunner;
+    struct IGeneratorsForTest;
+    struct IConfig;
+
+    struct IContext
+    {
+        virtual ~IContext();
+
+        virtual IResultCapture* getResultCapture() = 0;
+        virtual IRunner* getRunner() = 0;
+        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) = 0;
+        virtual bool advanceGeneratorsForCurrentTest() = 0;
+        virtual Ptr<IConfig const> getConfig() const = 0;
+    };
+
+    struct IMutableContext : IContext
+    {
+        virtual ~IMutableContext();
+        virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
+        virtual void setRunner( IRunner* runner ) = 0;
+        virtual void setConfig( Ptr<IConfig const> const& config ) = 0;
+    };
+
+    IContext& getCurrentContext();
+    IMutableContext& getCurrentMutableContext();
+    void cleanUpContext();
+    Stream createStream( std::string const& streamName );
+
+}
+
+// #included from: internal/catch_test_registry.hpp
+#define TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED
+
+// #included from: catch_interfaces_testcase.h
+#define TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED
+
+#include <vector>
+
+namespace Catch {
+
+    class TestSpec;
+
+    struct ITestCase : IShared {
+        virtual void invoke () const = 0;
+    protected:
+        virtual ~ITestCase();
+    };
+
+    class TestCase;
+    struct IConfig;
+
+    struct ITestCaseRegistry {
+        virtual ~ITestCaseRegistry();
+        virtual std::vector<TestCase> const& getAllTests() const = 0;
+        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const = 0;
+    };
+
+    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config );
+    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config );
+    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config );
+
+}
+
+namespace Catch {
+
+template<typename C>
+class MethodTestCase : public SharedImpl<ITestCase> {
+
+public:
+    MethodTestCase( void (C::*method)() ) : m_method( method ) {}
+
+    virtual void invoke() const {
+        C obj;
+        (obj.*m_method)();
+    }
+
+private:
+    virtual ~MethodTestCase() {}
+
+    void (C::*m_method)();
+};
+
+typedef void(*TestFunction)();
+
+struct NameAndDesc {
+    NameAndDesc( const char* _name = "", const char* _description= "" )
+    : name( _name ), description( _description )
+    {}
+
+    const char* name;
+    const char* description;
+};
+
+void registerTestCase
+    (   ITestCase* testCase,
+        char const* className,
+        NameAndDesc const& nameAndDesc,
+        SourceLineInfo const& lineInfo );
+
+struct AutoReg {
+
+    AutoReg
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc );
+
+    template<typename C>
+    AutoReg
+        (   void (C::*method)(),
+            char const* className,
+            NameAndDesc const& nameAndDesc,
+            SourceLineInfo const& lineInfo ) {
+
+        registerTestCase
+            (   new MethodTestCase<C>( method ),
+                className,
+                nameAndDesc,
+                lineInfo );
+    }
+
+    ~AutoReg();
+
+private:
+    AutoReg( AutoReg const& );
+    void operator= ( AutoReg const& );
+};
+
+void registerTestCaseFunction
+    (   TestFunction function,
+        SourceLineInfo const& lineInfo,
+        NameAndDesc const& nameAndDesc );
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TESTCASE2( TestName, ... ) \
+        static void TestName(); \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); }\
+        static void TestName()
+    #define INTERNAL_CATCH_TESTCASE( ... ) \
+        INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\
+        namespace{ \
+            struct TestName : ClassName{ \
+                void test(); \
+            }; \
+            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestName::test, #ClassName, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); \
+        } \
+        void TestName::test()
+    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \
+        INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \
+        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) );
+
+#else
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TESTCASE2( TestName, Name, Desc ) \
+        static void TestName(); \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); }\
+        static void TestName()
+    #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \
+        INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), Name, Desc )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, Name, Desc ) \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( Name, Desc ), CATCH_INTERNAL_LINEINFO ); }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestCaseName, ClassName, TestName, Desc )\
+        namespace{ \
+            struct TestCaseName : ClassName{ \
+                void test(); \
+            }; \
+            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestCaseName::test, #ClassName, Catch::NameAndDesc( TestName, Desc ), CATCH_INTERNAL_LINEINFO ); \
+        } \
+        void TestCaseName::test()
+    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, TestName, Desc )\
+        INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, TestName, Desc )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \
+        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) );
+#endif
+
+// #included from: internal/catch_capture.hpp
+#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
+
+// #included from: catch_result_builder.h
+#define TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED
+
+// #included from: catch_result_type.h
+#define TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED
+
+namespace Catch {
+
+    // ResultWas::OfType enum
+    struct ResultWas { enum OfType {
+        Unknown = -1,
+        Ok = 0,
+        Info = 1,
+        Warning = 2,
+
+        FailureBit = 0x10,
+
+        ExpressionFailed = FailureBit | 1,
+        ExplicitFailure = FailureBit | 2,
+
+        Exception = 0x100 | FailureBit,
+
+        ThrewException = Exception | 1,
+        DidntThrowException = Exception | 2,
+
+        FatalErrorCondition = 0x200 | FailureBit
+
+    }; };
+
+    inline bool isOk( ResultWas::OfType resultType ) {
+        return ( resultType & ResultWas::FailureBit ) == 0;
+    }
+    inline bool isJustInfo( int flags ) {
+        return flags == ResultWas::Info;
+    }
+
+    // ResultDisposition::Flags enum
+    struct ResultDisposition { enum Flags {
+        Normal = 0x01,
+
+        ContinueOnFailure = 0x02,   // Failures fail test, but execution continues
+        FalseTest = 0x04,           // Prefix expression with !
+        SuppressFail = 0x08         // Failures are reported but do not fail the test
+    }; };
+
+    inline ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) {
+        return static_cast<ResultDisposition::Flags>( static_cast<int>( lhs ) | static_cast<int>( rhs ) );
+    }
+
+    inline bool shouldContinueOnFailure( int flags )    { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; }
+    inline bool isFalseTest( int flags )                { return ( flags & ResultDisposition::FalseTest ) != 0; }
+    inline bool shouldSuppressFailure( int flags )      { return ( flags & ResultDisposition::SuppressFail ) != 0; }
+
+} // end namespace Catch
+
+// #included from: catch_assertionresult.h
+#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison;
+
+    struct DecomposedExpression
+    {
+        virtual ~DecomposedExpression() {}
+        virtual bool isBinaryExpression() const {
+            return false;
+        }
+        virtual void reconstructExpression( std::string& dest ) const = 0;
+
+        // Only simple binary comparisons can be decomposed.
+        // If more complex check is required then wrap sub-expressions in parentheses.
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator % ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( T const& );
+    };
+
+    struct AssertionInfo
+    {
+        AssertionInfo() {}
+        AssertionInfo(  std::string const& _macroName,
+                        SourceLineInfo const& _lineInfo,
+                        std::string const& _capturedExpression,
+                        ResultDisposition::Flags _resultDisposition );
+
+        std::string macroName;
+        SourceLineInfo lineInfo;
+        std::string capturedExpression;
+        ResultDisposition::Flags resultDisposition;
+    };
+
+    struct AssertionResultData
+    {
+        AssertionResultData() : decomposedExpression( CATCH_NULL )
+                              , resultType( ResultWas::Unknown )
+                              , negated( false )
+                              , parenthesized( false ) {}
+
+        void negate( bool parenthesize ) {
+            negated = !negated;
+            parenthesized = parenthesize;
+            if( resultType == ResultWas::Ok )
+                resultType = ResultWas::ExpressionFailed;
+            else if( resultType == ResultWas::ExpressionFailed )
+                resultType = ResultWas::Ok;
+        }
+
+        std::string const& reconstructExpression() const {
+            if( decomposedExpression != CATCH_NULL ) {
+                decomposedExpression->reconstructExpression( reconstructedExpression );
+                if( parenthesized ) {
+                    reconstructedExpression.insert( 0, 1, '(' );
+                    reconstructedExpression.append( 1, ')' );
+                }
+                if( negated ) {
+                    reconstructedExpression.insert( 0, 1, '!' );
+                }
+                decomposedExpression = CATCH_NULL;
+            }
+            return reconstructedExpression;
+        }
+
+        mutable DecomposedExpression const* decomposedExpression;
+        mutable std::string reconstructedExpression;
+        std::string message;
+        ResultWas::OfType resultType;
+        bool negated;
+        bool parenthesized;
+    };
+
+    class AssertionResult {
+    public:
+        AssertionResult();
+        AssertionResult( AssertionInfo const& info, AssertionResultData const& data );
+        ~AssertionResult();
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+         AssertionResult( AssertionResult const& )              = default;
+         AssertionResult( AssertionResult && )                  = default;
+         AssertionResult& operator = ( AssertionResult const& ) = default;
+         AssertionResult& operator = ( AssertionResult && )     = default;
+#  endif
+
+        bool isOk() const;
+        bool succeeded() const;
+        ResultWas::OfType getResultType() const;
+        bool hasExpression() const;
+        bool hasMessage() const;
+        std::string getExpression() const;
+        std::string getExpressionInMacro() const;
+        bool hasExpandedExpression() const;
+        std::string getExpandedExpression() const;
+        std::string getMessage() const;
+        SourceLineInfo getSourceInfo() const;
+        std::string getTestMacroName() const;
+        void discardDecomposedExpression() const;
+        void expandDecomposedExpression() const;
+
+    protected:
+        AssertionInfo m_info;
+        AssertionResultData m_resultData;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_matchers.hpp
+#define TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED
+
+namespace Catch {
+namespace Matchers {
+    namespace Impl {
+
+    namespace Generic {
+        template<typename ExpressionT> class AllOf;
+        template<typename ExpressionT> class AnyOf;
+        template<typename ExpressionT> class Not;
+    }
+
+    template<typename ExpressionT>
+    struct Matcher : SharedImpl<IShared>
+    {
+        typedef ExpressionT ExpressionType;
+
+        virtual ~Matcher() {}
+        virtual Ptr<Matcher> clone() const = 0;
+        virtual bool match( ExpressionT const& expr ) const = 0;
+        virtual std::string toString() const = 0;
+
+        Generic::AllOf<ExpressionT> operator && ( Matcher<ExpressionT> const& other ) const;
+        Generic::AnyOf<ExpressionT> operator || ( Matcher<ExpressionT> const& other ) const;
+        Generic::Not<ExpressionT> operator ! () const;
+    };
+
+    template<typename DerivedT, typename ExpressionT>
+    struct MatcherImpl : Matcher<ExpressionT> {
+
+        virtual Ptr<Matcher<ExpressionT> > clone() const {
+            return Ptr<Matcher<ExpressionT> >( new DerivedT( static_cast<DerivedT const&>( *this ) ) );
+        }
+    };
+
+    namespace Generic {
+        template<typename ExpressionT>
+        class Not : public MatcherImpl<Not<ExpressionT>, ExpressionT> {
+        public:
+            explicit Not( Matcher<ExpressionT> const& matcher ) : m_matcher(matcher.clone()) {}
+            Not( Not const& other ) : m_matcher( other.m_matcher ) {}
+
+            virtual bool match( ExpressionT const& expr ) const CATCH_OVERRIDE {
+                return !m_matcher->match( expr );
+            }
+
+            virtual std::string toString() const CATCH_OVERRIDE {
+                return "not " + m_matcher->toString();
+            }
+        private:
+            Ptr< Matcher<ExpressionT> > m_matcher;
+        };
+
+        template<typename ExpressionT>
+        class AllOf : public MatcherImpl<AllOf<ExpressionT>, ExpressionT> {
+        public:
+
+            AllOf() {}
+            AllOf( AllOf const& other ) : m_matchers( other.m_matchers ) {}
+
+            AllOf& add( Matcher<ExpressionT> const& matcher ) {
+                m_matchers.push_back( matcher.clone() );
+                return *this;
+            }
+            virtual bool match( ExpressionT const& expr ) const
+            {
+                for( std::size_t i = 0; i < m_matchers.size(); ++i )
+                    if( !m_matchers[i]->match( expr ) )
+                        return false;
+                return true;
+            }
+            virtual std::string toString() const {
+                std::ostringstream oss;
+                oss << "( ";
+                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
+                    if( i != 0 )
+                        oss << " and ";
+                    oss << m_matchers[i]->toString();
+                }
+                oss << " )";
+                return oss.str();
+            }
+
+            AllOf operator && ( Matcher<ExpressionT> const& other ) const {
+                AllOf allOfExpr( *this );
+                allOfExpr.add( other );
+                return allOfExpr;
+            }
+
+        private:
+            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
+        };
+
+        template<typename ExpressionT>
+        class AnyOf : public MatcherImpl<AnyOf<ExpressionT>, ExpressionT> {
+        public:
+
+            AnyOf() {}
+            AnyOf( AnyOf const& other ) : m_matchers( other.m_matchers ) {}
+
+            AnyOf& add( Matcher<ExpressionT> const& matcher ) {
+                m_matchers.push_back( matcher.clone() );
+                return *this;
+            }
+            virtual bool match( ExpressionT const& expr ) const
+            {
+                for( std::size_t i = 0; i < m_matchers.size(); ++i )
+                    if( m_matchers[i]->match( expr ) )
+                        return true;
+                return false;
+            }
+            virtual std::string toString() const {
+                std::ostringstream oss;
+                oss << "( ";
+                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
+                    if( i != 0 )
+                        oss << " or ";
+                    oss << m_matchers[i]->toString();
+                }
+                oss << " )";
+                return oss.str();
+            }
+
+            AnyOf operator || ( Matcher<ExpressionT> const& other ) const {
+                AnyOf anyOfExpr( *this );
+                anyOfExpr.add( other );
+                return anyOfExpr;
+            }
+
+        private:
+            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
+        };
+
+    } // namespace Generic
+
+    template<typename ExpressionT>
+    Generic::AllOf<ExpressionT> Matcher<ExpressionT>::operator && ( Matcher<ExpressionT> const& other ) const {
+        Generic::AllOf<ExpressionT> allOfExpr;
+        allOfExpr.add( *this );
+        allOfExpr.add( other );
+        return allOfExpr;
+    }
+
+    template<typename ExpressionT>
+    Generic::AnyOf<ExpressionT> Matcher<ExpressionT>::operator || ( Matcher<ExpressionT> const& other ) const {
+        Generic::AnyOf<ExpressionT> anyOfExpr;
+        anyOfExpr.add( *this );
+        anyOfExpr.add( other );
+        return anyOfExpr;
+    }
+
+    template<typename ExpressionT>
+    Generic::Not<ExpressionT> Matcher<ExpressionT>::operator ! () const {
+        return Generic::Not<ExpressionT>( *this );
+    }
+
+    namespace StdString {
+
+        inline std::string makeString( std::string const& str ) { return str; }
+        inline std::string makeString( const char* str ) { return str ? std::string( str ) : std::string(); }
+
+        struct CasedString
+        {
+            CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity )
+            :   m_caseSensitivity( caseSensitivity ),
+                m_str( adjustString( str ) )
+            {}
+            std::string adjustString( std::string const& str ) const {
+                return m_caseSensitivity == CaseSensitive::No
+                    ? toLower( str )
+                    : str;
+
+            }
+            std::string toStringSuffix() const
+            {
+                return m_caseSensitivity == CaseSensitive::No
+                    ? " (case insensitive)"
+                    : std::string();
+            }
+            CaseSensitive::Choice m_caseSensitivity;
+            std::string m_str;
+        };
+
+        struct Equals : MatcherImpl<Equals, std::string> {
+            Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            :   m_data( str, caseSensitivity )
+            {}
+            Equals( Equals const& other ) : m_data( other.m_data ){}
+
+            virtual ~Equals();
+
+            virtual bool match( std::string const& expr ) const {
+                return m_data.m_str == m_data.adjustString( expr );;
+            }
+            virtual std::string toString() const {
+                return "equals: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct Contains : MatcherImpl<Contains, std::string> {
+            Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+            Contains( Contains const& other ) : m_data( other.m_data ){}
+
+            virtual ~Contains();
+
+            virtual bool match( std::string const& expr ) const {
+                return m_data.adjustString( expr ).find( m_data.m_str ) != std::string::npos;
+            }
+            virtual std::string toString() const {
+                return "contains: \"" + m_data.m_str  + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct StartsWith : MatcherImpl<StartsWith, std::string> {
+            StartsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+
+            StartsWith( StartsWith const& other ) : m_data( other.m_data ){}
+
+            virtual ~StartsWith();
+
+            virtual bool match( std::string const& expr ) const {
+                return startsWith( m_data.adjustString( expr ), m_data.m_str );
+            }
+            virtual std::string toString() const {
+                return "starts with: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct EndsWith : MatcherImpl<EndsWith, std::string> {
+            EndsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+            EndsWith( EndsWith const& other ) : m_data( other.m_data ){}
+
+            virtual ~EndsWith();
+
+            virtual bool match( std::string const& expr ) const {
+                return endsWith( m_data.adjustString( expr ), m_data.m_str );
+            }
+            virtual std::string toString() const {
+                return "ends with: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+    } // namespace StdString
+    } // namespace Impl
+
+    // The following functions create the actual matcher objects.
+    // This allows the types to be inferred
+    template<typename ExpressionT>
+    inline Impl::Generic::Not<ExpressionT> Not( Impl::Matcher<ExpressionT> const& m ) {
+        return Impl::Generic::Not<ExpressionT>( m );
+    }
+
+    template<typename ExpressionT>
+    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2 ) {
+        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2,
+                                                    Impl::Matcher<ExpressionT> const& m3 ) {
+        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2 ) {
+        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2,
+                                                    Impl::Matcher<ExpressionT> const& m3 ) {
+        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
+    }
+
+    inline Impl::StdString::Equals      Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Equals( str, caseSensitivity );
+    }
+    inline Impl::StdString::Equals      Equals( const char* str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Equals( Impl::StdString::makeString( str ), caseSensitivity );
+    }
+    inline Impl::StdString::Contains    Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Contains( substr, caseSensitivity );
+    }
+    inline Impl::StdString::Contains    Contains( const char* substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Contains( Impl::StdString::makeString( substr ), caseSensitivity );
+    }
+    inline Impl::StdString::StartsWith  StartsWith( std::string const& substr ) {
+        return Impl::StdString::StartsWith( substr );
+    }
+    inline Impl::StdString::StartsWith  StartsWith( const char* substr ) {
+        return Impl::StdString::StartsWith( Impl::StdString::makeString( substr ) );
+    }
+    inline Impl::StdString::EndsWith    EndsWith( std::string const& substr ) {
+        return Impl::StdString::EndsWith( substr );
+    }
+    inline Impl::StdString::EndsWith    EndsWith( const char* substr ) {
+        return Impl::StdString::EndsWith( Impl::StdString::makeString( substr ) );
+    }
+
+} // namespace Matchers
+
+using namespace Matchers;
+
+} // namespace Catch
+
+namespace Catch {
+
+    struct TestFailureException{};
+
+    template<typename T> class ExpressionLhs;
+
+    struct CopyableStream {
+        CopyableStream() {}
+        CopyableStream( CopyableStream const& other ) {
+            oss << other.oss.str();
+        }
+        CopyableStream& operator=( CopyableStream const& other ) {
+            oss.str(std::string());
+            oss << other.oss.str();
+            return *this;
+        }
+        std::ostringstream oss;
+    };
+
+    class ResultBuilder : public DecomposedExpression {
+    public:
+        ResultBuilder(  char const* macroName,
+                        SourceLineInfo const& lineInfo,
+                        char const* capturedExpression,
+                        ResultDisposition::Flags resultDisposition,
+                        char const* secondArg = "" );
+
+        template<typename T>
+        ExpressionLhs<T const&> operator <= ( T const& operand );
+        ExpressionLhs<bool> operator <= ( bool value );
+
+        template<typename T>
+        ResultBuilder& operator << ( T const& value ) {
+            m_stream.oss << value;
+            return *this;
+        }
+
+        ResultBuilder& setResultType( ResultWas::OfType result );
+        ResultBuilder& setResultType( bool result );
+
+        void endExpression( DecomposedExpression const& expr );
+
+        virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE;
+
+        AssertionResult build() const;
+        AssertionResult build( DecomposedExpression const& expr ) const;
+
+        void useActiveException( ResultDisposition::Flags resultDisposition = ResultDisposition::Normal );
+        void captureResult( ResultWas::OfType resultType );
+        void captureExpression();
+        void captureExpectedException( std::string const& expectedMessage );
+        void captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher );
+        void handleResult( AssertionResult const& result );
+        void react();
+        bool shouldDebugBreak() const;
+        bool allowThrows() const;
+
+        template<typename ArgT, typename MatcherT>
+        void captureMatch( ArgT const& arg, MatcherT const& matcher, char const* matcherString );
+
+    private:
+        AssertionInfo m_assertionInfo;
+        AssertionResultData m_data;
+        CopyableStream m_stream;
+
+        bool m_shouldDebugBreak;
+        bool m_shouldThrow;
+    };
+
+} // namespace Catch
+
+// Include after due to circular dependency:
+// #included from: catch_expression_lhs.hpp
+#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
+
+// #included from: catch_evaluate.hpp
+#define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED
+
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable:4389) // '==' : signed/unsigned mismatch
+#endif
+
+#include <cstddef>
+
+namespace Catch {
+namespace Internal {
+
+    enum Operator {
+        IsEqualTo,
+        IsNotEqualTo,
+        IsLessThan,
+        IsGreaterThan,
+        IsLessThanOrEqualTo,
+        IsGreaterThanOrEqualTo
+    };
+
+    template<Operator Op> struct OperatorTraits             { static const char* getName(){ return "*error*"; } };
+    template<> struct OperatorTraits<IsEqualTo>             { static const char* getName(){ return "=="; } };
+    template<> struct OperatorTraits<IsNotEqualTo>          { static const char* getName(){ return "!="; } };
+    template<> struct OperatorTraits<IsLessThan>            { static const char* getName(){ return "<"; } };
+    template<> struct OperatorTraits<IsGreaterThan>         { static const char* getName(){ return ">"; } };
+    template<> struct OperatorTraits<IsLessThanOrEqualTo>   { static const char* getName(){ return "<="; } };
+    template<> struct OperatorTraits<IsGreaterThanOrEqualTo>{ static const char* getName(){ return ">="; } };
+
+    template<typename T>
+    inline T& opCast(T const& t) { return const_cast<T&>(t); }
+
+// nullptr_t support based on pull request #154 from Konstantin Baumann
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+    inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; }
+#endif // CATCH_CONFIG_CPP11_NULLPTR
+
+    // So the compare overloads can be operator agnostic we convey the operator as a template
+    // enum, which is used to specialise an Evaluator for doing the comparison.
+    template<typename T1, typename T2, Operator Op>
+    class Evaluator{};
+
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs) {
+            return bool( opCast( lhs ) ==  opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsNotEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) != opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsLessThan> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) < opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsGreaterThan> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) > opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsGreaterThanOrEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) >= opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsLessThanOrEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) <= opCast( rhs ) );
+        }
+    };
+
+    template<Operator Op, typename T1, typename T2>
+    bool applyEvaluator( T1 const& lhs, T2 const& rhs ) {
+        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
+    }
+
+    // This level of indirection allows us to specialise for integer types
+    // to avoid signed/ unsigned warnings
+
+    // "base" overload
+    template<Operator Op, typename T1, typename T2>
+    bool compare( T1 const& lhs, T2 const& rhs ) {
+        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
+    }
+
+    // unsigned X to int
+    template<Operator Op> bool compare( unsigned int lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned long lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned char lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+
+    // unsigned X to long
+    template<Operator Op> bool compare( unsigned int lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned long lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned char lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+
+    // int to unsigned X
+    template<Operator Op> bool compare( int lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( int lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( int lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+
+    // long to unsigned X
+    template<Operator Op> bool compare( long lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+
+    // pointer to long (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( long lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, long rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+
+    // pointer to int (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( int lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, int rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+    // long long to unsigned X
+    template<Operator Op> bool compare( long long lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned long long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+
+    // unsigned long long to X
+    template<Operator Op> bool compare( unsigned long long lhs, int rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, long rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, long long rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, char rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+
+    // pointer to long long (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( long long lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, long long rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+#endif // CATCH_CONFIG_CPP11_LONG_LONG
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+    // pointer to nullptr_t (when comparing against nullptr)
+    template<Operator Op, typename T> bool compare( std::nullptr_t, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( nullptr, rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, std::nullptr_t ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, nullptr );
+    }
+#endif // CATCH_CONFIG_CPP11_NULLPTR
+
+} // end of namespace Internal
+} // end of namespace Catch
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+// #included from: catch_tostring.h
+#define TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED
+
+#include <sstream>
+#include <iomanip>
+#include <limits>
+#include <vector>
+#include <cstddef>
+
+#ifdef __OBJC__
+// #included from: catch_objc_arc.hpp
+#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
+
+#import <Foundation/Foundation.h>
+
+#ifdef __has_feature
+#define CATCH_ARC_ENABLED __has_feature(objc_arc)
+#else
+#define CATCH_ARC_ENABLED 0
+#endif
+
+void arcSafeRelease( NSObject* obj );
+id performOptionalSelector( id obj, SEL sel );
+
+#if !CATCH_ARC_ENABLED
+inline void arcSafeRelease( NSObject* obj ) {
+    [obj release];
+}
+inline id performOptionalSelector( id obj, SEL sel ) {
+    if( [obj respondsToSelector: sel] )
+        return [obj performSelector: sel];
+    return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED
+#define CATCH_ARC_STRONG
+#else
+inline void arcSafeRelease( NSObject* ){}
+inline id performOptionalSelector( id obj, SEL sel ) {
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
+#endif
+    if( [obj respondsToSelector: sel] )
+        return [obj performSelector: sel];
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+    return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
+#define CATCH_ARC_STRONG __strong
+#endif
+
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_TUPLE
+#include <tuple>
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_IS_ENUM
+#include <type_traits>
+#endif
+
+namespace Catch {
+
+// Why we're here.
+template<typename T>
+std::string toString( T const& value );
+
+// Built in overloads
+
+std::string toString( std::string const& value );
+std::string toString( std::wstring const& value );
+std::string toString( const char* const value );
+std::string toString( char* const value );
+std::string toString( const wchar_t* const value );
+std::string toString( wchar_t* const value );
+std::string toString( int value );
+std::string toString( unsigned long value );
+std::string toString( unsigned int value );
+std::string toString( const double value );
+std::string toString( const float value );
+std::string toString( bool value );
+std::string toString( char value );
+std::string toString( signed char value );
+std::string toString( unsigned char value );
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+std::string toString( long long value );
+std::string toString( unsigned long long value );
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+std::string toString( std::nullptr_t );
+#endif
+
+#ifdef __OBJC__
+    std::string toString( NSString const * const& nsstring );
+    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring );
+    std::string toString( NSObject* const& nsObject );
+#endif
+
+namespace Detail {
+
+    extern const std::string unprintableString;
+
+    struct BorgType {
+        template<typename T> BorgType( T const& );
+    };
+
+    struct TrueType { char sizer[1]; };
+    struct FalseType { char sizer[2]; };
+
+    TrueType& testStreamable( std::ostream& );
+    FalseType testStreamable( FalseType );
+
+    FalseType operator<<( std::ostream const&, BorgType const& );
+
+    template<typename T>
+    struct IsStreamInsertable {
+        static std::ostream &s;
+        static T  const&t;
+        enum { value = sizeof( testStreamable(s << t) ) == sizeof( TrueType ) };
+    };
+
+#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
+    template<typename T,
+             bool IsEnum = std::is_enum<T>::value
+             >
+    struct EnumStringMaker
+    {
+        static std::string convert( T const& ) { return unprintableString; }
+    };
+
+    template<typename T>
+    struct EnumStringMaker<T,true>
+    {
+        static std::string convert( T const& v )
+        {
+            return ::Catch::toString(
+                static_cast<typename std::underlying_type<T>::type>(v)
+                );
+        }
+    };
+#endif
+    template<bool C>
+    struct StringMakerBase {
+#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
+        template<typename T>
+        static std::string convert( T const& v )
+        {
+            return EnumStringMaker<T>::convert( v );
+        }
+#else
+        template<typename T>
+        static std::string convert( T const& ) { return unprintableString; }
+#endif
+    };
+
+    template<>
+    struct StringMakerBase<true> {
+        template<typename T>
+        static std::string convert( T const& _value ) {
+            std::ostringstream oss;
+            oss << _value;
+            return oss.str();
+        }
+    };
+
+    std::string rawMemoryToString( const void *object, std::size_t size );
+
+    template<typename T>
+    inline std::string rawMemoryToString( const T& object ) {
+      return rawMemoryToString( &object, sizeof(object) );
+    }
+
+} // end namespace Detail
+
+template<typename T>
+struct StringMaker :
+    Detail::StringMakerBase<Detail::IsStreamInsertable<T>::value> {};
+
+template<typename T>
+struct StringMaker<T*> {
+    template<typename U>
+    static std::string convert( U* p ) {
+        if( !p )
+            return "NULL";
+        else
+            return Detail::rawMemoryToString( p );
+    }
+};
+
+template<typename R, typename C>
+struct StringMaker<R C::*> {
+    static std::string convert( R C::* p ) {
+        if( !p )
+            return "NULL";
+        else
+            return Detail::rawMemoryToString( p );
+    }
+};
+
+namespace Detail {
+    template<typename InputIterator>
+    std::string rangeToString( InputIterator first, InputIterator last );
+}
+
+//template<typename T, typename Allocator>
+//struct StringMaker<std::vector<T, Allocator> > {
+//    static std::string convert( std::vector<T,Allocator> const& v ) {
+//        return Detail::rangeToString( v.begin(), v.end() );
+//    }
+//};
+
+template<typename T, typename Allocator>
+std::string toString( std::vector<T,Allocator> const& v ) {
+    return Detail::rangeToString( v.begin(), v.end() );
+}
+
+#ifdef CATCH_CONFIG_CPP11_TUPLE
+
+// toString for tuples
+namespace TupleDetail {
+  template<
+      typename Tuple,
+      std::size_t N = 0,
+      bool = (N < std::tuple_size<Tuple>::value)
+      >
+  struct ElementPrinter {
+      static void print( const Tuple& tuple, std::ostream& os )
+      {
+          os << ( N ? ", " : " " )
+             << Catch::toString(std::get<N>(tuple));
+          ElementPrinter<Tuple,N+1>::print(tuple,os);
+      }
+  };
+
+  template<
+      typename Tuple,
+      std::size_t N
+      >
+  struct ElementPrinter<Tuple,N,false> {
+      static void print( const Tuple&, std::ostream& ) {}
+  };
+
+}
+
+template<typename ...Types>
+struct StringMaker<std::tuple<Types...>> {
+
+    static std::string convert( const std::tuple<Types...>& tuple )
+    {
+        std::ostringstream os;
+        os << '{';
+        TupleDetail::ElementPrinter<std::tuple<Types...>>::print( tuple, os );
+        os << " }";
+        return os.str();
+    }
+};
+#endif // CATCH_CONFIG_CPP11_TUPLE
+
+namespace Detail {
+    template<typename T>
+    std::string makeString( T const& value ) {
+        return StringMaker<T>::convert( value );
+    }
+} // end namespace Detail
+
+/// \brief converts any type to a string
+///
+/// The default template forwards on to ostringstream - except when an
+/// ostringstream overload does not exist - in which case it attempts to detect
+/// that and writes {?}.
+/// Overload (not specialise) this template for custom typs that you don't want
+/// to provide an ostream overload for.
+template<typename T>
+std::string toString( T const& value ) {
+    return StringMaker<T>::convert( value );
+}
+
+    namespace Detail {
+    template<typename InputIterator>
+    std::string rangeToString( InputIterator first, InputIterator last ) {
+        std::ostringstream oss;
+        oss << "{ ";
+        if( first != last ) {
+            oss << Catch::toString( *first );
+            for( ++first ; first != last ; ++first )
+                oss << ", " << Catch::toString( *first );
+        }
+        oss << " }";
+        return oss.str();
+    }
+}
+
+} // end namespace Catch
+
+namespace Catch {
+
+template<typename LhsT, Internal::Operator Op, typename RhsT>
+class BinaryExpression;
+
+template<typename ArgT, typename MatcherT>
+class MatchExpression;
+
+// Wraps the LHS of an expression and overloads comparison operators
+// for also capturing those and RHS (if any)
+template<typename T>
+class ExpressionLhs : public DecomposedExpression {
+public:
+    ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs ), m_truthy(false) {}
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsEqualTo, RhsT const&>
+    operator == ( RhsT const& rhs ) const {
+        return captureExpression<Internal::IsEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsNotEqualTo, RhsT const&>
+    operator != ( RhsT const& rhs ) const {
+        return captureExpression<Internal::IsNotEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsLessThan, RhsT const&>
+    operator < ( RhsT const& rhs ) const {
+        return captureExpression<Internal::IsLessThan>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsGreaterThan, RhsT const&>
+    operator > ( RhsT const& rhs ) const {
+        return captureExpression<Internal::IsGreaterThan>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsLessThanOrEqualTo, RhsT const&>
+    operator <= ( RhsT const& rhs ) const {
+        return captureExpression<Internal::IsLessThanOrEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsGreaterThanOrEqualTo, RhsT const&>
+    operator >= ( RhsT const& rhs ) const {
+        return captureExpression<Internal::IsGreaterThanOrEqualTo>( rhs );
+    }
+
+    BinaryExpression<T, Internal::IsEqualTo, bool> operator == ( bool rhs ) const {
+        return captureExpression<Internal::IsEqualTo>( rhs );
+    }
+
+    BinaryExpression<T, Internal::IsNotEqualTo, bool> operator != ( bool rhs ) const {
+        return captureExpression<Internal::IsNotEqualTo>( rhs );
+    }
+
+    void endExpression() {
+        m_truthy = m_lhs ? true : false;
+        m_rb
+            .setResultType( m_truthy )
+            .endExpression( *this );
+    }
+
+    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
+        dest = Catch::toString( m_truthy );
+    }
+
+private:
+    template<Internal::Operator Op, typename RhsT>
+    BinaryExpression<T, Op, RhsT&> captureExpression( RhsT& rhs ) const {
+        return BinaryExpression<T, Op, RhsT&>( m_rb, m_lhs, rhs );
+    }
+
+    template<Internal::Operator Op>
+    BinaryExpression<T, Op, bool> captureExpression( bool rhs ) const {
+        return BinaryExpression<T, Op, bool>( m_rb, m_lhs, rhs );
+    }
+
+private:
+    ResultBuilder& m_rb;
+    T m_lhs;
+    bool m_truthy;
+};
+
+template<typename LhsT, Internal::Operator Op, typename RhsT>
+class BinaryExpression : public DecomposedExpression {
+public:
+    BinaryExpression( ResultBuilder& rb, LhsT lhs, RhsT rhs )
+        : m_rb( rb ), m_lhs( lhs ), m_rhs( rhs ) {}
+
+    void endExpression() const {
+        m_rb
+            .setResultType( Internal::compare<Op>( m_lhs, m_rhs ) )
+            .endExpression( *this );
+    }
+
+    virtual bool isBinaryExpression() const CATCH_OVERRIDE {
+        return true;
+    }
+
+    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
+        std::string lhs = Catch::toString( m_lhs );
+        std::string rhs = Catch::toString( m_rhs );
+        char delim = lhs.size() + rhs.size() < 40 &&
+                     lhs.find('\n') == std::string::npos &&
+                     rhs.find('\n') == std::string::npos ? ' ' : '\n';
+        dest.reserve( 7 + lhs.size() + rhs.size() );
+                   // 2 for spaces around operator
+                   // 2 for operator
+                   // 2 for parentheses (conditionally added later)
+                   // 1 for negation (conditionally added later)
+        dest = lhs;
+        dest += delim;
+        dest += Internal::OperatorTraits<Op>::getName();
+        dest += delim;
+        dest += rhs;
+    }
+
+private:
+    ResultBuilder& m_rb;
+    LhsT m_lhs;
+    RhsT m_rhs;
+};
+
+template<typename ArgT, typename MatcherT>
+class MatchExpression : public DecomposedExpression {
+public:
+    MatchExpression( ArgT arg, MatcherT matcher, char const* matcherString )
+        : m_arg( arg ), m_matcher( matcher ), m_matcherString( matcherString ) {}
+
+    virtual bool isBinaryExpression() const CATCH_OVERRIDE {
+        return true;
+    }
+
+    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
+        std::string matcherAsString = m_matcher.toString();
+        dest = Catch::toString( m_arg );
+        dest += ' ';
+        if( matcherAsString == Detail::unprintableString )
+            dest += m_matcherString;
+        else
+            dest += matcherAsString;
+    }
+
+private:
+    ArgT m_arg;
+    MatcherT m_matcher;
+    char const* m_matcherString;
+};
+
+} // end namespace Catch
+
+
+namespace Catch {
+
+    template<typename T>
+    inline ExpressionLhs<T const&> ResultBuilder::operator <= ( T const& operand ) {
+        return ExpressionLhs<T const&>( *this, operand );
+    }
+
+    inline ExpressionLhs<bool> ResultBuilder::operator <= ( bool value ) {
+        return ExpressionLhs<bool>( *this, value );
+    }
+
+    template<typename ArgT, typename MatcherT>
+    inline void ResultBuilder::captureMatch( ArgT const& arg, MatcherT const& matcher,
+                                             char const* matcherString ) {
+        MatchExpression<ArgT const&, MatcherT const&> expr( arg, matcher, matcherString );
+        setResultType( matcher.match( arg ) );
+        endExpression( expr );
+    }
+
+} // namespace Catch
+
+// #included from: catch_message.h
+#define TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct MessageInfo {
+        MessageInfo(    std::string const& _macroName,
+                        SourceLineInfo const& _lineInfo,
+                        ResultWas::OfType _type );
+
+        std::string macroName;
+        SourceLineInfo lineInfo;
+        ResultWas::OfType type;
+        std::string message;
+        unsigned int sequence;
+
+        bool operator == ( MessageInfo const& other ) const {
+            return sequence == other.sequence;
+        }
+        bool operator < ( MessageInfo const& other ) const {
+            return sequence < other.sequence;
+        }
+    private:
+        static unsigned int globalCount;
+    };
+
+    struct MessageBuilder {
+        MessageBuilder( std::string const& macroName,
+                        SourceLineInfo const& lineInfo,
+                        ResultWas::OfType type )
+        : m_info( macroName, lineInfo, type )
+        {}
+
+        template<typename T>
+        MessageBuilder& operator << ( T const& value ) {
+            m_stream << value;
+            return *this;
+        }
+
+        MessageInfo m_info;
+        std::ostringstream m_stream;
+    };
+
+    class ScopedMessage {
+    public:
+        ScopedMessage( MessageBuilder const& builder );
+        ScopedMessage( ScopedMessage const& other );
+        ~ScopedMessage();
+
+        MessageInfo m_info;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_interfaces_capture.h
+#define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    class TestCase;
+    class AssertionResult;
+    struct AssertionInfo;
+    struct SectionInfo;
+    struct SectionEndInfo;
+    struct MessageInfo;
+    class ScopedMessageBuilder;
+    struct Counts;
+
+    struct IResultCapture {
+
+        virtual ~IResultCapture();
+
+        virtual void assertionEnded( AssertionResult const& result ) = 0;
+        virtual bool sectionStarted(    SectionInfo const& sectionInfo,
+                                        Counts& assertions ) = 0;
+        virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0;
+        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0;
+        virtual void pushScopedMessage( MessageInfo const& message ) = 0;
+        virtual void popScopedMessage( MessageInfo const& message ) = 0;
+
+        virtual std::string getCurrentTestName() const = 0;
+        virtual const AssertionResult* getLastResult() const = 0;
+
+        virtual void handleFatalErrorCondition( std::string const& message ) = 0;
+    };
+
+    IResultCapture& getResultCapture();
+}
+
+// #included from: catch_debugger.h
+#define TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED
+
+// #included from: catch_platform.h
+#define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED
+
+#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
+#  define CATCH_PLATFORM_MAC
+#elif  defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
+#  define CATCH_PLATFORM_IPHONE
+#elif defined(linux) || defined(__linux) || defined(__linux__)
+#  define CATCH_PLATFORM_LINUX
+#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
+#  define CATCH_PLATFORM_WINDOWS
+#  if !defined(NOMINMAX) && !defined(CATCH_CONFIG_NO_NOMINMAX)
+#    define CATCH_DEFINES_NOMINMAX
+#  endif
+#  if !defined(WIN32_LEAN_AND_MEAN) && !defined(CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN)
+#    define CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+#  endif
+#endif
+
+#include <string>
+
+namespace Catch{
+
+    bool isDebuggerActive();
+    void writeToDebugConsole( std::string const& text );
+}
+
+#ifdef CATCH_PLATFORM_MAC
+
+    // The following code snippet based on:
+    // http://cocoawithlove.com/2008/03/break-into-debugger.html
+    #if defined(__ppc64__) || defined(__ppc__)
+        #define CATCH_TRAP() \
+                __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \
+                : : : "memory","r0","r3","r4" )
+    #else
+        #define CATCH_TRAP() __asm__("int $3\n" : : )
+    #endif
+
+#elif defined(CATCH_PLATFORM_LINUX)
+    // If we can use inline assembler, do it because this allows us to break
+    // directly at the location of the failing check instead of breaking inside
+    // raise() called from it, i.e. one stack frame below.
+    #if defined(__GNUC__) && (defined(__i386) || defined(__x86_64))
+        #define CATCH_TRAP() asm volatile ("int $3")
+    #else // Fall back to the generic way.
+        #include <signal.h>
+
+        #define CATCH_TRAP() raise(SIGTRAP)
+    #endif
+#elif defined(_MSC_VER)
+    #define CATCH_TRAP() __debugbreak()
+#elif defined(__MINGW32__)
+    extern "C" __declspec(dllimport) void __stdcall DebugBreak();
+    #define CATCH_TRAP() DebugBreak()
+#endif
+
+#ifdef CATCH_TRAP
+    #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { CATCH_TRAP(); }
+#else
+    #define CATCH_BREAK_INTO_DEBUGGER() Catch::alwaysTrue();
+#endif
+
+// #included from: catch_interfaces_runner.h
+#define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED
+
+namespace Catch {
+    class TestCase;
+
+    struct IRunner {
+        virtual ~IRunner();
+        virtual bool aborting() const = 0;
+    };
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// In the event of a failure works out if the debugger needs to be invoked
+// and/or an exception thrown and takes appropriate action.
+// This needs to be done as a macro so the debugger will stop in the user
+// source code rather than in Catch library code
+#define INTERNAL_CATCH_REACT( resultBuilder ) \
+    if( resultBuilder.shouldDebugBreak() ) CATCH_BREAK_INTO_DEBUGGER(); \
+    resultBuilder.react();
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        try { \
+            CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \
+            ( __catchResult <= expr ).endExpression(); \
+        } \
+        catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::isTrue( false && static_cast<bool>( !!(expr) ) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look
+    // The double negation silences MSVC's C4800 warning, the static_cast forces short-circuit evaluation if the type has overloaded &&.
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_IF( expr, resultDisposition, macroName ) \
+    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
+    if( Catch::getResultCapture().getLastResult()->succeeded() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_ELSE( expr, resultDisposition, macroName ) \
+    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
+    if( !Catch::getResultCapture().getLastResult()->succeeded() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_NO_THROW( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        try { \
+            static_cast<void>(expr); \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        } \
+        catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_THROWS( expr, resultDisposition, matcher, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition, #matcher ); \
+        if( __catchResult.allowThrows() ) \
+            try { \
+                static_cast<void>(expr); \
+                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
+            } \
+            catch( ... ) { \
+                __catchResult.captureExpectedException( matcher ); \
+            } \
+        else \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        if( __catchResult.allowThrows() ) \
+            try { \
+                static_cast<void>(expr); \
+                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
+            } \
+            catch( exceptionType ) { \
+                __catchResult.captureResult( Catch::ResultWas::Ok ); \
+            } \
+            catch( ... ) { \
+                __catchResult.useActiveException( resultDisposition ); \
+            } \
+        else \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, ... ) \
+        do { \
+            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
+            __catchResult << __VA_ARGS__ + ::Catch::StreamEndStop(); \
+            __catchResult.captureResult( messageType ); \
+            INTERNAL_CATCH_REACT( __catchResult ) \
+        } while( Catch::alwaysFalse() )
+#else
+    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \
+        do { \
+            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
+            __catchResult << log + ::Catch::StreamEndStop(); \
+            __catchResult.captureResult( messageType ); \
+            INTERNAL_CATCH_REACT( __catchResult ) \
+        } while( Catch::alwaysFalse() )
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_INFO( log, macroName ) \
+    Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage ) = Catch::MessageBuilder( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log;
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CHECK_THAT( arg, matcher, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \
+        try { \
+            __catchResult.captureMatch( arg, matcher, #matcher ); \
+        } catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+// #included from: internal/catch_section.h
+#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED
+
+// #included from: catch_section_info.h
+#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED
+
+// #included from: catch_totals.hpp
+#define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED
+
+#include <cstddef>
+
+namespace Catch {
+
+    struct Counts {
+        Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {}
+
+        Counts operator - ( Counts const& other ) const {
+            Counts diff;
+            diff.passed = passed - other.passed;
+            diff.failed = failed - other.failed;
+            diff.failedButOk = failedButOk - other.failedButOk;
+            return diff;
+        }
+        Counts& operator += ( Counts const& other ) {
+            passed += other.passed;
+            failed += other.failed;
+            failedButOk += other.failedButOk;
+            return *this;
+        }
+
+        std::size_t total() const {
+            return passed + failed + failedButOk;
+        }
+        bool allPassed() const {
+            return failed == 0 && failedButOk == 0;
+        }
+        bool allOk() const {
+            return failed == 0;
+        }
+
+        std::size_t passed;
+        std::size_t failed;
+        std::size_t failedButOk;
+    };
+
+    struct Totals {
+
+        Totals operator - ( Totals const& other ) const {
+            Totals diff;
+            diff.assertions = assertions - other.assertions;
+            diff.testCases = testCases - other.testCases;
+            return diff;
+        }
+
+        Totals delta( Totals const& prevTotals ) const {
+            Totals diff = *this - prevTotals;
+            if( diff.assertions.failed > 0 )
+                ++diff.testCases.failed;
+            else if( diff.assertions.failedButOk > 0 )
+                ++diff.testCases.failedButOk;
+            else
+                ++diff.testCases.passed;
+            return diff;
+        }
+
+        Totals& operator += ( Totals const& other ) {
+            assertions += other.assertions;
+            testCases += other.testCases;
+            return *this;
+        }
+
+        Counts assertions;
+        Counts testCases;
+    };
+}
+
+namespace Catch {
+
+    struct SectionInfo {
+        SectionInfo
+            (   SourceLineInfo const& _lineInfo,
+                std::string const& _name,
+                std::string const& _description = std::string() );
+
+        std::string name;
+        std::string description;
+        SourceLineInfo lineInfo;
+    };
+
+    struct SectionEndInfo {
+        SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prevAssertions, double _durationInSeconds )
+        : sectionInfo( _sectionInfo ), prevAssertions( _prevAssertions ), durationInSeconds( _durationInSeconds )
+        {}
+
+        SectionInfo sectionInfo;
+        Counts prevAssertions;
+        double durationInSeconds;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_timer.h
+#define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED
+
+#ifdef CATCH_PLATFORM_WINDOWS
+typedef unsigned long long uint64_t;
+#else
+#include <stdint.h>
+#endif
+
+namespace Catch {
+
+    class Timer {
+    public:
+        Timer() : m_ticks( 0 ) {}
+        void start();
+        unsigned int getElapsedMicroseconds() const;
+        unsigned int getElapsedMilliseconds() const;
+        double getElapsedSeconds() const;
+
+    private:
+        uint64_t m_ticks;
+    };
+
+} // namespace Catch
+
+#include <string>
+
+namespace Catch {
+
+    class Section : NonCopyable {
+    public:
+        Section( SectionInfo const& info );
+        ~Section();
+
+        // This indicates whether the section should be executed or not
+        operator bool() const;
+
+    private:
+        SectionInfo m_info;
+
+        std::string m_name;
+        Counts m_assertions;
+        bool m_sectionIncluded;
+        Timer m_timer;
+    };
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define INTERNAL_CATCH_SECTION( ... ) \
+        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
+#else
+    #define INTERNAL_CATCH_SECTION( name, desc ) \
+        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) )
+#endif
+
+// #included from: internal/catch_generators.hpp
+#define TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED
+
+#include <iterator>
+#include <vector>
+#include <string>
+#include <stdlib.h>
+
+namespace Catch {
+
+template<typename T>
+struct IGenerator {
+    virtual ~IGenerator() {}
+    virtual T getValue( std::size_t index ) const = 0;
+    virtual std::size_t size () const = 0;
+};
+
+template<typename T>
+class BetweenGenerator : public IGenerator<T> {
+public:
+    BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){}
+
+    virtual T getValue( std::size_t index ) const {
+        return m_from+static_cast<int>( index );
+    }
+
+    virtual std::size_t size() const {
+        return static_cast<std::size_t>( 1+m_to-m_from );
+    }
+
+private:
+
+    T m_from;
+    T m_to;
+};
+
+template<typename T>
+class ValuesGenerator : public IGenerator<T> {
+public:
+    ValuesGenerator(){}
+
+    void add( T value ) {
+        m_values.push_back( value );
+    }
+
+    virtual T getValue( std::size_t index ) const {
+        return m_values[index];
+    }
+
+    virtual std::size_t size() const {
+        return m_values.size();
+    }
+
+private:
+    std::vector<T> m_values;
+};
+
+template<typename T>
+class CompositeGenerator {
+public:
+    CompositeGenerator() : m_totalSize( 0 ) {}
+
+    // *** Move semantics, similar to auto_ptr ***
+    CompositeGenerator( CompositeGenerator& other )
+    :   m_fileInfo( other.m_fileInfo ),
+        m_totalSize( 0 )
+    {
+        move( other );
+    }
+
+    CompositeGenerator& setFileInfo( const char* fileInfo ) {
+        m_fileInfo = fileInfo;
+        return *this;
+    }
+
+    ~CompositeGenerator() {
+        deleteAll( m_composed );
+    }
+
+    operator T () const {
+        size_t overallIndex = getCurrentContext().getGeneratorIndex( m_fileInfo, m_totalSize );
+
+        typename std::vector<const IGenerator<T>*>::const_iterator it = m_composed.begin();
+        typename std::vector<const IGenerator<T>*>::const_iterator itEnd = m_composed.end();
+        for( size_t index = 0; it != itEnd; ++it )
+        {
+            const IGenerator<T>* generator = *it;
+            if( overallIndex >= index && overallIndex < index + generator->size() )
+            {
+                return generator->getValue( overallIndex-index );
+            }
+            index += generator->size();
+        }
+        CATCH_INTERNAL_ERROR( "Indexed past end of generated range" );
+        return T(); // Suppress spurious "not all control paths return a value" warning in Visual Studio - if you know how to fix this please do so
+    }
+
+    void add( const IGenerator<T>* generator ) {
+        m_totalSize += generator->size();
+        m_composed.push_back( generator );
+    }
+
+    CompositeGenerator& then( CompositeGenerator& other ) {
+        move( other );
+        return *this;
+    }
+
+    CompositeGenerator& then( T value ) {
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( value );
+        add( valuesGen );
+        return *this;
+    }
+
+private:
+
+    void move( CompositeGenerator& other ) {
+        std::copy( other.m_composed.begin(), other.m_composed.end(), std::back_inserter( m_composed ) );
+        m_totalSize += other.m_totalSize;
+        other.m_composed.clear();
+    }
+
+    std::vector<const IGenerator<T>*> m_composed;
+    std::string m_fileInfo;
+    size_t m_totalSize;
+};
+
+namespace Generators
+{
+    template<typename T>
+    CompositeGenerator<T> between( T from, T to ) {
+        CompositeGenerator<T> generators;
+        generators.add( new BetweenGenerator<T>( from, to ) );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2 ) {
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2, T val3 ){
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        valuesGen->add( val3 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2, T val3, T val4 ) {
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        valuesGen->add( val3 );
+        valuesGen->add( val4 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+} // end namespace Generators
+
+using namespace Generators;
+
+} // end namespace Catch
+
+#define INTERNAL_CATCH_LINESTR2( line ) #line
+#define INTERNAL_CATCH_LINESTR( line ) INTERNAL_CATCH_LINESTR2( line )
+
+#define INTERNAL_CATCH_GENERATE( expr ) expr.setFileInfo( __FILE__ "(" INTERNAL_CATCH_LINESTR( __LINE__ ) ")" )
+
+// #included from: internal/catch_interfaces_exception.h
+#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED
+
+#include <string>
+#include <vector>
+
+// #included from: catch_interfaces_registry_hub.h
+#define TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    class TestCase;
+    struct ITestCaseRegistry;
+    struct IExceptionTranslatorRegistry;
+    struct IExceptionTranslator;
+    struct IReporterRegistry;
+    struct IReporterFactory;
+
+    struct IRegistryHub {
+        virtual ~IRegistryHub();
+
+        virtual IReporterRegistry const& getReporterRegistry() const = 0;
+        virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0;
+        virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0;
+    };
+
+    struct IMutableRegistryHub {
+        virtual ~IMutableRegistryHub();
+        virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) = 0;
+        virtual void registerListener( Ptr<IReporterFactory> const& factory ) = 0;
+        virtual void registerTest( TestCase const& testInfo ) = 0;
+        virtual void registerTranslator( const IExceptionTranslator* translator ) = 0;
+    };
+
+    IRegistryHub& getRegistryHub();
+    IMutableRegistryHub& getMutableRegistryHub();
+    void cleanUp();
+    std::string translateActiveException();
+
+}
+
+namespace Catch {
+
+    typedef std::string(*exceptionTranslateFunction)();
+
+    struct IExceptionTranslator;
+    typedef std::vector<const IExceptionTranslator*> ExceptionTranslators;
+
+    struct IExceptionTranslator {
+        virtual ~IExceptionTranslator();
+        virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0;
+    };
+
+    struct IExceptionTranslatorRegistry {
+        virtual ~IExceptionTranslatorRegistry();
+
+        virtual std::string translateActiveException() const = 0;
+    };
+
+    class ExceptionTranslatorRegistrar {
+        template<typename T>
+        class ExceptionTranslator : public IExceptionTranslator {
+        public:
+
+            ExceptionTranslator( std::string(*translateFunction)( T& ) )
+            : m_translateFunction( translateFunction )
+            {}
+
+            virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const CATCH_OVERRIDE {
+                try {
+                    if( it == itEnd )
+                        throw;
+                    else
+                        return (*it)->translate( it+1, itEnd );
+                }
+                catch( T& ex ) {
+                    return m_translateFunction( ex );
+                }
+            }
+
+        protected:
+            std::string(*m_translateFunction)( T& );
+        };
+
+    public:
+        template<typename T>
+        ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
+            getMutableRegistryHub().registerTranslator
+                ( new ExceptionTranslator<T>( translateFunction ) );
+        }
+    };
+}
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2( translatorName, signature ) \
+    static std::string translatorName( signature ); \
+    namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &translatorName ); }\
+    static std::string translatorName( signature )
+
+#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )
+
+// #included from: internal/catch_approx.hpp
+#define TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED
+
+#include <cmath>
+#include <limits>
+
+#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
+#include <type_traits>
+#endif
+
+namespace Catch {
+namespace Detail {
+
+    class Approx {
+    public:
+        explicit Approx ( double value )
+        :   m_epsilon( std::numeric_limits<float>::epsilon()*100 ),
+            m_scale( 1.0 ),
+            m_value( value )
+        {}
+
+        Approx( Approx const& other )
+        :   m_epsilon( other.m_epsilon ),
+            m_scale( other.m_scale ),
+            m_value( other.m_value )
+        {}
+
+        static Approx custom() {
+            return Approx( 0 );
+        }
+
+        Approx operator()( double value ) {
+            Approx approx( value );
+            approx.epsilon( m_epsilon );
+            approx.scale( m_scale );
+            return approx;
+        }
+
+#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator == ( const T& lhs, Approx const& rhs ) {
+            // Thanks to Richard Harris for his help refining this formula
+            auto lhs_v = double(lhs);
+            return fabs( lhs_v - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( fabs(lhs_v), fabs(rhs.m_value) ) );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator == ( Approx const& lhs, const T& rhs ) {
+            return operator==( rhs, lhs );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator != ( T lhs, Approx const& rhs ) {
+            return !operator==( lhs, rhs );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator != ( Approx const& lhs, T rhs ) {
+            return !operator==( rhs, lhs );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator <= ( T lhs, Approx const& rhs )
+        {
+          return double(lhs) < rhs.m_value || lhs == rhs;
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator <= ( Approx const& lhs, T rhs )
+        {
+          return lhs.m_value < double(rhs) || lhs == rhs;
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator >= ( T lhs, Approx const& rhs )
+        {
+          return double(lhs) > rhs.m_value || lhs == rhs;
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator >= ( Approx const& lhs, T rhs )
+        {
+          return lhs.m_value > double(rhs) || lhs == rhs;
+        }
+#else
+        friend bool operator == ( double lhs, Approx const& rhs ) {
+            // Thanks to Richard Harris for his help refining this formula
+            return fabs( lhs - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( fabs(lhs), fabs(rhs.m_value) ) );
+        }
+
+        friend bool operator == ( Approx const& lhs, double rhs ) {
+            return operator==( rhs, lhs );
+        }
+
+        friend bool operator != ( double lhs, Approx const& rhs ) {
+            return !operator==( lhs, rhs );
+        }
+
+        friend bool operator != ( Approx const& lhs, double rhs ) {
+            return !operator==( rhs, lhs );
+        }
+
+        friend bool operator <= ( double lhs, Approx const& rhs )
+        {
+          return lhs < rhs.m_value || lhs == rhs;
+        }
+
+        friend bool operator <= ( Approx const& lhs, double rhs )
+        {
+          return lhs.m_value < rhs || lhs == rhs;
+        }
+
+        friend bool operator >= ( double lhs, Approx const& rhs )
+        {
+          return lhs > rhs.m_value || lhs == rhs;
+        }
+
+        friend bool operator >= ( Approx const& lhs, double rhs )
+        {
+          return lhs.m_value > rhs || lhs == rhs;
+        }
+#endif
+
+        Approx& epsilon( double newEpsilon ) {
+            m_epsilon = newEpsilon;
+            return *this;
+        }
+
+        Approx& scale( double newScale ) {
+            m_scale = newScale;
+            return *this;
+        }
+
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << "Approx( " << Catch::toString( m_value ) << " )";
+            return oss.str();
+        }
+
+    private:
+        double m_epsilon;
+        double m_scale;
+        double m_value;
+    };
+}
+
+template<>
+inline std::string toString<Detail::Approx>( Detail::Approx const& value ) {
+    return value.toString();
+}
+
+} // end namespace Catch
+
+// #included from: internal/catch_interfaces_tag_alias_registry.h
+#define TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+// #included from: catch_tag_alias.h
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct TagAlias {
+        TagAlias( std::string _tag, SourceLineInfo _lineInfo ) : tag( _tag ), lineInfo( _lineInfo ) {}
+
+        std::string tag;
+        SourceLineInfo lineInfo;
+    };
+
+    struct RegistrarForTagAliases {
+        RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+    };
+
+} // end namespace Catch
+
+#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); }
+// #included from: catch_option.hpp
+#define TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED
+
+namespace Catch {
+
+    // An optional type
+    template<typename T>
+    class Option {
+    public:
+        Option() : nullableValue( CATCH_NULL ) {}
+        Option( T const& _value )
+        : nullableValue( new( storage ) T( _value ) )
+        {}
+        Option( Option const& _other )
+        : nullableValue( _other ? new( storage ) T( *_other ) : CATCH_NULL )
+        {}
+
+        ~Option() {
+            reset();
+        }
+
+        Option& operator= ( Option const& _other ) {
+            if( &_other != this ) {
+                reset();
+                if( _other )
+                    nullableValue = new( storage ) T( *_other );
+            }
+            return *this;
+        }
+        Option& operator = ( T const& _value ) {
+            reset();
+            nullableValue = new( storage ) T( _value );
+            return *this;
+        }
+
+        void reset() {
+            if( nullableValue )
+                nullableValue->~T();
+            nullableValue = CATCH_NULL;
+        }
+
+        T& operator*() { return *nullableValue; }
+        T const& operator*() const { return *nullableValue; }
+        T* operator->() { return nullableValue; }
+        const T* operator->() const { return nullableValue; }
+
+        T valueOr( T const& defaultValue ) const {
+            return nullableValue ? *nullableValue : defaultValue;
+        }
+
+        bool some() const { return nullableValue != CATCH_NULL; }
+        bool none() const { return nullableValue == CATCH_NULL; }
+
+        bool operator !() const { return nullableValue == CATCH_NULL; }
+        operator SafeBool::type() const {
+            return SafeBool::makeSafe( some() );
+        }
+
+    private:
+        T* nullableValue;
+        char storage[sizeof(T)];
+    };
+
+} // end namespace Catch
+
+namespace Catch {
+
+    struct ITagAliasRegistry {
+        virtual ~ITagAliasRegistry();
+        virtual Option<TagAlias> find( std::string const& alias ) const = 0;
+        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0;
+
+        static ITagAliasRegistry const& get();
+    };
+
+} // end namespace Catch
+
+// These files are included here so the single_include script doesn't put them
+// in the conditionally compiled sections
+// #included from: internal/catch_test_case_info.h
+#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
+
+#include <string>
+#include <set>
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    struct ITestCase;
+
+    struct TestCaseInfo {
+        enum SpecialProperties{
+            None = 0,
+            IsHidden = 1 << 1,
+            ShouldFail = 1 << 2,
+            MayFail = 1 << 3,
+            Throws = 1 << 4,
+            NonPortable = 1 << 5
+        };
+
+        TestCaseInfo(   std::string const& _name,
+                        std::string const& _className,
+                        std::string const& _description,
+                        std::set<std::string> const& _tags,
+                        SourceLineInfo const& _lineInfo );
+
+        TestCaseInfo( TestCaseInfo const& other );
+
+        friend void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags );
+
+        bool isHidden() const;
+        bool throws() const;
+        bool okToFail() const;
+        bool expectedToFail() const;
+
+        std::string name;
+        std::string className;
+        std::string description;
+        std::set<std::string> tags;
+        std::set<std::string> lcaseTags;
+        std::string tagsAsString;
+        SourceLineInfo lineInfo;
+        SpecialProperties properties;
+    };
+
+    class TestCase : public TestCaseInfo {
+    public:
+
+        TestCase( ITestCase* testCase, TestCaseInfo const& info );
+        TestCase( TestCase const& other );
+
+        TestCase withName( std::string const& _newName ) const;
+
+        void invoke() const;
+
+        TestCaseInfo const& getTestCaseInfo() const;
+
+        void swap( TestCase& other );
+        bool operator == ( TestCase const& other ) const;
+        bool operator < ( TestCase const& other ) const;
+        TestCase& operator = ( TestCase const& other );
+
+    private:
+        Ptr<ITestCase> test;
+    };
+
+    TestCase makeTestCase(  ITestCase* testCase,
+                            std::string const& className,
+                            std::string const& name,
+                            std::string const& description,
+                            SourceLineInfo const& lineInfo );
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+
+#ifdef __OBJC__
+// #included from: internal/catch_objc.hpp
+#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
+
+#import <objc/runtime.h>
+
+#include <string>
+
+// NB. Any general catch headers included here must be included
+// in catch.hpp first to make sure they are included by the single
+// header for non obj-usage
+
+///////////////////////////////////////////////////////////////////////////////
+// This protocol is really only here for (self) documenting purposes, since
+// all its methods are optional.
+@protocol OcFixture
+
+@optional
+
+-(void) setUp;
+-(void) tearDown;
+
+@end
+
+namespace Catch {
+
+    class OcMethod : public SharedImpl<ITestCase> {
+
+    public:
+        OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {}
+
+        virtual void invoke() const {
+            id obj = [[m_cls alloc] init];
+
+            performOptionalSelector( obj, @selector(setUp)  );
+            performOptionalSelector( obj, m_sel );
+            performOptionalSelector( obj, @selector(tearDown)  );
+
+            arcSafeRelease( obj );
+        }
+    private:
+        virtual ~OcMethod() {}
+
+        Class m_cls;
+        SEL m_sel;
+    };
+
+    namespace Detail{
+
+        inline std::string getAnnotation(   Class cls,
+                                            std::string const& annotationName,
+                                            std::string const& testCaseName ) {
+            NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()];
+            SEL sel = NSSelectorFromString( selStr );
+            arcSafeRelease( selStr );
+            id value = performOptionalSelector( cls, sel );
+            if( value )
+                return [(NSString*)value UTF8String];
+            return "";
+        }
+    }
+
+    inline size_t registerTestMethods() {
+        size_t noTestMethods = 0;
+        int noClasses = objc_getClassList( CATCH_NULL, 0 );
+
+        Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses);
+        objc_getClassList( classes, noClasses );
+
+        for( int c = 0; c < noClasses; c++ ) {
+            Class cls = classes[c];
+            {
+                u_int count;
+                Method* methods = class_copyMethodList( cls, &count );
+                for( u_int m = 0; m < count ; m++ ) {
+                    SEL selector = method_getName(methods[m]);
+                    std::string methodName = sel_getName(selector);
+                    if( startsWith( methodName, "Catch_TestCase_" ) ) {
+                        std::string testCaseName = methodName.substr( 15 );
+                        std::string name = Detail::getAnnotation( cls, "Name", testCaseName );
+                        std::string desc = Detail::getAnnotation( cls, "Description", testCaseName );
+                        const char* className = class_getName( cls );
+
+                        getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, name.c_str(), desc.c_str(), SourceLineInfo() ) );
+                        noTestMethods++;
+                    }
+                }
+                free(methods);
+            }
+        }
+        return noTestMethods;
+    }
+
+    namespace Matchers {
+        namespace Impl {
+        namespace NSStringMatchers {
+
+            template<typename MatcherT>
+            struct StringHolder : MatcherImpl<MatcherT, NSString*>{
+                StringHolder( NSString* substr ) : m_substr( [substr copy] ){}
+                StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){}
+                StringHolder() {
+                    arcSafeRelease( m_substr );
+                }
+
+                NSString* m_substr;
+            };
+
+            struct Equals : StringHolder<Equals> {
+                Equals( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str isEqualToString:m_substr];
+                }
+
+                virtual std::string toString() const {
+                    return "equals string: " + Catch::toString( m_substr );
+                }
+            };
+
+            struct Contains : StringHolder<Contains> {
+                Contains( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location != NSNotFound;
+                }
+
+                virtual std::string toString() const {
+                    return "contains string: " + Catch::toString( m_substr );
+                }
+            };
+
+            struct StartsWith : StringHolder<StartsWith> {
+                StartsWith( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location == 0;
+                }
+
+                virtual std::string toString() const {
+                    return "starts with: " + Catch::toString( m_substr );
+                }
+            };
+            struct EndsWith : StringHolder<EndsWith> {
+                EndsWith( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location == [str length] - [m_substr length];
+                }
+
+                virtual std::string toString() const {
+                    return "ends with: " + Catch::toString( m_substr );
+                }
+            };
+
+        } // namespace NSStringMatchers
+        } // namespace Impl
+
+        inline Impl::NSStringMatchers::Equals
+            Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); }
+
+        inline Impl::NSStringMatchers::Contains
+            Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); }
+
+        inline Impl::NSStringMatchers::StartsWith
+            StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); }
+
+        inline Impl::NSStringMatchers::EndsWith
+            EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); }
+
+    } // namespace Matchers
+
+    using namespace Matchers;
+
+} // namespace Catch
+
+///////////////////////////////////////////////////////////////////////////////
+#define OC_TEST_CASE( name, desc )\
++(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Name_test ) \
+{\
+return @ name; \
+}\
++(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Description_test ) \
+{ \
+return @ desc; \
+} \
+-(void) INTERNAL_CATCH_UNIQUE_NAME( Catch_TestCase_test )
+
+#endif
+
+#ifdef CATCH_IMPL
+// #included from: internal/catch_impl.hpp
+#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
+
+// Collect all the implementation files together here
+// These are the equivalent of what would usually be cpp files
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wweak-vtables"
+#endif
+
+// #included from: ../catch_session.hpp
+#define TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED
+
+// #included from: internal/catch_commandline.hpp
+#define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED
+
+// #included from: catch_config.hpp
+#define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED
+
+// #included from: catch_test_spec_parser.hpp
+#define TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+// #included from: catch_test_spec.hpp
+#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+// #included from: catch_wildcard_pattern.hpp
+#define TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED
+
+namespace Catch
+{
+    class WildcardPattern {
+        enum WildcardPosition {
+            NoWildcard = 0,
+            WildcardAtStart = 1,
+            WildcardAtEnd = 2,
+            WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd
+        };
+
+    public:
+
+        WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity )
+        :   m_caseSensitivity( caseSensitivity ),
+            m_wildcard( NoWildcard ),
+            m_pattern( adjustCase( pattern ) )
+        {
+            if( startsWith( m_pattern, '*' ) ) {
+                m_pattern = m_pattern.substr( 1 );
+                m_wildcard = WildcardAtStart;
+            }
+            if( endsWith( m_pattern, '*' ) ) {
+                m_pattern = m_pattern.substr( 0, m_pattern.size()-1 );
+                m_wildcard = static_cast<WildcardPosition>( m_wildcard | WildcardAtEnd );
+            }
+        }
+        virtual ~WildcardPattern();
+        virtual bool matches( std::string const& str ) const {
+            switch( m_wildcard ) {
+                case NoWildcard:
+                    return m_pattern == adjustCase( str );
+                case WildcardAtStart:
+                    return endsWith( adjustCase( str ), m_pattern );
+                case WildcardAtEnd:
+                    return startsWith( adjustCase( str ), m_pattern );
+                case WildcardAtBothEnds:
+                    return contains( adjustCase( str ), m_pattern );
+            }
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunreachable-code"
+#endif
+            throw std::logic_error( "Unknown enum" );
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+        }
+    private:
+        std::string adjustCase( std::string const& str ) const {
+            return m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str;
+        }
+        CaseSensitive::Choice m_caseSensitivity;
+        WildcardPosition m_wildcard;
+        std::string m_pattern;
+    };
+}
+
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    class TestSpec {
+        struct Pattern : SharedImpl<> {
+            virtual ~Pattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const = 0;
+        };
+        class NamePattern : public Pattern {
+        public:
+            NamePattern( std::string const& name )
+            : m_wildcardPattern( toLower( name ), CaseSensitive::No )
+            {}
+            virtual ~NamePattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const {
+                return m_wildcardPattern.matches( toLower( testCase.name ) );
+            }
+        private:
+            WildcardPattern m_wildcardPattern;
+        };
+
+        class TagPattern : public Pattern {
+        public:
+            TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
+            virtual ~TagPattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const {
+                return testCase.lcaseTags.find( m_tag ) != testCase.lcaseTags.end();
+            }
+        private:
+            std::string m_tag;
+        };
+
+        class ExcludedPattern : public Pattern {
+        public:
+            ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_underlyingPattern( underlyingPattern ) {}
+            virtual ~ExcludedPattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const { return !m_underlyingPattern->matches( testCase ); }
+        private:
+            Ptr<Pattern> m_underlyingPattern;
+        };
+
+        struct Filter {
+            std::vector<Ptr<Pattern> > m_patterns;
+
+            bool matches( TestCaseInfo const& testCase ) const {
+                // All patterns in a filter must match for the filter to be a match
+                for( std::vector<Ptr<Pattern> >::const_iterator it = m_patterns.begin(), itEnd = m_patterns.end(); it != itEnd; ++it ) {
+                    if( !(*it)->matches( testCase ) )
+                        return false;
+                }
+                return true;
+            }
+        };
+
+    public:
+        bool hasFilters() const {
+            return !m_filters.empty();
+        }
+        bool matches( TestCaseInfo const& testCase ) const {
+            // A TestSpec matches if any filter matches
+            for( std::vector<Filter>::const_iterator it = m_filters.begin(), itEnd = m_filters.end(); it != itEnd; ++it )
+                if( it->matches( testCase ) )
+                    return true;
+            return false;
+        }
+
+    private:
+        std::vector<Filter> m_filters;
+
+        friend class TestSpecParser;
+    };
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+namespace Catch {
+
+    class TestSpecParser {
+        enum Mode{ None, Name, QuotedName, Tag, EscapedName };
+        Mode m_mode;
+        bool m_exclusion;
+        std::size_t m_start, m_pos;
+        std::string m_arg;
+        std::vector<std::size_t> m_escapeChars;
+        TestSpec::Filter m_currentFilter;
+        TestSpec m_testSpec;
+        ITagAliasRegistry const* m_tagAliases;
+
+    public:
+        TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {}
+
+        TestSpecParser& parse( std::string const& arg ) {
+            m_mode = None;
+            m_exclusion = false;
+            m_start = std::string::npos;
+            m_arg = m_tagAliases->expandAliases( arg );
+            m_escapeChars.clear();
+            for( m_pos = 0; m_pos < m_arg.size(); ++m_pos )
+                visitChar( m_arg[m_pos] );
+            if( m_mode == Name )
+                addPattern<TestSpec::NamePattern>();
+            return *this;
+        }
+        TestSpec testSpec() {
+            addFilter();
+            return m_testSpec;
+        }
+    private:
+        void visitChar( char c ) {
+            if( m_mode == None ) {
+                switch( c ) {
+                case ' ': return;
+                case '~': m_exclusion = true; return;
+                case '[': return startNewMode( Tag, ++m_pos );
+                case '"': return startNewMode( QuotedName, ++m_pos );
+                case '\\': return escape();
+                default: startNewMode( Name, m_pos ); break;
+                }
+            }
+            if( m_mode == Name ) {
+                if( c == ',' ) {
+                    addPattern<TestSpec::NamePattern>();
+                    addFilter();
+                }
+                else if( c == '[' ) {
+                    if( subString() == "exclude:" )
+                        m_exclusion = true;
+                    else
+                        addPattern<TestSpec::NamePattern>();
+                    startNewMode( Tag, ++m_pos );
+                }
+                else if( c == '\\' )
+                    escape();
+            }
+            else if( m_mode == EscapedName )
+                m_mode = Name;
+            else if( m_mode == QuotedName && c == '"' )
+                addPattern<TestSpec::NamePattern>();
+            else if( m_mode == Tag && c == ']' )
+                addPattern<TestSpec::TagPattern>();
+        }
+        void startNewMode( Mode mode, std::size_t start ) {
+            m_mode = mode;
+            m_start = start;
+        }
+        void escape() {
+            if( m_mode == None )
+                m_start = m_pos;
+            m_mode = EscapedName;
+            m_escapeChars.push_back( m_pos );
+        }
+        std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); }
+        template<typename T>
+        void addPattern() {
+            std::string token = subString();
+            for( size_t i = 0; i < m_escapeChars.size(); ++i )
+                token = token.substr( 0, m_escapeChars[i]-i ) + token.substr( m_escapeChars[i]+1-i );
+            m_escapeChars.clear();
+            if( startsWith( token, "exclude:" ) ) {
+                m_exclusion = true;
+                token = token.substr( 8 );
+            }
+            if( !token.empty() ) {
+                Ptr<TestSpec::Pattern> pattern = new T( token );
+                if( m_exclusion )
+                    pattern = new TestSpec::ExcludedPattern( pattern );
+                m_currentFilter.m_patterns.push_back( pattern );
+            }
+            m_exclusion = false;
+            m_mode = None;
+        }
+        void addFilter() {
+            if( !m_currentFilter.m_patterns.empty() ) {
+                m_testSpec.m_filters.push_back( m_currentFilter );
+                m_currentFilter = TestSpec::Filter();
+            }
+        }
+    };
+    inline TestSpec parseTestSpec( std::string const& arg ) {
+        return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec();
+    }
+
+} // namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+// #included from: catch_interfaces_config.h
+#define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED
+
+#include <iostream>
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    struct Verbosity { enum Level {
+        NoOutput = 0,
+        Quiet,
+        Normal
+    }; };
+
+    struct WarnAbout { enum What {
+        Nothing = 0x00,
+        NoAssertions = 0x01
+    }; };
+
+    struct ShowDurations { enum OrNot {
+        DefaultForReporter,
+        Always,
+        Never
+    }; };
+    struct RunTests { enum InWhatOrder {
+        InDeclarationOrder,
+        InLexicographicalOrder,
+        InRandomOrder
+    }; };
+    struct UseColour { enum YesOrNo {
+        Auto,
+        Yes,
+        No
+    }; };
+
+    class TestSpec;
+
+    struct IConfig : IShared {
+
+        virtual ~IConfig();
+
+        virtual bool allowThrows() const = 0;
+        virtual std::ostream& stream() const = 0;
+        virtual std::string name() const = 0;
+        virtual bool includeSuccessfulResults() const = 0;
+        virtual bool shouldDebugBreak() const = 0;
+        virtual bool warnAboutMissingAssertions() const = 0;
+        virtual int abortAfter() const = 0;
+        virtual bool showInvisibles() const = 0;
+        virtual ShowDurations::OrNot showDurations() const = 0;
+        virtual TestSpec const& testSpec() const = 0;
+        virtual RunTests::InWhatOrder runOrder() const = 0;
+        virtual unsigned int rngSeed() const = 0;
+        virtual UseColour::YesOrNo useColour() const = 0;
+        virtual std::vector<std::string> const& getSectionsToRun() const = 0;
+
+    };
+}
+
+// #included from: catch_stream.h
+#define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
+
+// #included from: catch_streambuf.h
+#define TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED
+
+#include <streambuf>
+
+namespace Catch {
+
+    class StreamBufBase : public std::streambuf {
+    public:
+        virtual ~StreamBufBase() CATCH_NOEXCEPT;
+    };
+}
+
+#include <streambuf>
+#include <ostream>
+#include <fstream>
+#include <memory>
+
+namespace Catch {
+
+    std::ostream& cout();
+    std::ostream& cerr();
+
+    struct IStream {
+        virtual ~IStream() CATCH_NOEXCEPT;
+        virtual std::ostream& stream() const = 0;
+    };
+
+    class FileStream : public IStream {
+        mutable std::ofstream m_ofs;
+    public:
+        FileStream( std::string const& filename );
+        virtual ~FileStream() CATCH_NOEXCEPT;
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+
+    class CoutStream : public IStream {
+        mutable std::ostream m_os;
+    public:
+        CoutStream();
+        virtual ~CoutStream() CATCH_NOEXCEPT;
+
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+
+    class DebugOutStream : public IStream {
+        CATCH_AUTO_PTR( StreamBufBase ) m_streamBuf;
+        mutable std::ostream m_os;
+    public:
+        DebugOutStream();
+        virtual ~DebugOutStream() CATCH_NOEXCEPT;
+
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+}
+
+#include <memory>
+#include <vector>
+#include <string>
+#include <iostream>
+#include <ctime>
+
+#ifndef CATCH_CONFIG_CONSOLE_WIDTH
+#define CATCH_CONFIG_CONSOLE_WIDTH 80
+#endif
+
+namespace Catch {
+
+    struct ConfigData {
+
+        ConfigData()
+        :   listTests( false ),
+            listTags( false ),
+            listReporters( false ),
+            listTestNamesOnly( false ),
+            showSuccessfulTests( false ),
+            shouldDebugBreak( false ),
+            noThrow( false ),
+            showHelp( false ),
+            showInvisibles( false ),
+            filenamesAsTags( false ),
+            abortAfter( -1 ),
+            rngSeed( 0 ),
+            verbosity( Verbosity::Normal ),
+            warnings( WarnAbout::Nothing ),
+            showDurations( ShowDurations::DefaultForReporter ),
+            runOrder( RunTests::InDeclarationOrder ),
+            useColour( UseColour::Auto )
+        {}
+
+        bool listTests;
+        bool listTags;
+        bool listReporters;
+        bool listTestNamesOnly;
+
+        bool showSuccessfulTests;
+        bool shouldDebugBreak;
+        bool noThrow;
+        bool showHelp;
+        bool showInvisibles;
+        bool filenamesAsTags;
+
+        int abortAfter;
+        unsigned int rngSeed;
+
+        Verbosity::Level verbosity;
+        WarnAbout::What warnings;
+        ShowDurations::OrNot showDurations;
+        RunTests::InWhatOrder runOrder;
+        UseColour::YesOrNo useColour;
+
+        std::string outputFilename;
+        std::string name;
+        std::string processName;
+
+        std::vector<std::string> reporterNames;
+        std::vector<std::string> testsOrTags;
+        std::vector<std::string> sectionsToRun;
+    };
+
+    class Config : public SharedImpl<IConfig> {
+    private:
+        Config( Config const& other );
+        Config& operator = ( Config const& other );
+        virtual void dummy();
+    public:
+
+        Config()
+        {}
+
+        Config( ConfigData const& data )
+        :   m_data( data ),
+            m_stream( openStream() )
+        {
+            if( !data.testsOrTags.empty() ) {
+                TestSpecParser parser( ITagAliasRegistry::get() );
+                for( std::size_t i = 0; i < data.testsOrTags.size(); ++i )
+                    parser.parse( data.testsOrTags[i] );
+                m_testSpec = parser.testSpec();
+            }
+        }
+
+        virtual ~Config() {
+        }
+
+        std::string const& getFilename() const {
+            return m_data.outputFilename ;
+        }
+
+        bool listTests() const { return m_data.listTests; }
+        bool listTestNamesOnly() const { return m_data.listTestNamesOnly; }
+        bool listTags() const { return m_data.listTags; }
+        bool listReporters() const { return m_data.listReporters; }
+
+        std::string getProcessName() const { return m_data.processName; }
+
+        bool shouldDebugBreak() const { return m_data.shouldDebugBreak; }
+
+        std::vector<std::string> const& getReporterNames() const { return m_data.reporterNames; }
+        std::vector<std::string> const& getSectionsToRun() const CATCH_OVERRIDE { return m_data.sectionsToRun; }
+
+        int abortAfter() const { return m_data.abortAfter; }
+
+        TestSpec const& testSpec() const { return m_testSpec; }
+
+        bool showHelp() const { return m_data.showHelp; }
+        bool showInvisibles() const { return m_data.showInvisibles; }
+
+        // IConfig interface
+        virtual bool allowThrows() const        { return !m_data.noThrow; }
+        virtual std::ostream& stream() const    { return m_stream->stream(); }
+        virtual std::string name() const        { return m_data.name.empty() ? m_data.processName : m_data.name; }
+        virtual bool includeSuccessfulResults() const   { return m_data.showSuccessfulTests; }
+        virtual bool warnAboutMissingAssertions() const { return m_data.warnings & WarnAbout::NoAssertions; }
+        virtual ShowDurations::OrNot showDurations() const { return m_data.showDurations; }
+        virtual RunTests::InWhatOrder runOrder() const  { return m_data.runOrder; }
+        virtual unsigned int rngSeed() const    { return m_data.rngSeed; }
+        virtual UseColour::YesOrNo useColour() const { return m_data.useColour; }
+
+    private:
+
+        IStream const* openStream() {
+            if( m_data.outputFilename.empty() )
+                return new CoutStream();
+            else if( m_data.outputFilename[0] == '%' ) {
+                if( m_data.outputFilename == "%debug" )
+                    return new DebugOutStream();
+                else
+                    throw std::domain_error( "Unrecognised stream: " + m_data.outputFilename );
+            }
+            else
+                return new FileStream( m_data.outputFilename );
+        }
+        ConfigData m_data;
+
+        CATCH_AUTO_PTR( IStream const ) m_stream;
+        TestSpec m_testSpec;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_clara.h
+#define TWOBLUECUBES_CATCH_CLARA_H_INCLUDED
+
+// Use Catch's value for console width (store Clara's off to the side, if present)
+#ifdef CLARA_CONFIG_CONSOLE_WIDTH
+#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CLARA_CONFIG_CONSOLE_WIDTH
+#undef CLARA_CONFIG_CONSOLE_WIDTH
+#endif
+#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
+
+// Declare Clara inside the Catch namespace
+#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch {
+// #included from: ../external/clara.h
+
+// Version 0.0.2.4
+
+// Only use header guard if we are not using an outer namespace
+#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE)
+
+#ifndef STITCH_CLARA_OPEN_NAMESPACE
+#define TWOBLUECUBES_CLARA_H_INCLUDED
+#define STITCH_CLARA_OPEN_NAMESPACE
+#define STITCH_CLARA_CLOSE_NAMESPACE
+#else
+#define STITCH_CLARA_CLOSE_NAMESPACE }
+#endif
+
+#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE
+
+// ----------- #included from tbc_text_format.h -----------
+
+// Only use header guard if we are not using an outer namespace
+#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE)
+#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+#define TBC_TEXT_FORMAT_H_INCLUDED
+#endif
+
+#include <string>
+#include <vector>
+#include <sstream>
+#include <algorithm>
+
+// Use optional outer namespace
+#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
+#endif
+
+namespace Tbc {
+
+#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
+    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+    struct TextAttributes {
+        TextAttributes()
+        :   initialIndent( std::string::npos ),
+            indent( 0 ),
+            width( consoleWidth-1 ),
+            tabChar( '\t' )
+        {}
+
+        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
+        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
+        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
+        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
+
+        std::size_t initialIndent;  // indent of first line, or npos
+        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
+        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
+        char tabChar;               // If this char is seen the indent is changed to current pos
+    };
+
+    class Text {
+    public:
+        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
+        : attr( _attr )
+        {
+            std::string wrappableChars = " [({.,/|\\-";
+            std::size_t indent = _attr.initialIndent != std::string::npos
+                ? _attr.initialIndent
+                : _attr.indent;
+            std::string remainder = _str;
+
+            while( !remainder.empty() ) {
+                if( lines.size() >= 1000 ) {
+                    lines.push_back( "... message truncated due to excessive size" );
+                    return;
+                }
+                std::size_t tabPos = std::string::npos;
+                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
+                std::size_t pos = remainder.find_first_of( '\n' );
+                if( pos <= width ) {
+                    width = pos;
+                }
+                pos = remainder.find_last_of( _attr.tabChar, width );
+                if( pos != std::string::npos ) {
+                    tabPos = pos;
+                    if( remainder[width] == '\n' )
+                        width--;
+                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
+                }
+
+                if( width == remainder.size() ) {
+                    spliceLine( indent, remainder, width );
+                }
+                else if( remainder[width] == '\n' ) {
+                    spliceLine( indent, remainder, width );
+                    if( width <= 1 || remainder.size() != 1 )
+                        remainder = remainder.substr( 1 );
+                    indent = _attr.indent;
+                }
+                else {
+                    pos = remainder.find_last_of( wrappableChars, width );
+                    if( pos != std::string::npos && pos > 0 ) {
+                        spliceLine( indent, remainder, pos );
+                        if( remainder[0] == ' ' )
+                            remainder = remainder.substr( 1 );
+                    }
+                    else {
+                        spliceLine( indent, remainder, width-1 );
+                        lines.back() += "-";
+                    }
+                    if( lines.size() == 1 )
+                        indent = _attr.indent;
+                    if( tabPos != std::string::npos )
+                        indent += tabPos;
+                }
+            }
+        }
+
+        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
+            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
+            _remainder = _remainder.substr( _pos );
+        }
+
+        typedef std::vector<std::string>::const_iterator const_iterator;
+
+        const_iterator begin() const { return lines.begin(); }
+        const_iterator end() const { return lines.end(); }
+        std::string const& last() const { return lines.back(); }
+        std::size_t size() const { return lines.size(); }
+        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << *this;
+            return oss.str();
+        }
+
+        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
+            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
+                it != itEnd; ++it ) {
+                if( it != _text.begin() )
+                    _stream << "\n";
+                _stream << *it;
+            }
+            return _stream;
+        }
+
+    private:
+        std::string str;
+        TextAttributes attr;
+        std::vector<std::string> lines;
+    };
+
+} // end namespace Tbc
+
+#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+} // end outer namespace
+#endif
+
+#endif // TBC_TEXT_FORMAT_H_INCLUDED
+
+// ----------- end of #include from tbc_text_format.h -----------
+// ........... back in clara.h
+
+#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE
+
+// ----------- #included from clara_compilers.h -----------
+
+#ifndef TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+#define TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+
+// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
+// The following features are defined:
+//
+// CLARA_CONFIG_CPP11_NULLPTR : is nullptr supported?
+// CLARA_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
+// CLARA_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
+// CLARA_CONFIG_CPP11_OVERRIDE : is override supported?
+// CLARA_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
+
+// CLARA_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
+
+// CLARA_CONFIG_VARIADIC_MACROS : are variadic macros supported?
+
+// In general each macro has a _NO_<feature name> form
+// (e.g. CLARA_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
+// Many features, at point of detection, define an _INTERNAL_ macro, so they
+// can be combined, en-mass, with the _NO_ forms later.
+
+// All the C++11 features can be disabled with CLARA_CONFIG_NO_CPP11
+
+#ifdef __clang__
+
+#if __has_feature(cxx_nullptr)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+#if __has_feature(cxx_noexcept)
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#endif
+
+#endif // __clang__
+
+////////////////////////////////////////////////////////////////////////////////
+// GCC
+#ifdef __GNUC__
+
+#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+// - otherwise more recent versions define __cplusplus >= 201103L
+// and will get picked up below
+
+#endif // __GNUC__
+
+////////////////////////////////////////////////////////////////////////////////
+// Visual C++
+#ifdef _MSC_VER
+
+#if (_MSC_VER >= 1600)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#endif
+
+#endif // _MSC_VER
+
+////////////////////////////////////////////////////////////////////////////////
+// C++ language feature support
+
+// catch all support for C++11
+#if defined(__cplusplus) && __cplusplus >= 201103L
+
+#define CLARA_CPP11_OR_GREATER
+
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+#ifndef CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#endif
+
+#ifndef CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#endif
+
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE)
+#define CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE
+#endif
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
+#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#endif // __cplusplus >= 201103L
+
+// Now set the actual defines based on the above + anything the user has configured
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NO_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_NULLPTR
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_NOEXCEPT
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_GENERATED_METHODS
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_OVERRIDE) && !defined(CLARA_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_OVERRIDE
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_UNIQUE_PTR) && !defined(CLARA_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+// noexcept support:
+#if defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_NOEXCEPT)
+#define CLARA_NOEXCEPT noexcept
+#  define CLARA_NOEXCEPT_IS(x) noexcept(x)
+#else
+#define CLARA_NOEXCEPT throw()
+#  define CLARA_NOEXCEPT_IS(x)
+#endif
+
+// nullptr support
+#ifdef CLARA_CONFIG_CPP11_NULLPTR
+#define CLARA_NULL nullptr
+#else
+#define CLARA_NULL NULL
+#endif
+
+// override support
+#ifdef CLARA_CONFIG_CPP11_OVERRIDE
+#define CLARA_OVERRIDE override
+#else
+#define CLARA_OVERRIDE
+#endif
+
+// unique_ptr support
+#ifdef CLARA_CONFIG_CPP11_UNIQUE_PTR
+#   define CLARA_AUTO_PTR( T ) std::unique_ptr<T>
+#else
+#   define CLARA_AUTO_PTR( T ) std::auto_ptr<T>
+#endif
+
+#endif // TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+
+// ----------- end of #include from clara_compilers.h -----------
+// ........... back in clara.h
+
+#include <map>
+#include <stdexcept>
+#include <memory>
+
+#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
+#define CLARA_PLATFORM_WINDOWS
+#endif
+
+// Use optional outer namespace
+#ifdef STITCH_CLARA_OPEN_NAMESPACE
+STITCH_CLARA_OPEN_NAMESPACE
+#endif
+
+namespace Clara {
+
+    struct UnpositionalTag {};
+
+    extern UnpositionalTag _;
+
+#ifdef CLARA_CONFIG_MAIN
+    UnpositionalTag _;
+#endif
+
+    namespace Detail {
+
+#ifdef CLARA_CONSOLE_WIDTH
+    const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+        using namespace Tbc;
+
+        inline bool startsWith( std::string const& str, std::string const& prefix ) {
+            return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix;
+        }
+
+        template<typename T> struct RemoveConstRef{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T&>{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T const&>{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T const>{ typedef T type; };
+
+        template<typename T>    struct IsBool       { static const bool value = false; };
+        template<>              struct IsBool<bool> { static const bool value = true; };
+
+        template<typename T>
+        void convertInto( std::string const& _source, T& _dest ) {
+            std::stringstream ss;
+            ss << _source;
+            ss >> _dest;
+            if( ss.fail() )
+                throw std::runtime_error( "Unable to convert " + _source + " to destination type" );
+        }
+        inline void convertInto( std::string const& _source, std::string& _dest ) {
+            _dest = _source;
+        }
+        char toLowerCh(char c) {
+            return static_cast<char>( ::tolower( c ) );
+        }
+        inline void convertInto( std::string const& _source, bool& _dest ) {
+            std::string sourceLC = _source;
+            std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), toLowerCh );
+            if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" )
+                _dest = true;
+            else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" )
+                _dest = false;
+            else
+                throw std::runtime_error( "Expected a boolean value but did not recognise:\n  '" + _source + "'" );
+        }
+
+        template<typename ConfigT>
+        struct IArgFunction {
+            virtual ~IArgFunction() {}
+#ifdef CLARA_CONFIG_CPP11_GENERATED_METHODS
+            IArgFunction()                      = default;
+            IArgFunction( IArgFunction const& ) = default;
+#endif
+            virtual void set( ConfigT& config, std::string const& value ) const = 0;
+            virtual bool takesArg() const = 0;
+            virtual IArgFunction* clone() const = 0;
+        };
+
+        template<typename ConfigT>
+        class BoundArgFunction {
+        public:
+            BoundArgFunction() : functionObj( CLARA_NULL ) {}
+            BoundArgFunction( IArgFunction<ConfigT>* _functionObj ) : functionObj( _functionObj ) {}
+            BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : CLARA_NULL ) {}
+            BoundArgFunction& operator = ( BoundArgFunction const& other ) {
+                IArgFunction<ConfigT>* newFunctionObj = other.functionObj ? other.functionObj->clone() : CLARA_NULL;
+                delete functionObj;
+                functionObj = newFunctionObj;
+                return *this;
+            }
+            ~BoundArgFunction() { delete functionObj; }
+
+            void set( ConfigT& config, std::string const& value ) const {
+                functionObj->set( config, value );
+            }
+            bool takesArg() const { return functionObj->takesArg(); }
+
+            bool isSet() const {
+                return functionObj != CLARA_NULL;
+            }
+        private:
+            IArgFunction<ConfigT>* functionObj;
+        };
+
+        template<typename C>
+        struct NullBinder : IArgFunction<C>{
+            virtual void set( C&, std::string const& ) const {}
+            virtual bool takesArg() const { return true; }
+            virtual IArgFunction<C>* clone() const { return new NullBinder( *this ); }
+        };
+
+        template<typename C, typename M>
+        struct BoundDataMember : IArgFunction<C>{
+            BoundDataMember( M C::* _member ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                convertInto( stringValue, p.*member );
+            }
+            virtual bool takesArg() const { return !IsBool<M>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundDataMember( *this ); }
+            M C::* member;
+        };
+        template<typename C, typename M>
+        struct BoundUnaryMethod : IArgFunction<C>{
+            BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                typename RemoveConstRef<M>::type value;
+                convertInto( stringValue, value );
+                (p.*member)( value );
+            }
+            virtual bool takesArg() const { return !IsBool<M>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundUnaryMethod( *this ); }
+            void (C::*member)( M );
+        };
+        template<typename C>
+        struct BoundNullaryMethod : IArgFunction<C>{
+            BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                bool value;
+                convertInto( stringValue, value );
+                if( value )
+                    (p.*member)();
+            }
+            virtual bool takesArg() const { return false; }
+            virtual IArgFunction<C>* clone() const { return new BoundNullaryMethod( *this ); }
+            void (C::*member)();
+        };
+
+        template<typename C>
+        struct BoundUnaryFunction : IArgFunction<C>{
+            BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {}
+            virtual void set( C& obj, std::string const& stringValue ) const {
+                bool value;
+                convertInto( stringValue, value );
+                if( value )
+                    function( obj );
+            }
+            virtual bool takesArg() const { return false; }
+            virtual IArgFunction<C>* clone() const { return new BoundUnaryFunction( *this ); }
+            void (*function)( C& );
+        };
+
+        template<typename C, typename T>
+        struct BoundBinaryFunction : IArgFunction<C>{
+            BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {}
+            virtual void set( C& obj, std::string const& stringValue ) const {
+                typename RemoveConstRef<T>::type value;
+                convertInto( stringValue, value );
+                function( obj, value );
+            }
+            virtual bool takesArg() const { return !IsBool<T>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }
+            void (*function)( C&, T );
+        };
+
+    } // namespace Detail
+
+    inline std::vector<std::string> argsToVector( int argc, char const* const* const argv ) {
+        std::vector<std::string> args( static_cast<std::size_t>( argc ) );
+        for( std::size_t i = 0; i < static_cast<std::size_t>( argc ); ++i )
+            args[i] = argv[i];
+
+        return args;
+    }
+
+    class Parser {
+        enum Mode { None, MaybeShortOpt, SlashOpt, ShortOpt, LongOpt, Positional };
+        Mode mode;
+        std::size_t from;
+        bool inQuotes;
+    public:
+
+        struct Token {
+            enum Type { Positional, ShortOpt, LongOpt };
+            Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {}
+            Type type;
+            std::string data;
+        };
+
+        Parser() : mode( None ), from( 0 ), inQuotes( false ){}
+
+        void parseIntoTokens( std::vector<std::string> const& args, std::vector<Token>& tokens ) {
+            const std::string doubleDash = "--";
+            for( std::size_t i = 1; i < args.size() && args[i] != doubleDash; ++i )
+                parseIntoTokens( args[i], tokens);
+        }
+
+        void parseIntoTokens( std::string const& arg, std::vector<Token>& tokens ) {
+            for( std::size_t i = 0; i <= arg.size(); ++i ) {
+                char c = arg[i];
+                if( c == '"' )
+                    inQuotes = !inQuotes;
+                mode = handleMode( i, c, arg, tokens );
+            }
+        }
+        Mode handleMode( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
+            switch( mode ) {
+                case None: return handleNone( i, c );
+                case MaybeShortOpt: return handleMaybeShortOpt( i, c );
+                case ShortOpt:
+                case LongOpt:
+                case SlashOpt: return handleOpt( i, c, arg, tokens );
+                case Positional: return handlePositional( i, c, arg, tokens );
+                default: throw std::logic_error( "Unknown mode" );
+            }
+        }
+
+        Mode handleNone( std::size_t i, char c ) {
+            if( inQuotes ) {
+                from = i;
+                return Positional;
+            }
+            switch( c ) {
+                case '-': return MaybeShortOpt;
+#ifdef CLARA_PLATFORM_WINDOWS
+                case '/': from = i+1; return SlashOpt;
+#endif
+                default: from = i; return Positional;
+            }
+        }
+        Mode handleMaybeShortOpt( std::size_t i, char c ) {
+            switch( c ) {
+                case '-': from = i+1; return LongOpt;
+                default: from = i; return ShortOpt;
+            }
+        }
+        Mode handleOpt( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
+            if( std::string( ":=\0", 3 ).find( c ) == std::string::npos )
+                return mode;
+
+            std::string optName = arg.substr( from, i-from );
+            if( mode == ShortOpt )
+                for( std::size_t j = 0; j < optName.size(); ++j )
+                    tokens.push_back( Token( Token::ShortOpt, optName.substr( j, 1 ) ) );
+            else if( mode == SlashOpt && optName.size() == 1 )
+                tokens.push_back( Token( Token::ShortOpt, optName ) );
+            else
+                tokens.push_back( Token( Token::LongOpt, optName ) );
+            return None;
+        }
+        Mode handlePositional( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
+            if( inQuotes || std::string( "\0", 1 ).find( c ) == std::string::npos )
+                return mode;
+
+            std::string data = arg.substr( from, i-from );
+            tokens.push_back( Token( Token::Positional, data ) );
+            return None;
+        }
+    };
+
+    template<typename ConfigT>
+    struct CommonArgProperties {
+        CommonArgProperties() {}
+        CommonArgProperties( Detail::BoundArgFunction<ConfigT> const& _boundField ) : boundField( _boundField ) {}
+
+        Detail::BoundArgFunction<ConfigT> boundField;
+        std::string description;
+        std::string detail;
+        std::string placeholder; // Only value if boundField takes an arg
+
+        bool takesArg() const {
+            return !placeholder.empty();
+        }
+        void validate() const {
+            if( !boundField.isSet() )
+                throw std::logic_error( "option not bound" );
+        }
+    };
+    struct OptionArgProperties {
+        std::vector<std::string> shortNames;
+        std::string longName;
+
+        bool hasShortName( std::string const& shortName ) const {
+            return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end();
+        }
+        bool hasLongName( std::string const& _longName ) const {
+            return _longName == longName;
+        }
+    };
+    struct PositionalArgProperties {
+        PositionalArgProperties() : position( -1 ) {}
+        int position; // -1 means non-positional (floating)
+
+        bool isFixedPositional() const {
+            return position != -1;
+        }
+    };
+
+    template<typename ConfigT>
+    class CommandLine {
+
+        struct Arg : CommonArgProperties<ConfigT>, OptionArgProperties, PositionalArgProperties {
+            Arg() {}
+            Arg( Detail::BoundArgFunction<ConfigT> const& _boundField ) : CommonArgProperties<ConfigT>( _boundField ) {}
+
+            using CommonArgProperties<ConfigT>::placeholder; // !TBD
+
+            std::string dbgName() const {
+                if( !longName.empty() )
+                    return "--" + longName;
+                if( !shortNames.empty() )
+                    return "-" + shortNames[0];
+                return "positional args";
+            }
+            std::string commands() const {
+                std::ostringstream oss;
+                bool first = true;
+                std::vector<std::string>::const_iterator it = shortNames.begin(), itEnd = shortNames.end();
+                for(; it != itEnd; ++it ) {
+                    if( first )
+                        first = false;
+                    else
+                        oss << ", ";
+                    oss << "-" << *it;
+                }
+                if( !longName.empty() ) {
+                    if( !first )
+                        oss << ", ";
+                    oss << "--" << longName;
+                }
+                if( !placeholder.empty() )
+                    oss << " <" << placeholder << ">";
+                return oss.str();
+            }
+        };
+
+        typedef CLARA_AUTO_PTR( Arg ) ArgAutoPtr;
+
+        friend void addOptName( Arg& arg, std::string const& optName )
+        {
+            if( optName.empty() )
+                return;
+            if( Detail::startsWith( optName, "--" ) ) {
+                if( !arg.longName.empty() )
+                    throw std::logic_error( "Only one long opt may be specified. '"
+                        + arg.longName
+                        + "' already specified, now attempting to add '"
+                        + optName + "'" );
+                arg.longName = optName.substr( 2 );
+            }
+            else if( Detail::startsWith( optName, "-" ) )
+                arg.shortNames.push_back( optName.substr( 1 ) );
+            else
+                throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" );
+        }
+        friend void setPositionalArg( Arg& arg, int position )
+        {
+            arg.position = position;
+        }
+
+        class ArgBuilder {
+        public:
+            ArgBuilder( Arg* arg ) : m_arg( arg ) {}
+
+            // Bind a non-boolean data member (requires placeholder string)
+            template<typename C, typename M>
+            void bind( M C::* field, std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundDataMember<C,M>( field );
+                m_arg->placeholder = placeholder;
+            }
+            // Bind a boolean data member (no placeholder required)
+            template<typename C>
+            void bind( bool C::* field ) {
+                m_arg->boundField = new Detail::BoundDataMember<C,bool>( field );
+            }
+
+            // Bind a method taking a single, non-boolean argument (requires a placeholder string)
+            template<typename C, typename M>
+            void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundUnaryMethod<C,M>( unaryMethod );
+                m_arg->placeholder = placeholder;
+            }
+
+            // Bind a method taking a single, boolean argument (no placeholder string required)
+            template<typename C>
+            void bind( void (C::* unaryMethod)( bool ) ) {
+                m_arg->boundField = new Detail::BoundUnaryMethod<C,bool>( unaryMethod );
+            }
+
+            // Bind a method that takes no arguments (will be called if opt is present)
+            template<typename C>
+            void bind( void (C::* nullaryMethod)() ) {
+                m_arg->boundField = new Detail::BoundNullaryMethod<C>( nullaryMethod );
+            }
+
+            // Bind a free function taking a single argument - the object to operate on (no placeholder string required)
+            template<typename C>
+            void bind( void (* unaryFunction)( C& ) ) {
+                m_arg->boundField = new Detail::BoundUnaryFunction<C>( unaryFunction );
+            }
+
+            // Bind a free function taking a single argument - the object to operate on (requires a placeholder string)
+            template<typename C, typename T>
+            void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundBinaryFunction<C, T>( binaryFunction );
+                m_arg->placeholder = placeholder;
+            }
+
+            ArgBuilder& describe( std::string const& description ) {
+                m_arg->description = description;
+                return *this;
+            }
+            ArgBuilder& detail( std::string const& detail ) {
+                m_arg->detail = detail;
+                return *this;
+            }
+
+        protected:
+            Arg* m_arg;
+        };
+
+        class OptBuilder : public ArgBuilder {
+        public:
+            OptBuilder( Arg* arg ) : ArgBuilder( arg ) {}
+            OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {}
+
+            OptBuilder& operator[]( std::string const& optName ) {
+                addOptName( *ArgBuilder::m_arg, optName );
+                return *this;
+            }
+        };
+
+    public:
+
+        CommandLine()
+        :   m_boundProcessName( new Detail::NullBinder<ConfigT>() ),
+            m_highestSpecifiedArgPosition( 0 ),
+            m_throwOnUnrecognisedTokens( false )
+        {}
+        CommandLine( CommandLine const& other )
+        :   m_boundProcessName( other.m_boundProcessName ),
+            m_options ( other.m_options ),
+            m_positionalArgs( other.m_positionalArgs ),
+            m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ),
+            m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens )
+        {
+            if( other.m_floatingArg.get() )
+                m_floatingArg.reset( new Arg( *other.m_floatingArg ) );
+        }
+
+        CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) {
+            m_throwOnUnrecognisedTokens = shouldThrow;
+            return *this;
+        }
+
+        OptBuilder operator[]( std::string const& optName ) {
+            m_options.push_back( Arg() );
+            addOptName( m_options.back(), optName );
+            OptBuilder builder( &m_options.back() );
+            return builder;
+        }
+
+        ArgBuilder operator[]( int position ) {
+            m_positionalArgs.insert( std::make_pair( position, Arg() ) );
+            if( position > m_highestSpecifiedArgPosition )
+                m_highestSpecifiedArgPosition = position;
+            setPositionalArg( m_positionalArgs[position], position );
+            ArgBuilder builder( &m_positionalArgs[position] );
+            return builder;
+        }
+
+        // Invoke this with the _ instance
+        ArgBuilder operator[]( UnpositionalTag ) {
+            if( m_floatingArg.get() )
+                throw std::logic_error( "Only one unpositional argument can be added" );
+            m_floatingArg.reset( new Arg() );
+            ArgBuilder builder( m_floatingArg.get() );
+            return builder;
+        }
+
+        template<typename C, typename M>
+        void bindProcessName( M C::* field ) {
+            m_boundProcessName = new Detail::BoundDataMember<C,M>( field );
+        }
+        template<typename C, typename M>
+        void bindProcessName( void (C::*_unaryMethod)( M ) ) {
+            m_boundProcessName = new Detail::BoundUnaryMethod<C,M>( _unaryMethod );
+        }
+
+        void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const {
+            typename std::vector<Arg>::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it;
+            std::size_t maxWidth = 0;
+            for( it = itBegin; it != itEnd; ++it )
+                maxWidth = (std::max)( maxWidth, it->commands().size() );
+
+            for( it = itBegin; it != itEnd; ++it ) {
+                Detail::Text usage( it->commands(), Detail::TextAttributes()
+                                                        .setWidth( maxWidth+indent )
+                                                        .setIndent( indent ) );
+                Detail::Text desc( it->description, Detail::TextAttributes()
+                                                        .setWidth( width - maxWidth - 3 ) );
+
+                for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) {
+                    std::string usageCol = i < usage.size() ? usage[i] : "";
+                    os << usageCol;
+
+                    if( i < desc.size() && !desc[i].empty() )
+                        os  << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' )
+                            << desc[i];
+                    os << "\n";
+                }
+            }
+        }
+        std::string optUsage() const {
+            std::ostringstream oss;
+            optUsage( oss );
+            return oss.str();
+        }
+
+        void argSynopsis( std::ostream& os ) const {
+            for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) {
+                if( i > 1 )
+                    os << " ";
+                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( i );
+                if( it != m_positionalArgs.end() )
+                    os << "<" << it->second.placeholder << ">";
+                else if( m_floatingArg.get() )
+                    os << "<" << m_floatingArg->placeholder << ">";
+                else
+                    throw std::logic_error( "non consecutive positional arguments with no floating args" );
+            }
+            // !TBD No indication of mandatory args
+            if( m_floatingArg.get() ) {
+                if( m_highestSpecifiedArgPosition > 1 )
+                    os << " ";
+                os << "[<" << m_floatingArg->placeholder << "> ...]";
+            }
+        }
+        std::string argSynopsis() const {
+            std::ostringstream oss;
+            argSynopsis( oss );
+            return oss.str();
+        }
+
+        void usage( std::ostream& os, std::string const& procName ) const {
+            validate();
+            os << "usage:\n  " << procName << " ";
+            argSynopsis( os );
+            if( !m_options.empty() ) {
+                os << " [options]\n\nwhere options are: \n";
+                optUsage( os, 2 );
+            }
+            os << "\n";
+        }
+        std::string usage( std::string const& procName ) const {
+            std::ostringstream oss;
+            usage( oss, procName );
+            return oss.str();
+        }
+
+        ConfigT parse( std::vector<std::string> const& args ) const {
+            ConfigT config;
+            parseInto( args, config );
+            return config;
+        }
+
+        std::vector<Parser::Token> parseInto( std::vector<std::string> const& args, ConfigT& config ) const {
+            std::string processName = args[0];
+            std::size_t lastSlash = processName.find_last_of( "/\\" );
+            if( lastSlash != std::string::npos )
+                processName = processName.substr( lastSlash+1 );
+            m_boundProcessName.set( config, processName );
+            std::vector<Parser::Token> tokens;
+            Parser parser;
+            parser.parseIntoTokens( args, tokens );
+            return populate( tokens, config );
+        }
+
+        std::vector<Parser::Token> populate( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            validate();
+            std::vector<Parser::Token> unusedTokens = populateOptions( tokens, config );
+            unusedTokens = populateFixedArgs( unusedTokens, config );
+            unusedTokens = populateFloatingArgs( unusedTokens, config );
+            return unusedTokens;
+        }
+
+        std::vector<Parser::Token> populateOptions( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            std::vector<Parser::Token> unusedTokens;
+            std::vector<std::string> errors;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                typename std::vector<Arg>::const_iterator it = m_options.begin(), itEnd = m_options.end();
+                for(; it != itEnd; ++it ) {
+                    Arg const& arg = *it;
+
+                    try {
+                        if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) ||
+                            ( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) {
+                            if( arg.takesArg() ) {
+                                if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional )
+                                    errors.push_back( "Expected argument to option: " + token.data );
+                                else
+                                    arg.boundField.set( config, tokens[++i].data );
+                            }
+                            else {
+                                arg.boundField.set( config, "true" );
+                            }
+                            break;
+                        }
+                    }
+                    catch( std::exception& ex ) {
+                        errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" );
+                    }
+                }
+                if( it == itEnd ) {
+                    if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens )
+                        unusedTokens.push_back( token );
+                    else if( errors.empty() && m_throwOnUnrecognisedTokens )
+                        errors.push_back( "unrecognised option: " + token.data );
+                }
+            }
+            if( !errors.empty() ) {
+                std::ostringstream oss;
+                for( std::vector<std::string>::const_iterator it = errors.begin(), itEnd = errors.end();
+                        it != itEnd;
+                        ++it ) {
+                    if( it != errors.begin() )
+                        oss << "\n";
+                    oss << *it;
+                }
+                throw std::runtime_error( oss.str() );
+            }
+            return unusedTokens;
+        }
+        std::vector<Parser::Token> populateFixedArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            std::vector<Parser::Token> unusedTokens;
+            int position = 1;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( position );
+                if( it != m_positionalArgs.end() )
+                    it->second.boundField.set( config, token.data );
+                else
+                    unusedTokens.push_back( token );
+                if( token.type == Parser::Token::Positional )
+                    position++;
+            }
+            return unusedTokens;
+        }
+        std::vector<Parser::Token> populateFloatingArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            if( !m_floatingArg.get() )
+                return tokens;
+            std::vector<Parser::Token> unusedTokens;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                if( token.type == Parser::Token::Positional )
+                    m_floatingArg->boundField.set( config, token.data );
+                else
+                    unusedTokens.push_back( token );
+            }
+            return unusedTokens;
+        }
+
+        void validate() const
+        {
+            if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() )
+                throw std::logic_error( "No options or arguments specified" );
+
+            for( typename std::vector<Arg>::const_iterator  it = m_options.begin(),
+                                                            itEnd = m_options.end();
+                    it != itEnd; ++it )
+                it->validate();
+        }
+
+    private:
+        Detail::BoundArgFunction<ConfigT> m_boundProcessName;
+        std::vector<Arg> m_options;
+        std::map<int, Arg> m_positionalArgs;
+        ArgAutoPtr m_floatingArg;
+        int m_highestSpecifiedArgPosition;
+        bool m_throwOnUnrecognisedTokens;
+    };
+
+} // end namespace Clara
+
+STITCH_CLARA_CLOSE_NAMESPACE
+#undef STITCH_CLARA_OPEN_NAMESPACE
+#undef STITCH_CLARA_CLOSE_NAMESPACE
+
+#endif // TWOBLUECUBES_CLARA_H_INCLUDED
+#undef STITCH_CLARA_OPEN_NAMESPACE
+
+// Restore Clara's value for console width, if present
+#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#endif
+
+#include <fstream>
+
+namespace Catch {
+
+    inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; }
+    inline void abortAfterX( ConfigData& config, int x ) {
+        if( x < 1 )
+            throw std::runtime_error( "Value after -x or --abortAfter must be greater than zero" );
+        config.abortAfter = x;
+    }
+    inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); }
+    inline void addSectionToRun( ConfigData& config, std::string const& sectionName ) { config.sectionsToRun.push_back( sectionName ); }
+    inline void addReporterName( ConfigData& config, std::string const& _reporterName ) { config.reporterNames.push_back( _reporterName ); }
+
+    inline void addWarning( ConfigData& config, std::string const& _warning ) {
+        if( _warning == "NoAssertions" )
+            config.warnings = static_cast<WarnAbout::What>( config.warnings | WarnAbout::NoAssertions );
+        else
+            throw std::runtime_error( "Unrecognised warning: '" + _warning + '\'' );
+    }
+    inline void setOrder( ConfigData& config, std::string const& order ) {
+        if( startsWith( "declared", order ) )
+            config.runOrder = RunTests::InDeclarationOrder;
+        else if( startsWith( "lexical", order ) )
+            config.runOrder = RunTests::InLexicographicalOrder;
+        else if( startsWith( "random", order ) )
+            config.runOrder = RunTests::InRandomOrder;
+        else
+            throw std::runtime_error( "Unrecognised ordering: '" + order + '\'' );
+    }
+    inline void setRngSeed( ConfigData& config, std::string const& seed ) {
+        if( seed == "time" ) {
+            config.rngSeed = static_cast<unsigned int>( std::time(0) );
+        }
+        else {
+            std::stringstream ss;
+            ss << seed;
+            ss >> config.rngSeed;
+            if( ss.fail() )
+                throw std::runtime_error( "Argment to --rng-seed should be the word 'time' or a number" );
+        }
+    }
+    inline void setVerbosity( ConfigData& config, int level ) {
+        // !TBD: accept strings?
+        config.verbosity = static_cast<Verbosity::Level>( level );
+    }
+    inline void setShowDurations( ConfigData& config, bool _showDurations ) {
+        config.showDurations = _showDurations
+            ? ShowDurations::Always
+            : ShowDurations::Never;
+    }
+    inline void setUseColour( ConfigData& config, std::string const& value ) {
+        std::string mode = toLower( value );
+
+        if( mode == "yes" )
+            config.useColour = UseColour::Yes;
+        else if( mode == "no" )
+            config.useColour = UseColour::No;
+        else if( mode == "auto" )
+            config.useColour = UseColour::Auto;
+        else
+            throw std::runtime_error( "colour mode must be one of: auto, yes or no" );
+    }
+    inline void forceColour( ConfigData& config ) {
+        config.useColour = UseColour::Yes;
+    }
+    inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) {
+        std::ifstream f( _filename.c_str() );
+        if( !f.is_open() )
+            throw std::domain_error( "Unable to load input file: " + _filename );
+
+        std::string line;
+        while( std::getline( f, line ) ) {
+            line = trim(line);
+            if( !line.empty() && !startsWith( line, '#' ) ) {
+                if( !startsWith( line, '"' ) )
+                    line = '"' + line + '"';
+                addTestOrTags( config, line + ',' );
+            }
+        }
+    }
+
+    inline Clara::CommandLine<ConfigData> makeCommandLineParser() {
+
+        using namespace Clara;
+        CommandLine<ConfigData> cli;
+
+        cli.bindProcessName( &ConfigData::processName );
+
+        cli["-?"]["-h"]["--help"]
+            .describe( "display usage information" )
+            .bind( &ConfigData::showHelp );
+
+        cli["-l"]["--list-tests"]
+            .describe( "list all/matching test cases" )
+            .bind( &ConfigData::listTests );
+
+        cli["-t"]["--list-tags"]
+            .describe( "list all/matching tags" )
+            .bind( &ConfigData::listTags );
+
+        cli["-s"]["--success"]
+            .describe( "include successful tests in output" )
+            .bind( &ConfigData::showSuccessfulTests );
+
+        cli["-b"]["--break"]
+            .describe( "break into debugger on failure" )
+            .bind( &ConfigData::shouldDebugBreak );
+
+        cli["-e"]["--nothrow"]
+            .describe( "skip exception tests" )
+            .bind( &ConfigData::noThrow );
+
+        cli["-i"]["--invisibles"]
+            .describe( "show invisibles (tabs, newlines)" )
+            .bind( &ConfigData::showInvisibles );
+
+        cli["-o"]["--out"]
+            .describe( "output filename" )
+            .bind( &ConfigData::outputFilename, "filename" );
+
+        cli["-r"]["--reporter"]
+//            .placeholder( "name[:filename]" )
+            .describe( "reporter to use (defaults to console)" )
+            .bind( &addReporterName, "name" );
+
+        cli["-n"]["--name"]
+            .describe( "suite name" )
+            .bind( &ConfigData::name, "name" );
+
+        cli["-a"]["--abort"]
+            .describe( "abort at first failure" )
+            .bind( &abortAfterFirst );
+
+        cli["-x"]["--abortx"]
+            .describe( "abort after x failures" )
+            .bind( &abortAfterX, "no. failures" );
+
+        cli["-w"]["--warn"]
+            .describe( "enable warnings" )
+            .bind( &addWarning, "warning name" );
+
+// - needs updating if reinstated
+//        cli.into( &setVerbosity )
+//            .describe( "level of verbosity (0=no output)" )
+//            .shortOpt( "v")
+//            .longOpt( "verbosity" )
+//            .placeholder( "level" );
+
+        cli[_]
+            .describe( "which test or tests to use" )
+            .bind( &addTestOrTags, "test name, pattern or tags" );
+
+        cli["-d"]["--durations"]
+            .describe( "show test durations" )
+            .bind( &setShowDurations, "yes|no" );
+
+        cli["-f"]["--input-file"]
+            .describe( "load test names to run from a file" )
+            .bind( &loadTestNamesFromFile, "filename" );
+
+        cli["-#"]["--filenames-as-tags"]
+            .describe( "adds a tag for the filename" )
+            .bind( &ConfigData::filenamesAsTags );
+
+        cli["-c"]["--section"]
+                .describe( "specify section to run" )
+                .bind( &addSectionToRun, "section name" );
+
+        // Less common commands which don't have a short form
+        cli["--list-test-names-only"]
+            .describe( "list all/matching test cases names only" )
+            .bind( &ConfigData::listTestNamesOnly );
+
+        cli["--list-reporters"]
+            .describe( "list all reporters" )
+            .bind( &ConfigData::listReporters );
+
+        cli["--order"]
+            .describe( "test case order (defaults to decl)" )
+            .bind( &setOrder, "decl|lex|rand" );
+
+        cli["--rng-seed"]
+            .describe( "set a specific seed for random numbers" )
+            .bind( &setRngSeed, "'time'|number" );
+
+        cli["--force-colour"]
+            .describe( "force colourised output (deprecated)" )
+            .bind( &forceColour );
+
+        cli["--use-colour"]
+            .describe( "should output be colourised" )
+            .bind( &setUseColour, "yes|no" );
+
+        return cli;
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_list.hpp
+#define TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED
+
+// #included from: catch_text.h
+#define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED
+
+#define TBC_TEXT_FORMAT_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
+
+#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Catch
+// #included from: ../external/tbc_text_format.h
+// Only use header guard if we are not using an outer namespace
+#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+#  ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#   define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#  endif
+# else
+#  define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+# endif
+#endif
+#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#include <string>
+#include <vector>
+#include <sstream>
+
+// Use optional outer namespace
+#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
+#endif
+
+namespace Tbc {
+
+#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
+    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+    struct TextAttributes {
+        TextAttributes()
+        :   initialIndent( std::string::npos ),
+            indent( 0 ),
+            width( consoleWidth-1 )
+        {}
+
+        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
+        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
+        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
+
+        std::size_t initialIndent;  // indent of first line, or npos
+        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
+        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
+    };
+
+    class Text {
+    public:
+        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
+        : attr( _attr )
+        {
+            const std::string wrappableBeforeChars = "[({<\t";
+            const std::string wrappableAfterChars = "])}>-,./|\\";
+            const std::string wrappableInsteadOfChars = " \n\r";
+            std::string indent = _attr.initialIndent != std::string::npos
+                ? std::string( _attr.initialIndent, ' ' )
+                : std::string( _attr.indent, ' ' );
+
+            typedef std::string::const_iterator iterator;
+            iterator it = _str.begin();
+            const iterator strEnd = _str.end();
+
+            while( it != strEnd ) {
+
+                if( lines.size() >= 1000 ) {
+                    lines.push_back( "... message truncated due to excessive size" );
+                    return;
+                }
+
+                std::string suffix;
+                std::size_t width = (std::min)( static_cast<size_t>( strEnd-it ), _attr.width-static_cast<size_t>( indent.size() ) );
+                iterator itEnd = it+width;
+                iterator itNext = _str.end();
+
+                iterator itNewLine = std::find( it, itEnd, '\n' );
+                if( itNewLine != itEnd )
+                    itEnd = itNewLine;
+
+                if( itEnd != strEnd  ) {
+                    bool foundWrapPoint = false;
+                    iterator findIt = itEnd;
+                    do {
+                        if( wrappableAfterChars.find( *findIt ) != std::string::npos && findIt != itEnd ) {
+                            itEnd = findIt+1;
+                            itNext = findIt+1;
+                            foundWrapPoint = true;
+                        }
+                        else if( findIt > it && wrappableBeforeChars.find( *findIt ) != std::string::npos ) {
+                            itEnd = findIt;
+                            itNext = findIt;
+                            foundWrapPoint = true;
+                        }
+                        else if( wrappableInsteadOfChars.find( *findIt ) != std::string::npos ) {
+                            itNext = findIt+1;
+                            itEnd = findIt;
+                            foundWrapPoint = true;
+                        }
+                        if( findIt == it )
+                            break;
+                        else
+                            --findIt;
+                    }
+                    while( !foundWrapPoint );
+
+                    if( !foundWrapPoint ) {
+                        // No good wrap char, so we'll break mid word and add a hyphen
+                        --itEnd;
+                        itNext = itEnd;
+                        suffix = "-";
+                    }
+                    else {
+                        while( itEnd > it && wrappableInsteadOfChars.find( *(itEnd-1) ) != std::string::npos )
+                            --itEnd;
+                    }
+                }
+                lines.push_back( indent + std::string( it, itEnd ) + suffix );
+
+                if( indent.size() != _attr.indent )
+                    indent = std::string( _attr.indent, ' ' );
+                it = itNext;
+            }
+        }
+
+        typedef std::vector<std::string>::const_iterator const_iterator;
+
+        const_iterator begin() const { return lines.begin(); }
+        const_iterator end() const { return lines.end(); }
+        std::string const& last() const { return lines.back(); }
+        std::size_t size() const { return lines.size(); }
+        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << *this;
+            return oss.str();
+        }
+
+        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
+            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
+                it != itEnd; ++it ) {
+                if( it != _text.begin() )
+                    _stream << "\n";
+                _stream << *it;
+            }
+            return _stream;
+        }
+
+    private:
+        std::string str;
+        TextAttributes attr;
+        std::vector<std::string> lines;
+    };
+
+} // end namespace Tbc
+
+#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+} // end outer namespace
+#endif
+
+#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+namespace Catch {
+    using Tbc::Text;
+    using Tbc::TextAttributes;
+}
+
+// #included from: catch_console_colour.hpp
+#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED
+
+namespace Catch {
+
+    struct Colour {
+        enum Code {
+            None = 0,
+
+            White,
+            Red,
+            Green,
+            Blue,
+            Cyan,
+            Yellow,
+            Grey,
+
+            Bright = 0x10,
+
+            BrightRed = Bright | Red,
+            BrightGreen = Bright | Green,
+            LightGrey = Bright | Grey,
+            BrightWhite = Bright | White,
+
+            // By intention
+            FileName = LightGrey,
+            Warning = Yellow,
+            ResultError = BrightRed,
+            ResultSuccess = BrightGreen,
+            ResultExpectedFailure = Warning,
+
+            Error = BrightRed,
+            Success = Green,
+
+            OriginalExpression = Cyan,
+            ReconstructedExpression = Yellow,
+
+            SecondaryText = LightGrey,
+            Headers = White
+        };
+
+        // Use constructed object for RAII guard
+        Colour( Code _colourCode );
+        Colour( Colour const& other );
+        ~Colour();
+
+        // Use static method for one-shot changes
+        static void use( Code _colourCode );
+
+    private:
+        bool m_moved;
+    };
+
+    inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; }
+
+} // end namespace Catch
+
+// #included from: catch_interfaces_reporter.h
+#define TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED
+
+#include <string>
+#include <ostream>
+#include <map>
+#include <assert.h>
+
+namespace Catch
+{
+    struct ReporterConfig {
+        explicit ReporterConfig( Ptr<IConfig const> const& _fullConfig )
+        :   m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {}
+
+        ReporterConfig( Ptr<IConfig const> const& _fullConfig, std::ostream& _stream )
+        :   m_stream( &_stream ), m_fullConfig( _fullConfig ) {}
+
+        std::ostream& stream() const    { return *m_stream; }
+        Ptr<IConfig const> fullConfig() const { return m_fullConfig; }
+
+    private:
+        std::ostream* m_stream;
+        Ptr<IConfig const> m_fullConfig;
+    };
+
+    struct ReporterPreferences {
+        ReporterPreferences()
+        : shouldRedirectStdOut( false )
+        {}
+
+        bool shouldRedirectStdOut;
+    };
+
+    template<typename T>
+    struct LazyStat : Option<T> {
+        LazyStat() : used( false ) {}
+        LazyStat& operator=( T const& _value ) {
+            Option<T>::operator=( _value );
+            used = false;
+            return *this;
+        }
+        void reset() {
+            Option<T>::reset();
+            used = false;
+        }
+        bool used;
+    };
+
+    struct TestRunInfo {
+        TestRunInfo( std::string const& _name ) : name( _name ) {}
+        std::string name;
+    };
+    struct GroupInfo {
+        GroupInfo(  std::string const& _name,
+                    std::size_t _groupIndex,
+                    std::size_t _groupsCount )
+        :   name( _name ),
+            groupIndex( _groupIndex ),
+            groupsCounts( _groupsCount )
+        {}
+
+        std::string name;
+        std::size_t groupIndex;
+        std::size_t groupsCounts;
+    };
+
+    struct AssertionStats {
+        AssertionStats( AssertionResult const& _assertionResult,
+                        std::vector<MessageInfo> const& _infoMessages,
+                        Totals const& _totals )
+        :   assertionResult( _assertionResult ),
+            infoMessages( _infoMessages ),
+            totals( _totals )
+        {
+            if( assertionResult.hasMessage() ) {
+                // Copy message into messages list.
+                // !TBD This should have been done earlier, somewhere
+                MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() );
+                builder << assertionResult.getMessage();
+                builder.m_info.message = builder.m_stream.str();
+
+                infoMessages.push_back( builder.m_info );
+            }
+        }
+        virtual ~AssertionStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        AssertionStats( AssertionStats const& )              = default;
+        AssertionStats( AssertionStats && )                  = default;
+        AssertionStats& operator = ( AssertionStats const& ) = default;
+        AssertionStats& operator = ( AssertionStats && )     = default;
+#  endif
+
+        AssertionResult assertionResult;
+        std::vector<MessageInfo> infoMessages;
+        Totals totals;
+    };
+
+    struct SectionStats {
+        SectionStats(   SectionInfo const& _sectionInfo,
+                        Counts const& _assertions,
+                        double _durationInSeconds,
+                        bool _missingAssertions )
+        :   sectionInfo( _sectionInfo ),
+            assertions( _assertions ),
+            durationInSeconds( _durationInSeconds ),
+            missingAssertions( _missingAssertions )
+        {}
+        virtual ~SectionStats();
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        SectionStats( SectionStats const& )              = default;
+        SectionStats( SectionStats && )                  = default;
+        SectionStats& operator = ( SectionStats const& ) = default;
+        SectionStats& operator = ( SectionStats && )     = default;
+#  endif
+
+        SectionInfo sectionInfo;
+        Counts assertions;
+        double durationInSeconds;
+        bool missingAssertions;
+    };
+
+    struct TestCaseStats {
+        TestCaseStats(  TestCaseInfo const& _testInfo,
+                        Totals const& _totals,
+                        std::string const& _stdOut,
+                        std::string const& _stdErr,
+                        bool _aborting )
+        : testInfo( _testInfo ),
+            totals( _totals ),
+            stdOut( _stdOut ),
+            stdErr( _stdErr ),
+            aborting( _aborting )
+        {}
+        virtual ~TestCaseStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestCaseStats( TestCaseStats const& )              = default;
+        TestCaseStats( TestCaseStats && )                  = default;
+        TestCaseStats& operator = ( TestCaseStats const& ) = default;
+        TestCaseStats& operator = ( TestCaseStats && )     = default;
+#  endif
+
+        TestCaseInfo testInfo;
+        Totals totals;
+        std::string stdOut;
+        std::string stdErr;
+        bool aborting;
+    };
+
+    struct TestGroupStats {
+        TestGroupStats( GroupInfo const& _groupInfo,
+                        Totals const& _totals,
+                        bool _aborting )
+        :   groupInfo( _groupInfo ),
+            totals( _totals ),
+            aborting( _aborting )
+        {}
+        TestGroupStats( GroupInfo const& _groupInfo )
+        :   groupInfo( _groupInfo ),
+            aborting( false )
+        {}
+        virtual ~TestGroupStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestGroupStats( TestGroupStats const& )              = default;
+        TestGroupStats( TestGroupStats && )                  = default;
+        TestGroupStats& operator = ( TestGroupStats const& ) = default;
+        TestGroupStats& operator = ( TestGroupStats && )     = default;
+#  endif
+
+        GroupInfo groupInfo;
+        Totals totals;
+        bool aborting;
+    };
+
+    struct TestRunStats {
+        TestRunStats(   TestRunInfo const& _runInfo,
+                        Totals const& _totals,
+                        bool _aborting )
+        :   runInfo( _runInfo ),
+            totals( _totals ),
+            aborting( _aborting )
+        {}
+        virtual ~TestRunStats();
+
+#  ifndef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestRunStats( TestRunStats const& _other )
+        :   runInfo( _other.runInfo ),
+            totals( _other.totals ),
+            aborting( _other.aborting )
+        {}
+#  else
+        TestRunStats( TestRunStats const& )              = default;
+        TestRunStats( TestRunStats && )                  = default;
+        TestRunStats& operator = ( TestRunStats const& ) = default;
+        TestRunStats& operator = ( TestRunStats && )     = default;
+#  endif
+
+        TestRunInfo runInfo;
+        Totals totals;
+        bool aborting;
+    };
+
+    class MultipleReporters;
+
+    struct IStreamingReporter : IShared {
+        virtual ~IStreamingReporter();
+
+        // Implementing class must also provide the following static method:
+        // static std::string getDescription();
+
+        virtual ReporterPreferences getPreferences() const = 0;
+
+        virtual void noMatchingTestCases( std::string const& spec ) = 0;
+
+        virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0;
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0;
+
+        virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0;
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0;
+
+        virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0;
+
+        // The return value indicates if the messages buffer should be cleared:
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0;
+
+        virtual void sectionEnded( SectionStats const& sectionStats ) = 0;
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0;
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0;
+        virtual void testRunEnded( TestRunStats const& testRunStats ) = 0;
+
+        virtual void skipTest( TestCaseInfo const& testInfo ) = 0;
+
+        virtual MultipleReporters* tryAsMulti() { return CATCH_NULL; }
+    };
+
+    struct IReporterFactory : IShared {
+        virtual ~IReporterFactory();
+        virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0;
+        virtual std::string getDescription() const = 0;
+    };
+
+    struct IReporterRegistry {
+        typedef std::map<std::string, Ptr<IReporterFactory> > FactoryMap;
+        typedef std::vector<Ptr<IReporterFactory> > Listeners;
+
+        virtual ~IReporterRegistry();
+        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const = 0;
+        virtual FactoryMap const& getFactories() const = 0;
+        virtual Listeners const& getListeners() const = 0;
+    };
+
+    Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter );
+
+}
+
+#include <limits>
+#include <algorithm>
+
+namespace Catch {
+
+    inline std::size_t listTests( Config const& config ) {
+
+        TestSpec testSpec = config.testSpec();
+        if( config.testSpec().hasFilters() )
+            Catch::cout() << "Matching test cases:\n";
+        else {
+            Catch::cout() << "All available test cases:\n";
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        }
+
+        std::size_t matchedTests = 0;
+        TextAttributes nameAttr, tagsAttr;
+        nameAttr.setInitialIndent( 2 ).setIndent( 4 );
+        tagsAttr.setIndent( 6 );
+
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            matchedTests++;
+            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
+            Colour::Code colour = testCaseInfo.isHidden()
+                ? Colour::SecondaryText
+                : Colour::None;
+            Colour colourGuard( colour );
+
+            Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl;
+            if( !testCaseInfo.tags.empty() )
+                Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl;
+        }
+
+        if( !config.testSpec().hasFilters() )
+            Catch::cout() << pluralise( matchedTests, "test case" ) << '\n' << std::endl;
+        else
+            Catch::cout() << pluralise( matchedTests, "matching test case" ) << '\n' << std::endl;
+        return matchedTests;
+    }
+
+    inline std::size_t listTestsNamesOnly( Config const& config ) {
+        TestSpec testSpec = config.testSpec();
+        if( !config.testSpec().hasFilters() )
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        std::size_t matchedTests = 0;
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            matchedTests++;
+            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
+            if( startsWith( testCaseInfo.name, '#' ) )
+               Catch::cout() << '"' << testCaseInfo.name << '"' << std::endl;
+            else
+               Catch::cout() << testCaseInfo.name << std::endl;
+        }
+        return matchedTests;
+    }
+
+    struct TagInfo {
+        TagInfo() : count ( 0 ) {}
+        void add( std::string const& spelling ) {
+            ++count;
+            spellings.insert( spelling );
+        }
+        std::string all() const {
+            std::string out;
+            for( std::set<std::string>::const_iterator it = spellings.begin(), itEnd = spellings.end();
+                        it != itEnd;
+                        ++it )
+                out += "[" + *it + "]";
+            return out;
+        }
+        std::set<std::string> spellings;
+        std::size_t count;
+    };
+
+    inline std::size_t listTags( Config const& config ) {
+        TestSpec testSpec = config.testSpec();
+        if( config.testSpec().hasFilters() )
+            Catch::cout() << "Tags for matching test cases:\n";
+        else {
+            Catch::cout() << "All available tags:\n";
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        }
+
+        std::map<std::string, TagInfo> tagCounts;
+
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            for( std::set<std::string>::const_iterator  tagIt = it->getTestCaseInfo().tags.begin(),
+                                                        tagItEnd = it->getTestCaseInfo().tags.end();
+                    tagIt != tagItEnd;
+                    ++tagIt ) {
+                std::string tagName = *tagIt;
+                std::string lcaseTagName = toLower( tagName );
+                std::map<std::string, TagInfo>::iterator countIt = tagCounts.find( lcaseTagName );
+                if( countIt == tagCounts.end() )
+                    countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first;
+                countIt->second.add( tagName );
+            }
+        }
+
+        for( std::map<std::string, TagInfo>::const_iterator countIt = tagCounts.begin(),
+                                                            countItEnd = tagCounts.end();
+                countIt != countItEnd;
+                ++countIt ) {
+            std::ostringstream oss;
+            oss << "  " << std::setw(2) << countIt->second.count << "  ";
+            Text wrapper( countIt->second.all(), TextAttributes()
+                                                    .setInitialIndent( 0 )
+                                                    .setIndent( oss.str().size() )
+                                                    .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) );
+            Catch::cout() << oss.str() << wrapper << '\n';
+        }
+        Catch::cout() << pluralise( tagCounts.size(), "tag" ) << '\n' << std::endl;
+        return tagCounts.size();
+    }
+
+    inline std::size_t listReporters( Config const& /*config*/ ) {
+        Catch::cout() << "Available reporters:\n";
+        IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories();
+        IReporterRegistry::FactoryMap::const_iterator itBegin = factories.begin(), itEnd = factories.end(), it;
+        std::size_t maxNameLen = 0;
+        for(it = itBegin; it != itEnd; ++it )
+            maxNameLen = (std::max)( maxNameLen, it->first.size() );
+
+        for(it = itBegin; it != itEnd; ++it ) {
+            Text wrapper( it->second->getDescription(), TextAttributes()
+                                                        .setInitialIndent( 0 )
+                                                        .setIndent( 7+maxNameLen )
+                                                        .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) );
+            Catch::cout() << "  "
+                    << it->first
+                    << ':'
+                    << std::string( maxNameLen - it->first.size() + 2, ' ' )
+                    << wrapper << '\n';
+        }
+        Catch::cout() << std::endl;
+        return factories.size();
+    }
+
+    inline Option<std::size_t> list( Config const& config ) {
+        Option<std::size_t> listedCount;
+        if( config.listTests() )
+            listedCount = listedCount.valueOr(0) + listTests( config );
+        if( config.listTestNamesOnly() )
+            listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config );
+        if( config.listTags() )
+            listedCount = listedCount.valueOr(0) + listTags( config );
+        if( config.listReporters() )
+            listedCount = listedCount.valueOr(0) + listReporters( config );
+        return listedCount;
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_run_context.hpp
+#define TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED
+
+// #included from: catch_test_case_tracker.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED
+
+#include <map>
+#include <string>
+#include <assert.h>
+#include <vector>
+#include <iterator>
+
+namespace Catch {
+namespace TestCaseTracking {
+
+    struct NameAndLocation {
+        std::string name;
+        SourceLineInfo location;
+
+        NameAndLocation( std::string const& _name, SourceLineInfo const& _location )
+        :   name( _name ),
+            location( _location )
+        {}
+    };
+
+    struct ITracker : SharedImpl<> {
+        virtual ~ITracker();
+
+        // static queries
+        virtual NameAndLocation const& nameAndLocation() const = 0;
+
+        // dynamic queries
+        virtual bool isComplete() const = 0; // Successfully completed or failed
+        virtual bool isSuccessfullyCompleted() const = 0;
+        virtual bool isOpen() const = 0; // Started but not complete
+        virtual bool hasChildren() const = 0;
+
+        virtual ITracker& parent() = 0;
+
+        // actions
+        virtual void close() = 0; // Successfully complete
+        virtual void fail() = 0;
+        virtual void markAsNeedingAnotherRun() = 0;
+
+        virtual void addChild( Ptr<ITracker> const& child ) = 0;
+        virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) = 0;
+        virtual void openChild() = 0;
+
+        // Debug/ checking
+        virtual bool isSectionTracker() const = 0;
+        virtual bool isIndexTracker() const = 0;
+    };
+
+    class  TrackerContext {
+
+        enum RunState {
+            NotStarted,
+            Executing,
+            CompletedCycle
+        };
+
+        Ptr<ITracker> m_rootTracker;
+        ITracker* m_currentTracker;
+        RunState m_runState;
+
+    public:
+
+        static TrackerContext& instance() {
+            static TrackerContext s_instance;
+            return s_instance;
+        }
+
+        TrackerContext()
+        :   m_currentTracker( CATCH_NULL ),
+            m_runState( NotStarted )
+        {}
+
+        ITracker& startRun();
+
+        void endRun() {
+            m_rootTracker.reset();
+            m_currentTracker = CATCH_NULL;
+            m_runState = NotStarted;
+        }
+
+        void startCycle() {
+            m_currentTracker = m_rootTracker.get();
+            m_runState = Executing;
+        }
+        void completeCycle() {
+            m_runState = CompletedCycle;
+        }
+
+        bool completedCycle() const {
+            return m_runState == CompletedCycle;
+        }
+        ITracker& currentTracker() {
+            return *m_currentTracker;
+        }
+        void setCurrentTracker( ITracker* tracker ) {
+            m_currentTracker = tracker;
+        }
+    };
+
+    class TrackerBase : public ITracker {
+    protected:
+        enum CycleState {
+            NotStarted,
+            Executing,
+            ExecutingChildren,
+            NeedsAnotherRun,
+            CompletedSuccessfully,
+            Failed
+        };
+        class TrackerHasName {
+            NameAndLocation m_nameAndLocation;
+        public:
+            TrackerHasName( NameAndLocation const& nameAndLocation ) : m_nameAndLocation( nameAndLocation ) {}
+            bool operator ()( Ptr<ITracker> const& tracker ) {
+                return
+                    tracker->nameAndLocation().name == m_nameAndLocation.name &&
+                    tracker->nameAndLocation().location == m_nameAndLocation.location;
+            }
+        };
+        typedef std::vector<Ptr<ITracker> > Children;
+        NameAndLocation m_nameAndLocation;
+        TrackerContext& m_ctx;
+        ITracker* m_parent;
+        Children m_children;
+        CycleState m_runState;
+    public:
+        TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
+        :   m_nameAndLocation( nameAndLocation ),
+            m_ctx( ctx ),
+            m_parent( parent ),
+            m_runState( NotStarted )
+        {}
+        virtual ~TrackerBase();
+
+        virtual NameAndLocation const& nameAndLocation() const CATCH_OVERRIDE {
+            return m_nameAndLocation;
+        }
+        virtual bool isComplete() const CATCH_OVERRIDE {
+            return m_runState == CompletedSuccessfully || m_runState == Failed;
+        }
+        virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE {
+            return m_runState == CompletedSuccessfully;
+        }
+        virtual bool isOpen() const CATCH_OVERRIDE {
+            return m_runState != NotStarted && !isComplete();
+        }
+        virtual bool hasChildren() const CATCH_OVERRIDE {
+            return !m_children.empty();
+        }
+
+        virtual void addChild( Ptr<ITracker> const& child ) CATCH_OVERRIDE {
+            m_children.push_back( child );
+        }
+
+        virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) CATCH_OVERRIDE {
+            Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( nameAndLocation ) );
+            return( it != m_children.end() )
+                ? it->get()
+                : CATCH_NULL;
+        }
+        virtual ITracker& parent() CATCH_OVERRIDE {
+            assert( m_parent ); // Should always be non-null except for root
+            return *m_parent;
+        }
+
+        virtual void openChild() CATCH_OVERRIDE {
+            if( m_runState != ExecutingChildren ) {
+                m_runState = ExecutingChildren;
+                if( m_parent )
+                    m_parent->openChild();
+            }
+        }
+
+        virtual bool isSectionTracker() const CATCH_OVERRIDE { return false; }
+        virtual bool isIndexTracker() const CATCH_OVERRIDE { return false; }
+
+        void open() {
+            m_runState = Executing;
+            moveToThis();
+            if( m_parent )
+                m_parent->openChild();
+        }
+
+        virtual void close() CATCH_OVERRIDE {
+
+            // Close any still open children (e.g. generators)
+            while( &m_ctx.currentTracker() != this )
+                m_ctx.currentTracker().close();
+
+            switch( m_runState ) {
+                case NotStarted:
+                case CompletedSuccessfully:
+                case Failed:
+                    throw std::logic_error( "Illogical state" );
+
+                case NeedsAnotherRun:
+                    break;;
+
+                case Executing:
+                    m_runState = CompletedSuccessfully;
+                    break;
+                case ExecutingChildren:
+                    if( m_children.empty() || m_children.back()->isComplete() )
+                        m_runState = CompletedSuccessfully;
+                    break;
+
+                default:
+                    throw std::logic_error( "Unexpected state" );
+            }
+            moveToParent();
+            m_ctx.completeCycle();
+        }
+        virtual void fail() CATCH_OVERRIDE {
+            m_runState = Failed;
+            if( m_parent )
+                m_parent->markAsNeedingAnotherRun();
+            moveToParent();
+            m_ctx.completeCycle();
+        }
+        virtual void markAsNeedingAnotherRun() CATCH_OVERRIDE {
+            m_runState = NeedsAnotherRun;
+        }
+    private:
+        void moveToParent() {
+            assert( m_parent );
+            m_ctx.setCurrentTracker( m_parent );
+        }
+        void moveToThis() {
+            m_ctx.setCurrentTracker( this );
+        }
+    };
+
+    class SectionTracker : public TrackerBase {
+        std::vector<std::string> m_filters;
+    public:
+        SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
+        :   TrackerBase( nameAndLocation, ctx, parent )
+        {
+            if( parent ) {
+                while( !parent->isSectionTracker() )
+                    parent = &parent->parent();
+
+                SectionTracker& parentSection = static_cast<SectionTracker&>( *parent );
+                addNextFilters( parentSection.m_filters );
+            }
+        }
+        virtual ~SectionTracker();
+
+        virtual bool isSectionTracker() const CATCH_OVERRIDE { return true; }
+
+        static SectionTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation ) {
+            SectionTracker* section = CATCH_NULL;
+
+            ITracker& currentTracker = ctx.currentTracker();
+            if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) {
+                assert( childTracker );
+                assert( childTracker->isSectionTracker() );
+                section = static_cast<SectionTracker*>( childTracker );
+            }
+            else {
+                section = new SectionTracker( nameAndLocation, ctx, &currentTracker );
+                currentTracker.addChild( section );
+            }
+            if( !ctx.completedCycle() )
+                section->tryOpen();
+            return *section;
+        }
+
+        void tryOpen() {
+            if( !isComplete() && (m_filters.empty() || m_filters[0].empty() ||  m_filters[0] == m_nameAndLocation.name ) )
+                open();
+        }
+
+        void addInitialFilters( std::vector<std::string> const& filters ) {
+            if( !filters.empty() ) {
+                m_filters.push_back(""); // Root - should never be consulted
+                m_filters.push_back(""); // Test Case - not a section filter
+                std::copy( filters.begin(), filters.end(), std::back_inserter( m_filters ) );
+            }
+        }
+        void addNextFilters( std::vector<std::string> const& filters ) {
+            if( filters.size() > 1 )
+                std::copy( filters.begin()+1, filters.end(), std::back_inserter( m_filters ) );
+        }
+    };
+
+    class IndexTracker : public TrackerBase {
+        int m_size;
+        int m_index;
+    public:
+        IndexTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent, int size )
+        :   TrackerBase( nameAndLocation, ctx, parent ),
+            m_size( size ),
+            m_index( -1 )
+        {}
+        virtual ~IndexTracker();
+
+        virtual bool isIndexTracker() const CATCH_OVERRIDE { return true; }
+
+        static IndexTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation, int size ) {
+            IndexTracker* tracker = CATCH_NULL;
+
+            ITracker& currentTracker = ctx.currentTracker();
+            if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) {
+                assert( childTracker );
+                assert( childTracker->isIndexTracker() );
+                tracker = static_cast<IndexTracker*>( childTracker );
+            }
+            else {
+                tracker = new IndexTracker( nameAndLocation, ctx, &currentTracker, size );
+                currentTracker.addChild( tracker );
+            }
+
+            if( !ctx.completedCycle() && !tracker->isComplete() ) {
+                if( tracker->m_runState != ExecutingChildren && tracker->m_runState != NeedsAnotherRun )
+                    tracker->moveNext();
+                tracker->open();
+            }
+
+            return *tracker;
+        }
+
+        int index() const { return m_index; }
+
+        void moveNext() {
+            m_index++;
+            m_children.clear();
+        }
+
+        virtual void close() CATCH_OVERRIDE {
+            TrackerBase::close();
+            if( m_runState == CompletedSuccessfully && m_index < m_size-1 )
+                m_runState = Executing;
+        }
+    };
+
+    inline ITracker& TrackerContext::startRun() {
+        m_rootTracker = new SectionTracker( NameAndLocation( "{root}", CATCH_INTERNAL_LINEINFO ), *this, CATCH_NULL );
+        m_currentTracker = CATCH_NULL;
+        m_runState = Executing;
+        return *m_rootTracker;
+    }
+
+} // namespace TestCaseTracking
+
+using TestCaseTracking::ITracker;
+using TestCaseTracking::TrackerContext;
+using TestCaseTracking::SectionTracker;
+using TestCaseTracking::IndexTracker;
+
+} // namespace Catch
+
+// #included from: catch_fatal_condition.hpp
+#define TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED
+
+namespace Catch {
+
+    // Report the error condition
+    inline void reportFatal( std::string const& message ) {
+        IContext& context = Catch::getCurrentContext();
+        IResultCapture* resultCapture = context.getResultCapture();
+        resultCapture->handleFatalErrorCondition( message );
+    }
+
+} // namespace Catch
+
+#if defined ( CATCH_PLATFORM_WINDOWS ) /////////////////////////////////////////
+
+#define NOMINMAX
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+#undef NOMINMAX
+
+namespace Catch {
+
+    struct SignalDefs { DWORD id; const char* name; };
+    extern SignalDefs signalDefs[];
+    // There is no 1-1 mapping between signals and windows exceptions.
+    // Windows can easily distinguish between SO and SigSegV,
+    // but SigInt, SigTerm, etc are handled differently.
+    SignalDefs signalDefs[] = {
+        { EXCEPTION_ILLEGAL_INSTRUCTION,  "SIGILL - Illegal instruction signal" },
+        { EXCEPTION_STACK_OVERFLOW, "SIGSEGV - Stack overflow" },
+        { EXCEPTION_ACCESS_VIOLATION, "SIGSEGV - Segmentation violation signal" },
+        { EXCEPTION_INT_DIVIDE_BY_ZERO, "Divide by zero error" },
+    };
+
+    struct FatalConditionHandler {
+
+        static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) {
+            for (int i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
+                if (ExceptionInfo->ExceptionRecord->ExceptionCode == signalDefs[i].id) {
+                    reportFatal(signalDefs[i].name);
+                }
+            }
+            // If its not an exception we care about, pass it along.
+            // This stops us from eating debugger breaks etc.
+            return EXCEPTION_CONTINUE_SEARCH;
+        }
+
+        // 32k seems enough for Catch to handle stack overflow,
+        // but the value was found experimentally, so there is no strong guarantee
+        FatalConditionHandler():m_isSet(true), m_guaranteeSize(32 * 1024), m_exceptionHandlerHandle(CATCH_NULL) {
+            // Register as first handler in current chain
+            m_exceptionHandlerHandle = AddVectoredExceptionHandler(1, handleVectoredException);
+            // Pass in guarantee size to be filled
+            SetThreadStackGuarantee(&m_guaranteeSize);
+        }
+
+        void reset() {
+            if (m_isSet) {
+                // Unregister handler and restore the old guarantee
+                RemoveVectoredExceptionHandler(m_exceptionHandlerHandle);
+                SetThreadStackGuarantee(&m_guaranteeSize);
+                m_exceptionHandlerHandle = CATCH_NULL;
+                m_isSet = false;
+            }
+        }
+
+        ~FatalConditionHandler() {
+            reset();
+        }
+    private:
+        bool m_isSet;
+        ULONG m_guaranteeSize;
+        PVOID m_exceptionHandlerHandle;
+    };
+
+} // namespace Catch
+
+#else // Not Windows - assumed to be POSIX compatible //////////////////////////
+
+#include <signal.h>
+
+namespace Catch {
+
+    struct SignalDefs {
+        int id;
+        const char* name;
+    };
+    extern SignalDefs signalDefs[];
+    SignalDefs signalDefs[] = {
+            { SIGINT,  "SIGINT - Terminal interrupt signal" },
+            { SIGILL,  "SIGILL - Illegal instruction signal" },
+            { SIGFPE,  "SIGFPE - Floating point error signal" },
+            { SIGSEGV, "SIGSEGV - Segmentation violation signal" },
+            { SIGTERM, "SIGTERM - Termination request signal" },
+            { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" }
+    };
+
+    struct FatalConditionHandler {
+
+        static bool isSet;
+        static struct sigaction oldSigActions [sizeof(signalDefs)/sizeof(SignalDefs)];
+        static stack_t oldSigStack;
+        static char altStackMem[SIGSTKSZ];
+
+        static void handleSignal( int sig ) {
+            std::string name = "<unknown signal>";
+            for (std::size_t i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
+                SignalDefs &def = signalDefs[i];
+                if (sig == def.id) {
+                    name = def.name;
+                    break;
+                }
+            }
+            reset();
+            reportFatal(name);
+            raise( sig );
+        }
+
+        FatalConditionHandler() {
+            isSet = true;
+            stack_t sigStack;
+            sigStack.ss_sp = altStackMem;
+            sigStack.ss_size = SIGSTKSZ;
+            sigStack.ss_flags = 0;
+            sigaltstack(&sigStack, &oldSigStack);
+            struct sigaction sa = { 0 };
+
+            sa.sa_handler = handleSignal;
+            sa.sa_flags = SA_ONSTACK;
+            for (std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i) {
+                sigaction(signalDefs[i].id, &sa, &oldSigActions[i]);
+            }
+        }
+
+        ~FatalConditionHandler() {
+            reset();
+        }
+        static void reset() {
+            if( isSet ) {
+                // Set signals back to previous values -- hopefully nobody overwrote them in the meantime
+                for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) {
+                    sigaction(signalDefs[i].id, &oldSigActions[i], CATCH_NULL);
+                }
+                // Return the old stack
+                sigaltstack(&oldSigStack, CATCH_NULL);
+                isSet = false;
+            }
+        }
+    };
+
+    bool FatalConditionHandler::isSet = false;
+    struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {};
+    stack_t FatalConditionHandler::oldSigStack = {};
+    char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
+
+} // namespace Catch
+
+#endif // not Windows
+
+#include <set>
+#include <string>
+
+namespace Catch {
+
+    class StreamRedirect {
+
+    public:
+        StreamRedirect( std::ostream& stream, std::string& targetString )
+        :   m_stream( stream ),
+            m_prevBuf( stream.rdbuf() ),
+            m_targetString( targetString )
+        {
+            stream.rdbuf( m_oss.rdbuf() );
+        }
+
+        ~StreamRedirect() {
+            m_targetString += m_oss.str();
+            m_stream.rdbuf( m_prevBuf );
+        }
+
+    private:
+        std::ostream& m_stream;
+        std::streambuf* m_prevBuf;
+        std::ostringstream m_oss;
+        std::string& m_targetString;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class RunContext : public IResultCapture, public IRunner {
+
+        RunContext( RunContext const& );
+        void operator =( RunContext const& );
+
+    public:
+
+        explicit RunContext( Ptr<IConfig const> const& _config, Ptr<IStreamingReporter> const& reporter )
+        :   m_runInfo( _config->name() ),
+            m_context( getCurrentMutableContext() ),
+            m_activeTestCase( CATCH_NULL ),
+            m_config( _config ),
+            m_reporter( reporter )
+        {
+            m_context.setRunner( this );
+            m_context.setConfig( m_config );
+            m_context.setResultCapture( this );
+            m_reporter->testRunStarting( m_runInfo );
+        }
+
+        virtual ~RunContext() {
+            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) );
+        }
+
+        void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) {
+            m_reporter->testGroupStarting( GroupInfo( testSpec, groupIndex, groupsCount ) );
+        }
+        void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ) {
+            m_reporter->testGroupEnded( TestGroupStats( GroupInfo( testSpec, groupIndex, groupsCount ), totals, aborting() ) );
+        }
+
+        Totals runTest( TestCase const& testCase ) {
+            Totals prevTotals = m_totals;
+
+            std::string redirectedCout;
+            std::string redirectedCerr;
+
+            TestCaseInfo testInfo = testCase.getTestCaseInfo();
+
+            m_reporter->testCaseStarting( testInfo );
+
+            m_activeTestCase = &testCase;
+
+            do {
+                ITracker& rootTracker = m_trackerContext.startRun();
+                dynamic_cast<SectionTracker&>( rootTracker ).addInitialFilters( m_config->getSectionsToRun() );
+                do {
+                    m_trackerContext.startCycle();
+                    m_testCaseTracker = &SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( testInfo.name, testInfo.lineInfo ) );
+                    runCurrentTest( redirectedCout, redirectedCerr );
+                }
+                while( !m_testCaseTracker->isSuccessfullyCompleted() && !aborting() );
+            }
+            // !TBD: deprecated - this will be replaced by indexed trackers
+            while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() );
+
+            Totals deltaTotals = m_totals.delta( prevTotals );
+            if( testInfo.expectedToFail() && deltaTotals.testCases.passed > 0 ) {
+                deltaTotals.assertions.failed++;
+                deltaTotals.testCases.passed--;
+                deltaTotals.testCases.failed++;
+            }
+            m_totals.testCases += deltaTotals.testCases;
+            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
+                                                        deltaTotals,
+                                                        redirectedCout,
+                                                        redirectedCerr,
+                                                        aborting() ) );
+
+            m_activeTestCase = CATCH_NULL;
+            m_testCaseTracker = CATCH_NULL;
+
+            return deltaTotals;
+        }
+
+        Ptr<IConfig const> config() const {
+            return m_config;
+        }
+
+    private: // IResultCapture
+
+        virtual void assertionEnded( AssertionResult const& result ) {
+            if( result.getResultType() == ResultWas::Ok ) {
+                m_totals.assertions.passed++;
+            }
+            else if( !result.isOk() ) {
+                m_totals.assertions.failed++;
+            }
+
+            if( m_reporter->assertionEnded( AssertionStats( result, m_messages, m_totals ) ) )
+                m_messages.clear();
+
+            // Reset working state
+            m_lastAssertionInfo = AssertionInfo( std::string(), m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}" , m_lastAssertionInfo.resultDisposition );
+            m_lastResult = result;
+        }
+
+        virtual bool sectionStarted (
+            SectionInfo const& sectionInfo,
+            Counts& assertions
+        )
+        {
+            ITracker& sectionTracker = SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( sectionInfo.name, sectionInfo.lineInfo ) );
+            if( !sectionTracker.isOpen() )
+                return false;
+            m_activeSections.push_back( &sectionTracker );
+
+            m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo;
+
+            m_reporter->sectionStarting( sectionInfo );
+
+            assertions = m_totals.assertions;
+
+            return true;
+        }
+        bool testForMissingAssertions( Counts& assertions ) {
+            if( assertions.total() != 0 )
+                return false;
+            if( !m_config->warnAboutMissingAssertions() )
+                return false;
+            if( m_trackerContext.currentTracker().hasChildren() )
+                return false;
+            m_totals.assertions.failed++;
+            assertions.failed++;
+            return true;
+        }
+
+        virtual void sectionEnded( SectionEndInfo const& endInfo ) {
+            Counts assertions = m_totals.assertions - endInfo.prevAssertions;
+            bool missingAssertions = testForMissingAssertions( assertions );
+
+            if( !m_activeSections.empty() ) {
+                m_activeSections.back()->close();
+                m_activeSections.pop_back();
+            }
+
+            m_reporter->sectionEnded( SectionStats( endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions ) );
+            m_messages.clear();
+        }
+
+        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) {
+            if( m_unfinishedSections.empty() )
+                m_activeSections.back()->fail();
+            else
+                m_activeSections.back()->close();
+            m_activeSections.pop_back();
+
+            m_unfinishedSections.push_back( endInfo );
+        }
+
+        virtual void pushScopedMessage( MessageInfo const& message ) {
+            m_messages.push_back( message );
+        }
+
+        virtual void popScopedMessage( MessageInfo const& message ) {
+            m_messages.erase( std::remove( m_messages.begin(), m_messages.end(), message ), m_messages.end() );
+        }
+
+        virtual std::string getCurrentTestName() const {
+            return m_activeTestCase
+                ? m_activeTestCase->getTestCaseInfo().name
+                : std::string();
+        }
+
+        virtual const AssertionResult* getLastResult() const {
+            return &m_lastResult;
+        }
+
+        virtual void handleFatalErrorCondition( std::string const& message ) {
+            ResultBuilder resultBuilder = makeUnexpectedResultBuilder();
+            resultBuilder.setResultType( ResultWas::FatalErrorCondition );
+            resultBuilder << message;
+            resultBuilder.captureExpression();
+
+            handleUnfinishedSections();
+
+            // Recreate section for test case (as we will lose the one that was in scope)
+            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
+            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
+
+            Counts assertions;
+            assertions.failed = 1;
+            SectionStats testCaseSectionStats( testCaseSection, assertions, 0, false );
+            m_reporter->sectionEnded( testCaseSectionStats );
+
+            TestCaseInfo testInfo = m_activeTestCase->getTestCaseInfo();
+
+            Totals deltaTotals;
+            deltaTotals.testCases.failed = 1;
+            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
+                                                        deltaTotals,
+                                                        std::string(),
+                                                        std::string(),
+                                                        false ) );
+            m_totals.testCases.failed++;
+            testGroupEnded( std::string(), m_totals, 1, 1 );
+            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, false ) );
+        }
+
+    public:
+        // !TBD We need to do this another way!
+        bool aborting() const {
+            return m_totals.assertions.failed == static_cast<std::size_t>( m_config->abortAfter() );
+        }
+
+    private:
+
+        void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) {
+            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
+            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
+            m_reporter->sectionStarting( testCaseSection );
+            Counts prevAssertions = m_totals.assertions;
+            double duration = 0;
+            try {
+                m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, std::string(), ResultDisposition::Normal );
+
+                seedRng( *m_config );
+
+                Timer timer;
+                timer.start();
+                if( m_reporter->getPreferences().shouldRedirectStdOut ) {
+                    StreamRedirect coutRedir( Catch::cout(), redirectedCout );
+                    StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr );
+                    invokeActiveTestCase();
+                }
+                else {
+                    invokeActiveTestCase();
+                }
+                duration = timer.getElapsedSeconds();
+            }
+            catch( TestFailureException& ) {
+                // This just means the test was aborted due to failure
+            }
+            catch(...) {
+                makeUnexpectedResultBuilder().useActiveException();
+            }
+            m_testCaseTracker->close();
+            handleUnfinishedSections();
+            m_messages.clear();
+
+            Counts assertions = m_totals.assertions - prevAssertions;
+            bool missingAssertions = testForMissingAssertions( assertions );
+
+            if( testCaseInfo.okToFail() ) {
+                std::swap( assertions.failedButOk, assertions.failed );
+                m_totals.assertions.failed -= assertions.failedButOk;
+                m_totals.assertions.failedButOk += assertions.failedButOk;
+            }
+
+            SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions );
+            m_reporter->sectionEnded( testCaseSectionStats );
+        }
+
+        void invokeActiveTestCase() {
+            FatalConditionHandler fatalConditionHandler; // Handle signals
+            m_activeTestCase->invoke();
+            fatalConditionHandler.reset();
+        }
+
+    private:
+
+        ResultBuilder makeUnexpectedResultBuilder() const {
+            return ResultBuilder(   m_lastAssertionInfo.macroName.c_str(),
+                                    m_lastAssertionInfo.lineInfo,
+                                    m_lastAssertionInfo.capturedExpression.c_str(),
+                                    m_lastAssertionInfo.resultDisposition );
+        }
+
+        void handleUnfinishedSections() {
+            // If sections ended prematurely due to an exception we stored their
+            // infos here so we can tear them down outside the unwind process.
+            for( std::vector<SectionEndInfo>::const_reverse_iterator it = m_unfinishedSections.rbegin(),
+                        itEnd = m_unfinishedSections.rend();
+                    it != itEnd;
+                    ++it )
+                sectionEnded( *it );
+            m_unfinishedSections.clear();
+        }
+
+        TestRunInfo m_runInfo;
+        IMutableContext& m_context;
+        TestCase const* m_activeTestCase;
+        ITracker* m_testCaseTracker;
+        ITracker* m_currentSectionTracker;
+        AssertionResult m_lastResult;
+
+        Ptr<IConfig const> m_config;
+        Totals m_totals;
+        Ptr<IStreamingReporter> m_reporter;
+        std::vector<MessageInfo> m_messages;
+        AssertionInfo m_lastAssertionInfo;
+        std::vector<SectionEndInfo> m_unfinishedSections;
+        std::vector<ITracker*> m_activeSections;
+        TrackerContext m_trackerContext;
+    };
+
+    IResultCapture& getResultCapture() {
+        if( IResultCapture* capture = getCurrentContext().getResultCapture() )
+            return *capture;
+        else
+            throw std::logic_error( "No result capture instance" );
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_version.h
+#define TWOBLUECUBES_CATCH_VERSION_H_INCLUDED
+
+namespace Catch {
+
+    // Versioning information
+    struct Version {
+        Version(    unsigned int _majorVersion,
+                    unsigned int _minorVersion,
+                    unsigned int _patchNumber,
+                    std::string const& _branchName,
+                    unsigned int _buildNumber );
+
+        unsigned int const majorVersion;
+        unsigned int const minorVersion;
+        unsigned int const patchNumber;
+
+        // buildNumber is only used if branchName is not null
+        std::string const branchName;
+        unsigned int const buildNumber;
+
+        friend std::ostream& operator << ( std::ostream& os, Version const& version );
+
+    private:
+        void operator=( Version const& );
+    };
+
+    extern Version libraryVersion;
+}
+
+#include <fstream>
+#include <stdlib.h>
+#include <limits>
+
+namespace Catch {
+
+    Ptr<IStreamingReporter> createReporter( std::string const& reporterName, Ptr<Config> const& config ) {
+        Ptr<IStreamingReporter> reporter = getRegistryHub().getReporterRegistry().create( reporterName, config.get() );
+        if( !reporter ) {
+            std::ostringstream oss;
+            oss << "No reporter registered with name: '" << reporterName << "'";
+            throw std::domain_error( oss.str() );
+        }
+        return reporter;
+    }
+
+    Ptr<IStreamingReporter> makeReporter( Ptr<Config> const& config ) {
+        std::vector<std::string> reporters = config->getReporterNames();
+        if( reporters.empty() )
+            reporters.push_back( "console" );
+
+        Ptr<IStreamingReporter> reporter;
+        for( std::vector<std::string>::const_iterator it = reporters.begin(), itEnd = reporters.end();
+                it != itEnd;
+                ++it )
+            reporter = addReporter( reporter, createReporter( *it, config ) );
+        return reporter;
+    }
+    Ptr<IStreamingReporter> addListeners( Ptr<IConfig const> const& config, Ptr<IStreamingReporter> reporters ) {
+        IReporterRegistry::Listeners listeners = getRegistryHub().getReporterRegistry().getListeners();
+        for( IReporterRegistry::Listeners::const_iterator it = listeners.begin(), itEnd = listeners.end();
+                it != itEnd;
+                ++it )
+            reporters = addReporter(reporters, (*it)->create( ReporterConfig( config ) ) );
+        return reporters;
+    }
+
+    Totals runTests( Ptr<Config> const& config ) {
+
+        Ptr<IConfig const> iconfig = config.get();
+
+        Ptr<IStreamingReporter> reporter = makeReporter( config );
+        reporter = addListeners( iconfig, reporter );
+
+        RunContext context( iconfig, reporter );
+
+        Totals totals;
+
+        context.testGroupStarting( config->name(), 1, 1 );
+
+        TestSpec testSpec = config->testSpec();
+        if( !testSpec.hasFilters() )
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests
+
+        std::vector<TestCase> const& allTestCases = getAllTestCasesSorted( *iconfig );
+        for( std::vector<TestCase>::const_iterator it = allTestCases.begin(), itEnd = allTestCases.end();
+                it != itEnd;
+                ++it ) {
+            if( !context.aborting() && matchTest( *it, testSpec, *iconfig ) )
+                totals += context.runTest( *it );
+            else
+                reporter->skipTest( *it );
+        }
+
+        context.testGroupEnded( iconfig->name(), totals, 1, 1 );
+        return totals;
+    }
+
+    void applyFilenamesAsTags( IConfig const& config ) {
+        std::vector<TestCase> const& tests = getAllTestCasesSorted( config );
+        for(std::size_t i = 0; i < tests.size(); ++i ) {
+            TestCase& test = const_cast<TestCase&>( tests[i] );
+            std::set<std::string> tags = test.tags;
+
+            std::string filename = test.lineInfo.file;
+            std::string::size_type lastSlash = filename.find_last_of( "\\/" );
+            if( lastSlash != std::string::npos )
+                filename = filename.substr( lastSlash+1 );
+
+            std::string::size_type lastDot = filename.find_last_of( "." );
+            if( lastDot != std::string::npos )
+                filename = filename.substr( 0, lastDot );
+
+            tags.insert( "#" + filename );
+            setTags( test, tags );
+        }
+    }
+
+    class Session : NonCopyable {
+        static bool alreadyInstantiated;
+
+    public:
+
+        struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; };
+
+        Session()
+        : m_cli( makeCommandLineParser() ) {
+            if( alreadyInstantiated ) {
+                std::string msg = "Only one instance of Catch::Session can ever be used";
+                Catch::cerr() << msg << std::endl;
+                throw std::logic_error( msg );
+            }
+            alreadyInstantiated = true;
+        }
+        ~Session() {
+            Catch::cleanUp();
+        }
+
+        void showHelp( std::string const& processName ) {
+            Catch::cout() << "\nCatch v" << libraryVersion << "\n";
+
+            m_cli.usage( Catch::cout(), processName );
+            Catch::cout() << "For more detail usage please see the project docs\n" << std::endl;
+        }
+
+        int applyCommandLine( int argc, char const* const* const argv, OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) {
+            try {
+                m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail );
+                m_unusedTokens = m_cli.parseInto( Clara::argsToVector( argc, argv ), m_configData );
+                if( m_configData.showHelp )
+                    showHelp( m_configData.processName );
+                m_config.reset();
+            }
+            catch( std::exception& ex ) {
+                {
+                    Colour colourGuard( Colour::Red );
+                    Catch::cerr()
+                        << "\nError(s) in input:\n"
+                        << Text( ex.what(), TextAttributes().setIndent(2) )
+                        << "\n\n";
+                }
+                m_cli.usage( Catch::cout(), m_configData.processName );
+                return (std::numeric_limits<int>::max)();
+            }
+            return 0;
+        }
+
+        void useConfigData( ConfigData const& _configData ) {
+            m_configData = _configData;
+            m_config.reset();
+        }
+
+        int run( int argc, char const* const* const argv ) {
+
+            int returnCode = applyCommandLine( argc, argv );
+            if( returnCode == 0 )
+                returnCode = run();
+            return returnCode;
+        }
+
+        int run() {
+            if( m_configData.showHelp )
+                return 0;
+
+            try
+            {
+                config(); // Force config to be constructed
+
+                seedRng( *m_config );
+
+                if( m_configData.filenamesAsTags )
+                    applyFilenamesAsTags( *m_config );
+
+                // Handle list request
+                if( Option<std::size_t> listed = list( config() ) )
+                    return static_cast<int>( *listed );
+
+                return static_cast<int>( runTests( m_config ).assertions.failed );
+            }
+            catch( std::exception& ex ) {
+                Catch::cerr() << ex.what() << std::endl;
+                return (std::numeric_limits<int>::max)();
+            }
+        }
+
+        Clara::CommandLine<ConfigData> const& cli() const {
+            return m_cli;
+        }
+        std::vector<Clara::Parser::Token> const& unusedTokens() const {
+            return m_unusedTokens;
+        }
+        ConfigData& configData() {
+            return m_configData;
+        }
+        Config& config() {
+            if( !m_config )
+                m_config = new Config( m_configData );
+            return *m_config;
+        }
+    private:
+        Clara::CommandLine<ConfigData> m_cli;
+        std::vector<Clara::Parser::Token> m_unusedTokens;
+        ConfigData m_configData;
+        Ptr<Config> m_config;
+    };
+
+    bool Session::alreadyInstantiated = false;
+
+} // end namespace Catch
+
+// #included from: catch_registry_hub.hpp
+#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED
+
+// #included from: catch_test_case_registry_impl.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED
+
+#include <vector>
+#include <set>
+#include <sstream>
+#include <iostream>
+#include <algorithm>
+
+namespace Catch {
+
+    struct RandomNumberGenerator {
+        typedef std::ptrdiff_t result_type;
+
+        result_type operator()( result_type n ) const { return std::rand() % n; }
+
+#ifdef CATCH_CONFIG_CPP11_SHUFFLE
+        static constexpr result_type min() { return 0; }
+        static constexpr result_type max() { return 1000000; }
+        result_type operator()() const { return std::rand() % max(); }
+#endif
+        template<typename V>
+        static void shuffle( V& vector ) {
+            RandomNumberGenerator rng;
+#ifdef CATCH_CONFIG_CPP11_SHUFFLE
+            std::shuffle( vector.begin(), vector.end(), rng );
+#else
+            std::random_shuffle( vector.begin(), vector.end(), rng );
+#endif
+        }
+    };
+
+    inline std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ) {
+
+        std::vector<TestCase> sorted = unsortedTestCases;
+
+        switch( config.runOrder() ) {
+            case RunTests::InLexicographicalOrder:
+                std::sort( sorted.begin(), sorted.end() );
+                break;
+            case RunTests::InRandomOrder:
+                {
+                    seedRng( config );
+                    RandomNumberGenerator::shuffle( sorted );
+                }
+                break;
+            case RunTests::InDeclarationOrder:
+                // already in declaration order
+                break;
+        }
+        return sorted;
+    }
+    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) {
+        return testSpec.matches( testCase ) && ( config.allowThrows() || !testCase.throws() );
+    }
+
+    void enforceNoDuplicateTestCases( std::vector<TestCase> const& functions ) {
+        std::set<TestCase> seenFunctions;
+        for( std::vector<TestCase>::const_iterator it = functions.begin(), itEnd = functions.end();
+            it != itEnd;
+            ++it ) {
+            std::pair<std::set<TestCase>::const_iterator, bool> prev = seenFunctions.insert( *it );
+            if( !prev.second ) {
+                std::ostringstream ss;
+
+                ss  << Colour( Colour::Red )
+                    << "error: TEST_CASE( \"" << it->name << "\" ) already defined.\n"
+                    << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo << '\n'
+                    << "\tRedefined at " << it->getTestCaseInfo().lineInfo << std::endl;
+
+                throw std::runtime_error(ss.str());
+            }
+        }
+    }
+
+    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ) {
+        std::vector<TestCase> filtered;
+        filtered.reserve( testCases.size() );
+        for( std::vector<TestCase>::const_iterator it = testCases.begin(), itEnd = testCases.end();
+                it != itEnd;
+                ++it )
+            if( matchTest( *it, testSpec, config ) )
+                filtered.push_back( *it );
+        return filtered;
+    }
+    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ) {
+        return getRegistryHub().getTestCaseRegistry().getAllTestsSorted( config );
+    }
+
+    class TestRegistry : public ITestCaseRegistry {
+    public:
+        TestRegistry()
+        :   m_currentSortOrder( RunTests::InDeclarationOrder ),
+            m_unnamedCount( 0 )
+        {}
+        virtual ~TestRegistry();
+
+        virtual void registerTest( TestCase const& testCase ) {
+            std::string name = testCase.getTestCaseInfo().name;
+            if( name.empty() ) {
+                std::ostringstream oss;
+                oss << "Anonymous test case " << ++m_unnamedCount;
+                return registerTest( testCase.withName( oss.str() ) );
+            }
+            m_functions.push_back( testCase );
+        }
+
+        virtual std::vector<TestCase> const& getAllTests() const {
+            return m_functions;
+        }
+        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const {
+            if( m_sortedFunctions.empty() )
+                enforceNoDuplicateTestCases( m_functions );
+
+            if(  m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty() ) {
+                m_sortedFunctions = sortTests( config, m_functions );
+                m_currentSortOrder = config.runOrder();
+            }
+            return m_sortedFunctions;
+        }
+
+    private:
+        std::vector<TestCase> m_functions;
+        mutable RunTests::InWhatOrder m_currentSortOrder;
+        mutable std::vector<TestCase> m_sortedFunctions;
+        size_t m_unnamedCount;
+        std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class FreeFunctionTestCase : public SharedImpl<ITestCase> {
+    public:
+
+        FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {}
+
+        virtual void invoke() const {
+            m_fun();
+        }
+
+    private:
+        virtual ~FreeFunctionTestCase();
+
+        TestFunction m_fun;
+    };
+
+    inline std::string extractClassName( std::string const& classOrQualifiedMethodName ) {
+        std::string className = classOrQualifiedMethodName;
+        if( startsWith( className, '&' ) )
+        {
+            std::size_t lastColons = className.rfind( "::" );
+            std::size_t penultimateColons = className.rfind( "::", lastColons-1 );
+            if( penultimateColons == std::string::npos )
+                penultimateColons = 1;
+            className = className.substr( penultimateColons, lastColons-penultimateColons );
+        }
+        return className;
+    }
+
+    void registerTestCase
+        (   ITestCase* testCase,
+            char const* classOrQualifiedMethodName,
+            NameAndDesc const& nameAndDesc,
+            SourceLineInfo const& lineInfo ) {
+
+        getMutableRegistryHub().registerTest
+            ( makeTestCase
+                (   testCase,
+                    extractClassName( classOrQualifiedMethodName ),
+                    nameAndDesc.name,
+                    nameAndDesc.description,
+                    lineInfo ) );
+    }
+    void registerTestCaseFunction
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc ) {
+        registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo );
+    }
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    AutoReg::AutoReg
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc ) {
+        registerTestCaseFunction( function, lineInfo, nameAndDesc );
+    }
+
+    AutoReg::~AutoReg() {}
+
+} // end namespace Catch
+
+// #included from: catch_reporter_registry.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED
+
+#include <map>
+
+namespace Catch {
+
+    class ReporterRegistry : public IReporterRegistry {
+
+    public:
+
+        virtual ~ReporterRegistry() CATCH_OVERRIDE {}
+
+        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const CATCH_OVERRIDE {
+            FactoryMap::const_iterator it =  m_factories.find( name );
+            if( it == m_factories.end() )
+                return CATCH_NULL;
+            return it->second->create( ReporterConfig( config ) );
+        }
+
+        void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) {
+            m_factories.insert( std::make_pair( name, factory ) );
+        }
+        void registerListener( Ptr<IReporterFactory> const& factory ) {
+            m_listeners.push_back( factory );
+        }
+
+        virtual FactoryMap const& getFactories() const CATCH_OVERRIDE {
+            return m_factories;
+        }
+        virtual Listeners const& getListeners() const CATCH_OVERRIDE {
+            return m_listeners;
+        }
+
+    private:
+        FactoryMap m_factories;
+        Listeners m_listeners;
+    };
+}
+
+// #included from: catch_exception_translator_registry.hpp
+#define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED
+
+#ifdef __OBJC__
+#import "Foundation/Foundation.h"
+#endif
+
+namespace Catch {
+
+    class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
+    public:
+        ~ExceptionTranslatorRegistry() {
+            deleteAll( m_translators );
+        }
+
+        virtual void registerTranslator( const IExceptionTranslator* translator ) {
+            m_translators.push_back( translator );
+        }
+
+        virtual std::string translateActiveException() const {
+            try {
+#ifdef __OBJC__
+                // In Objective-C try objective-c exceptions first
+                @try {
+                    return tryTranslators();
+                }
+                @catch (NSException *exception) {
+                    return Catch::toString( [exception description] );
+                }
+#else
+                return tryTranslators();
+#endif
+            }
+            catch( TestFailureException& ) {
+                throw;
+            }
+            catch( std::exception& ex ) {
+                return ex.what();
+            }
+            catch( std::string& msg ) {
+                return msg;
+            }
+            catch( const char* msg ) {
+                return msg;
+            }
+            catch(...) {
+                return "Unknown exception";
+            }
+        }
+
+        std::string tryTranslators() const {
+            if( m_translators.empty() )
+                throw;
+            else
+                return m_translators[0]->translate( m_translators.begin()+1, m_translators.end() );
+        }
+
+    private:
+        std::vector<const IExceptionTranslator*> m_translators;
+    };
+}
+
+namespace Catch {
+
+    namespace {
+
+        class RegistryHub : public IRegistryHub, public IMutableRegistryHub {
+
+            RegistryHub( RegistryHub const& );
+            void operator=( RegistryHub const& );
+
+        public: // IRegistryHub
+            RegistryHub() {
+            }
+            virtual IReporterRegistry const& getReporterRegistry() const CATCH_OVERRIDE {
+                return m_reporterRegistry;
+            }
+            virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_OVERRIDE {
+                return m_testCaseRegistry;
+            }
+            virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() CATCH_OVERRIDE {
+                return m_exceptionTranslatorRegistry;
+            }
+
+        public: // IMutableRegistryHub
+            virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
+                m_reporterRegistry.registerReporter( name, factory );
+            }
+            virtual void registerListener( Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
+                m_reporterRegistry.registerListener( factory );
+            }
+            virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE {
+                m_testCaseRegistry.registerTest( testInfo );
+            }
+            virtual void registerTranslator( const IExceptionTranslator* translator ) CATCH_OVERRIDE {
+                m_exceptionTranslatorRegistry.registerTranslator( translator );
+            }
+
+        private:
+            TestRegistry m_testCaseRegistry;
+            ReporterRegistry m_reporterRegistry;
+            ExceptionTranslatorRegistry m_exceptionTranslatorRegistry;
+        };
+
+        // Single, global, instance
+        inline RegistryHub*& getTheRegistryHub() {
+            static RegistryHub* theRegistryHub = CATCH_NULL;
+            if( !theRegistryHub )
+                theRegistryHub = new RegistryHub();
+            return theRegistryHub;
+        }
+    }
+
+    IRegistryHub& getRegistryHub() {
+        return *getTheRegistryHub();
+    }
+    IMutableRegistryHub& getMutableRegistryHub() {
+        return *getTheRegistryHub();
+    }
+    void cleanUp() {
+        delete getTheRegistryHub();
+        getTheRegistryHub() = CATCH_NULL;
+        cleanUpContext();
+    }
+    std::string translateActiveException() {
+        return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_notimplemented_exception.hpp
+#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED
+
+#include <ostream>
+
+namespace Catch {
+
+    NotImplementedException::NotImplementedException( SourceLineInfo const& lineInfo )
+    :   m_lineInfo( lineInfo ) {
+        std::ostringstream oss;
+        oss << lineInfo << ": function ";
+        oss << "not implemented";
+        m_what = oss.str();
+    }
+
+    const char* NotImplementedException::what() const CATCH_NOEXCEPT {
+        return m_what.c_str();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_context_impl.hpp
+#define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED
+
+// #included from: catch_stream.hpp
+#define TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED
+
+#include <stdexcept>
+#include <cstdio>
+#include <iostream>
+
+namespace Catch {
+
+    template<typename WriterF, size_t bufferSize=256>
+    class StreamBufImpl : public StreamBufBase {
+        char data[bufferSize];
+        WriterF m_writer;
+
+    public:
+        StreamBufImpl() {
+            setp( data, data + sizeof(data) );
+        }
+
+        ~StreamBufImpl() CATCH_NOEXCEPT {
+            sync();
+        }
+
+    private:
+        int overflow( int c ) {
+            sync();
+
+            if( c != EOF ) {
+                if( pbase() == epptr() )
+                    m_writer( std::string( 1, static_cast<char>( c ) ) );
+                else
+                    sputc( static_cast<char>( c ) );
+            }
+            return 0;
+        }
+
+        int sync() {
+            if( pbase() != pptr() ) {
+                m_writer( std::string( pbase(), static_cast<std::string::size_type>( pptr() - pbase() ) ) );
+                setp( pbase(), epptr() );
+            }
+            return 0;
+        }
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    FileStream::FileStream( std::string const& filename ) {
+        m_ofs.open( filename.c_str() );
+        if( m_ofs.fail() ) {
+            std::ostringstream oss;
+            oss << "Unable to open file: '" << filename << '\'';
+            throw std::domain_error( oss.str() );
+        }
+    }
+
+    std::ostream& FileStream::stream() const {
+        return m_ofs;
+    }
+
+    struct OutputDebugWriter {
+
+        void operator()( std::string const&str ) {
+            writeToDebugConsole( str );
+        }
+    };
+
+    DebugOutStream::DebugOutStream()
+    :   m_streamBuf( new StreamBufImpl<OutputDebugWriter>() ),
+        m_os( m_streamBuf.get() )
+    {}
+
+    std::ostream& DebugOutStream::stream() const {
+        return m_os;
+    }
+
+    // Store the streambuf from cout up-front because
+    // cout may get redirected when running tests
+    CoutStream::CoutStream()
+    :   m_os( Catch::cout().rdbuf() )
+    {}
+
+    std::ostream& CoutStream::stream() const {
+        return m_os;
+    }
+
+#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions
+    std::ostream& cout() {
+        return std::cout;
+    }
+    std::ostream& cerr() {
+        return std::cerr;
+    }
+#endif
+}
+
+namespace Catch {
+
+    class Context : public IMutableContext {
+
+        Context() : m_config( CATCH_NULL ), m_runner( CATCH_NULL ), m_resultCapture( CATCH_NULL ) {}
+        Context( Context const& );
+        void operator=( Context const& );
+
+    public:
+        virtual ~Context() {
+            deleteAllValues( m_generatorsByTestName );
+        }
+
+    public: // IContext
+        virtual IResultCapture* getResultCapture() {
+            return m_resultCapture;
+        }
+        virtual IRunner* getRunner() {
+            return m_runner;
+        }
+        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) {
+            return getGeneratorsForCurrentTest()
+            .getGeneratorInfo( fileInfo, totalSize )
+            .getCurrentIndex();
+        }
+        virtual bool advanceGeneratorsForCurrentTest() {
+            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
+            return generators && generators->moveNext();
+        }
+
+        virtual Ptr<IConfig const> getConfig() const {
+            return m_config;
+        }
+
+    public: // IMutableContext
+        virtual void setResultCapture( IResultCapture* resultCapture ) {
+            m_resultCapture = resultCapture;
+        }
+        virtual void setRunner( IRunner* runner ) {
+            m_runner = runner;
+        }
+        virtual void setConfig( Ptr<IConfig const> const& config ) {
+            m_config = config;
+        }
+
+        friend IMutableContext& getCurrentMutableContext();
+
+    private:
+        IGeneratorsForTest* findGeneratorsForCurrentTest() {
+            std::string testName = getResultCapture()->getCurrentTestName();
+
+            std::map<std::string, IGeneratorsForTest*>::const_iterator it =
+                m_generatorsByTestName.find( testName );
+            return it != m_generatorsByTestName.end()
+                ? it->second
+                : CATCH_NULL;
+        }
+
+        IGeneratorsForTest& getGeneratorsForCurrentTest() {
+            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
+            if( !generators ) {
+                std::string testName = getResultCapture()->getCurrentTestName();
+                generators = createGeneratorsForTest();
+                m_generatorsByTestName.insert( std::make_pair( testName, generators ) );
+            }
+            return *generators;
+        }
+
+    private:
+        Ptr<IConfig const> m_config;
+        IRunner* m_runner;
+        IResultCapture* m_resultCapture;
+        std::map<std::string, IGeneratorsForTest*> m_generatorsByTestName;
+    };
+
+    namespace {
+        Context* currentContext = CATCH_NULL;
+    }
+    IMutableContext& getCurrentMutableContext() {
+        if( !currentContext )
+            currentContext = new Context();
+        return *currentContext;
+    }
+    IContext& getCurrentContext() {
+        return getCurrentMutableContext();
+    }
+
+    void cleanUpContext() {
+        delete currentContext;
+        currentContext = CATCH_NULL;
+    }
+}
+
+// #included from: catch_console_colour_impl.hpp
+#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED
+
+namespace Catch {
+    namespace {
+
+        struct IColourImpl {
+            virtual ~IColourImpl() {}
+            virtual void use( Colour::Code _colourCode ) = 0;
+        };
+
+        struct NoColourImpl : IColourImpl {
+            void use( Colour::Code ) {}
+
+            static IColourImpl* instance() {
+                static NoColourImpl s_instance;
+                return &s_instance;
+            }
+        };
+
+    } // anon namespace
+} // namespace Catch
+
+#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI )
+#   ifdef CATCH_PLATFORM_WINDOWS
+#       define CATCH_CONFIG_COLOUR_WINDOWS
+#   else
+#       define CATCH_CONFIG_COLOUR_ANSI
+#   endif
+#endif
+
+#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) /////////////////////////////////////////
+
+// #included from: catch_windows_h_proxy.h
+
+#define TWOBLUECUBES_CATCH_WINDOWS_H_PROXY_H_INCLUDED
+
+#ifdef CATCH_DEFINES_NOMINMAX
+#  define NOMINMAX
+#endif
+#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+#  define WIN32_LEAN_AND_MEAN
+#endif
+
+#ifdef __AFXDLL
+#include <AfxWin.h>
+#else
+#include <windows.h>
+#endif
+
+#ifdef CATCH_DEFINES_NOMINMAX
+#  undef NOMINMAX
+#endif
+#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+#  undef WIN32_LEAN_AND_MEAN
+#endif
+
+namespace Catch {
+namespace {
+
+    class Win32ColourImpl : public IColourImpl {
+    public:
+        Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) )
+        {
+            CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
+            GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo );
+            originalForegroundAttributes = csbiInfo.wAttributes & ~( BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY );
+            originalBackgroundAttributes = csbiInfo.wAttributes & ~( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY );
+        }
+
+        virtual void use( Colour::Code _colourCode ) {
+            switch( _colourCode ) {
+                case Colour::None:      return setTextAttribute( originalForegroundAttributes );
+                case Colour::White:     return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
+                case Colour::Red:       return setTextAttribute( FOREGROUND_RED );
+                case Colour::Green:     return setTextAttribute( FOREGROUND_GREEN );
+                case Colour::Blue:      return setTextAttribute( FOREGROUND_BLUE );
+                case Colour::Cyan:      return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN );
+                case Colour::Yellow:    return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN );
+                case Colour::Grey:      return setTextAttribute( 0 );
+
+                case Colour::LightGrey:     return setTextAttribute( FOREGROUND_INTENSITY );
+                case Colour::BrightRed:     return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED );
+                case Colour::BrightGreen:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN );
+                case Colour::BrightWhite:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
+
+                case Colour::Bright: throw std::logic_error( "not a colour" );
+            }
+        }
+
+    private:
+        void setTextAttribute( WORD _textAttribute ) {
+            SetConsoleTextAttribute( stdoutHandle, _textAttribute | originalBackgroundAttributes );
+        }
+        HANDLE stdoutHandle;
+        WORD originalForegroundAttributes;
+        WORD originalBackgroundAttributes;
+    };
+
+    IColourImpl* platformColourInstance() {
+        static Win32ColourImpl s_instance;
+
+        Ptr<IConfig const> config = getCurrentContext().getConfig();
+        UseColour::YesOrNo colourMode = config
+            ? config->useColour()
+            : UseColour::Auto;
+        if( colourMode == UseColour::Auto )
+            colourMode = !isDebuggerActive()
+                ? UseColour::Yes
+                : UseColour::No;
+        return colourMode == UseColour::Yes
+            ? &s_instance
+            : NoColourImpl::instance();
+    }
+
+} // end anon namespace
+} // end namespace Catch
+
+#elif defined( CATCH_CONFIG_COLOUR_ANSI ) //////////////////////////////////////
+
+#include <unistd.h>
+
+namespace Catch {
+namespace {
+
+    // use POSIX/ ANSI console terminal codes
+    // Thanks to Adam Strzelecki for original contribution
+    // (http://github.com/nanoant)
+    // https://github.com/philsquared/Catch/pull/131
+    class PosixColourImpl : public IColourImpl {
+    public:
+        virtual void use( Colour::Code _colourCode ) {
+            switch( _colourCode ) {
+                case Colour::None:
+                case Colour::White:     return setColour( "[0m" );
+                case Colour::Red:       return setColour( "[0;31m" );
+                case Colour::Green:     return setColour( "[0;32m" );
+                case Colour::Blue:      return setColour( "[0;34m" );
+                case Colour::Cyan:      return setColour( "[0;36m" );
+                case Colour::Yellow:    return setColour( "[0;33m" );
+                case Colour::Grey:      return setColour( "[1;30m" );
+
+                case Colour::LightGrey:     return setColour( "[0;37m" );
+                case Colour::BrightRed:     return setColour( "[1;31m" );
+                case Colour::BrightGreen:   return setColour( "[1;32m" );
+                case Colour::BrightWhite:   return setColour( "[1;37m" );
+
+                case Colour::Bright: throw std::logic_error( "not a colour" );
+            }
+        }
+        static IColourImpl* instance() {
+            static PosixColourImpl s_instance;
+            return &s_instance;
+        }
+
+    private:
+        void setColour( const char* _escapeCode ) {
+            Catch::cout() << '\033' << _escapeCode;
+        }
+    };
+
+    IColourImpl* platformColourInstance() {
+        Ptr<IConfig const> config = getCurrentContext().getConfig();
+        UseColour::YesOrNo colourMode = config
+            ? config->useColour()
+            : UseColour::Auto;
+        if( colourMode == UseColour::Auto )
+            colourMode = (!isDebuggerActive() && isatty(STDOUT_FILENO) )
+                ? UseColour::Yes
+                : UseColour::No;
+        return colourMode == UseColour::Yes
+            ? PosixColourImpl::instance()
+            : NoColourImpl::instance();
+    }
+
+} // end anon namespace
+} // end namespace Catch
+
+#else  // not Windows or ANSI ///////////////////////////////////////////////
+
+namespace Catch {
+
+    static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); }
+
+} // end namespace Catch
+
+#endif // Windows/ ANSI/ None
+
+namespace Catch {
+
+    Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); }
+    Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast<Colour&>( _other ).m_moved = true; }
+    Colour::~Colour(){ if( !m_moved ) use( None ); }
+
+    void Colour::use( Code _colourCode ) {
+        static IColourImpl* impl = platformColourInstance();
+        impl->use( _colourCode );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_generators_impl.hpp
+#define TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED
+
+#include <vector>
+#include <string>
+#include <map>
+
+namespace Catch {
+
+    struct GeneratorInfo : IGeneratorInfo {
+
+        GeneratorInfo( std::size_t size )
+        :   m_size( size ),
+            m_currentIndex( 0 )
+        {}
+
+        bool moveNext() {
+            if( ++m_currentIndex == m_size ) {
+                m_currentIndex = 0;
+                return false;
+            }
+            return true;
+        }
+
+        std::size_t getCurrentIndex() const {
+            return m_currentIndex;
+        }
+
+        std::size_t m_size;
+        std::size_t m_currentIndex;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class GeneratorsForTest : public IGeneratorsForTest {
+
+    public:
+        ~GeneratorsForTest() {
+            deleteAll( m_generatorsInOrder );
+        }
+
+        IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) {
+            std::map<std::string, IGeneratorInfo*>::const_iterator it = m_generatorsByName.find( fileInfo );
+            if( it == m_generatorsByName.end() ) {
+                IGeneratorInfo* info = new GeneratorInfo( size );
+                m_generatorsByName.insert( std::make_pair( fileInfo, info ) );
+                m_generatorsInOrder.push_back( info );
+                return *info;
+            }
+            return *it->second;
+        }
+
+        bool moveNext() {
+            std::vector<IGeneratorInfo*>::const_iterator it = m_generatorsInOrder.begin();
+            std::vector<IGeneratorInfo*>::const_iterator itEnd = m_generatorsInOrder.end();
+            for(; it != itEnd; ++it ) {
+                if( (*it)->moveNext() )
+                    return true;
+            }
+            return false;
+        }
+
+    private:
+        std::map<std::string, IGeneratorInfo*> m_generatorsByName;
+        std::vector<IGeneratorInfo*> m_generatorsInOrder;
+    };
+
+    IGeneratorsForTest* createGeneratorsForTest()
+    {
+        return new GeneratorsForTest();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_assertionresult.hpp
+#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
+
+namespace Catch {
+
+    AssertionInfo::AssertionInfo(   std::string const& _macroName,
+                                    SourceLineInfo const& _lineInfo,
+                                    std::string const& _capturedExpression,
+                                    ResultDisposition::Flags _resultDisposition )
+    :   macroName( _macroName ),
+        lineInfo( _lineInfo ),
+        capturedExpression( _capturedExpression ),
+        resultDisposition( _resultDisposition )
+    {}
+
+    AssertionResult::AssertionResult() {}
+
+    AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data )
+    :   m_info( info ),
+        m_resultData( data )
+    {}
+
+    AssertionResult::~AssertionResult() {}
+
+    // Result was a success
+    bool AssertionResult::succeeded() const {
+        return Catch::isOk( m_resultData.resultType );
+    }
+
+    // Result was a success, or failure is suppressed
+    bool AssertionResult::isOk() const {
+        return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition );
+    }
+
+    ResultWas::OfType AssertionResult::getResultType() const {
+        return m_resultData.resultType;
+    }
+
+    bool AssertionResult::hasExpression() const {
+        return !m_info.capturedExpression.empty();
+    }
+
+    bool AssertionResult::hasMessage() const {
+        return !m_resultData.message.empty();
+    }
+
+    std::string AssertionResult::getExpression() const {
+        if( isFalseTest( m_info.resultDisposition ) )
+            return '!' + m_info.capturedExpression;
+        else
+            return m_info.capturedExpression;
+    }
+    std::string AssertionResult::getExpressionInMacro() const {
+        if( m_info.macroName.empty() )
+            return m_info.capturedExpression;
+        else
+            return m_info.macroName + "( " + m_info.capturedExpression + " )";
+    }
+
+    bool AssertionResult::hasExpandedExpression() const {
+        return hasExpression() && getExpandedExpression() != getExpression();
+    }
+
+    std::string AssertionResult::getExpandedExpression() const {
+        return m_resultData.reconstructExpression();
+    }
+
+    std::string AssertionResult::getMessage() const {
+        return m_resultData.message;
+    }
+    SourceLineInfo AssertionResult::getSourceInfo() const {
+        return m_info.lineInfo;
+    }
+
+    std::string AssertionResult::getTestMacroName() const {
+        return m_info.macroName;
+    }
+
+    void AssertionResult::discardDecomposedExpression() const {
+        m_resultData.decomposedExpression = CATCH_NULL;
+    }
+
+    void AssertionResult::expandDecomposedExpression() const {
+        m_resultData.reconstructExpression();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_test_case_info.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED
+
+namespace Catch {
+
+    inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) {
+        if( startsWith( tag, '.' ) ||
+            tag == "hide" ||
+            tag == "!hide" )
+            return TestCaseInfo::IsHidden;
+        else if( tag == "!throws" )
+            return TestCaseInfo::Throws;
+        else if( tag == "!shouldfail" )
+            return TestCaseInfo::ShouldFail;
+        else if( tag == "!mayfail" )
+            return TestCaseInfo::MayFail;
+        else if( tag == "!nonportable" )
+            return TestCaseInfo::NonPortable;
+        else
+            return TestCaseInfo::None;
+    }
+    inline bool isReservedTag( std::string const& tag ) {
+        return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !isalnum( tag[0] );
+    }
+    inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) {
+        if( isReservedTag( tag ) ) {
+            {
+                Colour colourGuard( Colour::Red );
+                Catch::cerr()
+                    << "Tag name [" << tag << "] not allowed.\n"
+                    << "Tag names starting with non alpha-numeric characters are reserved\n";
+            }
+            {
+                Colour colourGuard( Colour::FileName );
+                Catch::cerr() << _lineInfo << std::endl;
+            }
+            exit(1);
+        }
+    }
+
+    TestCase makeTestCase(  ITestCase* _testCase,
+                            std::string const& _className,
+                            std::string const& _name,
+                            std::string const& _descOrTags,
+                            SourceLineInfo const& _lineInfo )
+    {
+        bool isHidden( startsWith( _name, "./" ) ); // Legacy support
+
+        // Parse out tags
+        std::set<std::string> tags;
+        std::string desc, tag;
+        bool inTag = false;
+        for( std::size_t i = 0; i < _descOrTags.size(); ++i ) {
+            char c = _descOrTags[i];
+            if( !inTag ) {
+                if( c == '[' )
+                    inTag = true;
+                else
+                    desc += c;
+            }
+            else {
+                if( c == ']' ) {
+                    TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag );
+                    if( prop == TestCaseInfo::IsHidden )
+                        isHidden = true;
+                    else if( prop == TestCaseInfo::None )
+                        enforceNotReservedTag( tag, _lineInfo );
+
+                    tags.insert( tag );
+                    tag.clear();
+                    inTag = false;
+                }
+                else
+                    tag += c;
+            }
+        }
+        if( isHidden ) {
+            tags.insert( "hide" );
+            tags.insert( "." );
+        }
+
+        TestCaseInfo info( _name, _className, desc, tags, _lineInfo );
+        return TestCase( _testCase, info );
+    }
+
+    void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags )
+    {
+        testCaseInfo.tags = tags;
+        testCaseInfo.lcaseTags.clear();
+
+        std::ostringstream oss;
+        for( std::set<std::string>::const_iterator it = tags.begin(), itEnd = tags.end(); it != itEnd; ++it ) {
+            oss << '[' << *it << ']';
+            std::string lcaseTag = toLower( *it );
+            testCaseInfo.properties = static_cast<TestCaseInfo::SpecialProperties>( testCaseInfo.properties | parseSpecialTag( lcaseTag ) );
+            testCaseInfo.lcaseTags.insert( lcaseTag );
+        }
+        testCaseInfo.tagsAsString = oss.str();
+    }
+
+    TestCaseInfo::TestCaseInfo( std::string const& _name,
+                                std::string const& _className,
+                                std::string const& _description,
+                                std::set<std::string> const& _tags,
+                                SourceLineInfo const& _lineInfo )
+    :   name( _name ),
+        className( _className ),
+        description( _description ),
+        lineInfo( _lineInfo ),
+        properties( None )
+    {
+        setTags( *this, _tags );
+    }
+
+    TestCaseInfo::TestCaseInfo( TestCaseInfo const& other )
+    :   name( other.name ),
+        className( other.className ),
+        description( other.description ),
+        tags( other.tags ),
+        lcaseTags( other.lcaseTags ),
+        tagsAsString( other.tagsAsString ),
+        lineInfo( other.lineInfo ),
+        properties( other.properties )
+    {}
+
+    bool TestCaseInfo::isHidden() const {
+        return ( properties & IsHidden ) != 0;
+    }
+    bool TestCaseInfo::throws() const {
+        return ( properties & Throws ) != 0;
+    }
+    bool TestCaseInfo::okToFail() const {
+        return ( properties & (ShouldFail | MayFail ) ) != 0;
+    }
+    bool TestCaseInfo::expectedToFail() const {
+        return ( properties & (ShouldFail ) ) != 0;
+    }
+
+    TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {}
+
+    TestCase::TestCase( TestCase const& other )
+    :   TestCaseInfo( other ),
+        test( other.test )
+    {}
+
+    TestCase TestCase::withName( std::string const& _newName ) const {
+        TestCase other( *this );
+        other.name = _newName;
+        return other;
+    }
+
+    void TestCase::swap( TestCase& other ) {
+        test.swap( other.test );
+        name.swap( other.name );
+        className.swap( other.className );
+        description.swap( other.description );
+        tags.swap( other.tags );
+        lcaseTags.swap( other.lcaseTags );
+        tagsAsString.swap( other.tagsAsString );
+        std::swap( TestCaseInfo::properties, static_cast<TestCaseInfo&>( other ).properties );
+        std::swap( lineInfo, other.lineInfo );
+    }
+
+    void TestCase::invoke() const {
+        test->invoke();
+    }
+
+    bool TestCase::operator == ( TestCase const& other ) const {
+        return  test.get() == other.test.get() &&
+                name == other.name &&
+                className == other.className;
+    }
+
+    bool TestCase::operator < ( TestCase const& other ) const {
+        return name < other.name;
+    }
+    TestCase& TestCase::operator = ( TestCase const& other ) {
+        TestCase temp( other );
+        swap( temp );
+        return *this;
+    }
+
+    TestCaseInfo const& TestCase::getTestCaseInfo() const
+    {
+        return *this;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_version.hpp
+#define TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
+
+namespace Catch {
+
+    Version::Version
+        (   unsigned int _majorVersion,
+            unsigned int _minorVersion,
+            unsigned int _patchNumber,
+            std::string const& _branchName,
+            unsigned int _buildNumber )
+    :   majorVersion( _majorVersion ),
+        minorVersion( _minorVersion ),
+        patchNumber( _patchNumber ),
+        branchName( _branchName ),
+        buildNumber( _buildNumber )
+    {}
+
+    std::ostream& operator << ( std::ostream& os, Version const& version ) {
+        os  << version.majorVersion << '.'
+            << version.minorVersion << '.'
+            << version.patchNumber;
+
+        if( !version.branchName.empty() ) {
+            os  << '-' << version.branchName
+                << '.' << version.buildNumber;
+        }
+        return os;
+    }
+
+    Version libraryVersion( 1, 7, 0, "", 0 );
+
+}
+
+// #included from: catch_message.hpp
+#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED
+
+namespace Catch {
+
+    MessageInfo::MessageInfo(   std::string const& _macroName,
+                                SourceLineInfo const& _lineInfo,
+                                ResultWas::OfType _type )
+    :   macroName( _macroName ),
+        lineInfo( _lineInfo ),
+        type( _type ),
+        sequence( ++globalCount )
+    {}
+
+    // This may need protecting if threading support is added
+    unsigned int MessageInfo::globalCount = 0;
+
+    ////////////////////////////////////////////////////////////////////////////
+
+    ScopedMessage::ScopedMessage( MessageBuilder const& builder )
+    : m_info( builder.m_info )
+    {
+        m_info.message = builder.m_stream.str();
+        getResultCapture().pushScopedMessage( m_info );
+    }
+    ScopedMessage::ScopedMessage( ScopedMessage const& other )
+    : m_info( other.m_info )
+    {}
+
+    ScopedMessage::~ScopedMessage() {
+        getResultCapture().popScopedMessage( m_info );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_legacy_reporter_adapter.hpp
+#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED
+
+// #included from: catch_legacy_reporter_adapter.h
+#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
+
+namespace Catch
+{
+    // Deprecated
+    struct IReporter : IShared {
+        virtual ~IReporter();
+
+        virtual bool shouldRedirectStdout() const = 0;
+
+        virtual void StartTesting() = 0;
+        virtual void EndTesting( Totals const& totals ) = 0;
+        virtual void StartGroup( std::string const& groupName ) = 0;
+        virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0;
+        virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0;
+        virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0;
+        virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0;
+        virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0;
+        virtual void NoAssertionsInSection( std::string const& sectionName ) = 0;
+        virtual void NoAssertionsInTestCase( std::string const& testName ) = 0;
+        virtual void Aborted() = 0;
+        virtual void Result( AssertionResult const& result ) = 0;
+    };
+
+    class LegacyReporterAdapter : public SharedImpl<IStreamingReporter>
+    {
+    public:
+        LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter );
+        virtual ~LegacyReporterAdapter();
+
+        virtual ReporterPreferences getPreferences() const;
+        virtual void noMatchingTestCases( std::string const& );
+        virtual void testRunStarting( TestRunInfo const& );
+        virtual void testGroupStarting( GroupInfo const& groupInfo );
+        virtual void testCaseStarting( TestCaseInfo const& testInfo );
+        virtual void sectionStarting( SectionInfo const& sectionInfo );
+        virtual void assertionStarting( AssertionInfo const& );
+        virtual bool assertionEnded( AssertionStats const& assertionStats );
+        virtual void sectionEnded( SectionStats const& sectionStats );
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats );
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats );
+        virtual void testRunEnded( TestRunStats const& testRunStats );
+        virtual void skipTest( TestCaseInfo const& );
+
+    private:
+        Ptr<IReporter> m_legacyReporter;
+    };
+}
+
+namespace Catch
+{
+    LegacyReporterAdapter::LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter )
+    :   m_legacyReporter( legacyReporter )
+    {}
+    LegacyReporterAdapter::~LegacyReporterAdapter() {}
+
+    ReporterPreferences LegacyReporterAdapter::getPreferences() const {
+        ReporterPreferences prefs;
+        prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout();
+        return prefs;
+    }
+
+    void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {}
+    void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) {
+        m_legacyReporter->StartTesting();
+    }
+    void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) {
+        m_legacyReporter->StartGroup( groupInfo.name );
+    }
+    void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) {
+        m_legacyReporter->StartTestCase( testInfo );
+    }
+    void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) {
+        m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description );
+    }
+    void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) {
+        // Not on legacy interface
+    }
+
+    bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) {
+        if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
+            for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
+                    it != itEnd;
+                    ++it ) {
+                if( it->type == ResultWas::Info ) {
+                    ResultBuilder rb( it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal );
+                    rb << it->message;
+                    rb.setResultType( ResultWas::Info );
+                    AssertionResult result = rb.build();
+                    m_legacyReporter->Result( result );
+                }
+            }
+        }
+        m_legacyReporter->Result( assertionStats.assertionResult );
+        return true;
+    }
+    void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) {
+        if( sectionStats.missingAssertions )
+            m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name );
+        m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions );
+    }
+    void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) {
+        m_legacyReporter->EndTestCase
+            (   testCaseStats.testInfo,
+                testCaseStats.totals,
+                testCaseStats.stdOut,
+                testCaseStats.stdErr );
+    }
+    void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) {
+        if( testGroupStats.aborting )
+            m_legacyReporter->Aborted();
+        m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals );
+    }
+    void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) {
+        m_legacyReporter->EndTesting( testRunStats.totals );
+    }
+    void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) {
+    }
+}
+
+// #included from: catch_timer.hpp
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++11-long-long"
+#endif
+
+#ifdef CATCH_PLATFORM_WINDOWS
+#else
+#include <sys/time.h>
+#endif
+
+namespace Catch {
+
+    namespace {
+#ifdef CATCH_PLATFORM_WINDOWS
+        uint64_t getCurrentTicks() {
+            static uint64_t hz=0, hzo=0;
+            if (!hz) {
+                QueryPerformanceFrequency( reinterpret_cast<LARGE_INTEGER*>( &hz ) );
+                QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &hzo ) );
+            }
+            uint64_t t;
+            QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &t ) );
+            return ((t-hzo)*1000000)/hz;
+        }
+#else
+        uint64_t getCurrentTicks() {
+            timeval t;
+            gettimeofday(&t,CATCH_NULL);
+            return static_cast<uint64_t>( t.tv_sec ) * 1000000ull + static_cast<uint64_t>( t.tv_usec );
+        }
+#endif
+    }
+
+    void Timer::start() {
+        m_ticks = getCurrentTicks();
+    }
+    unsigned int Timer::getElapsedMicroseconds() const {
+        return static_cast<unsigned int>(getCurrentTicks() - m_ticks);
+    }
+    unsigned int Timer::getElapsedMilliseconds() const {
+        return static_cast<unsigned int>(getElapsedMicroseconds()/1000);
+    }
+    double Timer::getElapsedSeconds() const {
+        return getElapsedMicroseconds()/1000000.0;
+    }
+
+} // namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+// #included from: catch_common.hpp
+#define TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED
+
+#include <cstring>
+
+namespace Catch {
+
+    bool startsWith( std::string const& s, std::string const& prefix ) {
+        return s.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), s.begin());
+    }
+    bool startsWith( std::string const& s, char prefix ) {
+        return !s.empty() && s[0] == prefix;
+    }
+    bool endsWith( std::string const& s, std::string const& suffix ) {
+        return s.size() >= suffix.size() && std::equal(suffix.rbegin(), suffix.rend(), s.rbegin());
+    }
+    bool endsWith( std::string const& s, char suffix ) {
+        return !s.empty() && s[s.size()-1] == suffix;
+    }
+    bool contains( std::string const& s, std::string const& infix ) {
+        return s.find( infix ) != std::string::npos;
+    }
+    bool contains( std::string const& s, char infix ) {
+        return s.find(infix) != std::string::npos;
+    }
+    char toLowerCh(char c) {
+        return static_cast<char>( ::tolower( c ) );
+    }
+    void toLowerInPlace( std::string& s ) {
+        std::transform( s.begin(), s.end(), s.begin(), toLowerCh );
+    }
+    std::string toLower( std::string const& s ) {
+        std::string lc = s;
+        toLowerInPlace( lc );
+        return lc;
+    }
+    std::string trim( std::string const& str ) {
+        static char const* whitespaceChars = "\n\r\t ";
+        std::string::size_type start = str.find_first_not_of( whitespaceChars );
+        std::string::size_type end = str.find_last_not_of( whitespaceChars );
+
+        return start != std::string::npos ? str.substr( start, 1+end-start ) : std::string();
+    }
+
+    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) {
+        bool replaced = false;
+        std::size_t i = str.find( replaceThis );
+        while( i != std::string::npos ) {
+            replaced = true;
+            str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() );
+            if( i < str.size()-withThis.size() )
+                i = str.find( replaceThis, i+withThis.size() );
+            else
+                i = std::string::npos;
+        }
+        return replaced;
+    }
+
+    pluralise::pluralise( std::size_t count, std::string const& label )
+    :   m_count( count ),
+        m_label( label )
+    {}
+
+    std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) {
+        os << pluraliser.m_count << ' ' << pluraliser.m_label;
+        if( pluraliser.m_count != 1 )
+            os << 's';
+        return os;
+    }
+
+    SourceLineInfo::SourceLineInfo() : file(""), line( 0 ){}
+    SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line )
+    :   file( _file ),
+        line( _line )
+    {}
+    bool SourceLineInfo::empty() const {
+        return file[0] == '\0';
+    }
+    bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const {
+        return line == other.line && (file == other.file || std::strcmp(file, other.file) == 0);
+    }
+    bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const {
+        return line < other.line || ( line == other.line && (std::strcmp(file, other.file) < 0));
+    }
+
+    void seedRng( IConfig const& config ) {
+        if( config.rngSeed() != 0 )
+            std::srand( config.rngSeed() );
+    }
+    unsigned int rngSeed() {
+        return getCurrentContext().getConfig()->rngSeed();
+    }
+
+    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) {
+#ifndef __GNUG__
+        os << info.file << '(' << info.line << ')';
+#else
+        os << info.file << ':' << info.line;
+#endif
+        return os;
+    }
+
+    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) {
+        std::ostringstream oss;
+        oss << locationInfo << ": Internal Catch error: '" << message << '\'';
+        if( alwaysTrue() )
+            throw std::logic_error( oss.str() );
+    }
+}
+
+// #included from: catch_section.hpp
+#define TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED
+
+namespace Catch {
+
+    SectionInfo::SectionInfo
+        (   SourceLineInfo const& _lineInfo,
+            std::string const& _name,
+            std::string const& _description )
+    :   name( _name ),
+        description( _description ),
+        lineInfo( _lineInfo )
+    {}
+
+    Section::Section( SectionInfo const& info )
+    :   m_info( info ),
+        m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) )
+    {
+        m_timer.start();
+    }
+
+    Section::~Section() {
+        if( m_sectionIncluded ) {
+            SectionEndInfo endInfo( m_info, m_assertions, m_timer.getElapsedSeconds() );
+            if( std::uncaught_exception() )
+                getResultCapture().sectionEndedEarly( endInfo );
+            else
+                getResultCapture().sectionEnded( endInfo );
+        }
+    }
+
+    // This indicates whether the section should be executed or not
+    Section::operator bool() const {
+        return m_sectionIncluded;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_debugger.hpp
+#define TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED
+
+#include <iostream>
+
+#ifdef CATCH_PLATFORM_MAC
+
+    #include <assert.h>
+    #include <stdbool.h>
+    #include <sys/types.h>
+    #include <unistd.h>
+    #include <sys/sysctl.h>
+
+    namespace Catch{
+
+        // The following function is taken directly from the following technical note:
+        // http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html
+
+        // Returns true if the current process is being debugged (either
+        // running under the debugger or has a debugger attached post facto).
+        bool isDebuggerActive(){
+
+            int                 mib[4];
+            struct kinfo_proc   info;
+            size_t              size;
+
+            // Initialize the flags so that, if sysctl fails for some bizarre
+            // reason, we get a predictable result.
+
+            info.kp_proc.p_flag = 0;
+
+            // Initialize mib, which tells sysctl the info we want, in this case
+            // we're looking for information about a specific process ID.
+
+            mib[0] = CTL_KERN;
+            mib[1] = KERN_PROC;
+            mib[2] = KERN_PROC_PID;
+            mib[3] = getpid();
+
+            // Call sysctl.
+
+            size = sizeof(info);
+            if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, CATCH_NULL, 0) != 0 ) {
+                Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl;
+                return false;
+            }
+
+            // We're being debugged if the P_TRACED flag is set.
+
+            return ( (info.kp_proc.p_flag & P_TRACED) != 0 );
+        }
+    } // namespace Catch
+
+#elif defined(CATCH_PLATFORM_LINUX)
+    #include <fstream>
+    #include <string>
+
+    namespace Catch{
+        // The standard POSIX way of detecting a debugger is to attempt to
+        // ptrace() the process, but this needs to be done from a child and not
+        // this process itself to still allow attaching to this process later
+        // if wanted, so is rather heavy. Under Linux we have the PID of the
+        // "debugger" (which doesn't need to be gdb, of course, it could also
+        // be strace, for example) in /proc/$PID/status, so just get it from
+        // there instead.
+        bool isDebuggerActive(){
+            std::ifstream in("/proc/self/status");
+            for( std::string line; std::getline(in, line); ) {
+                static const int PREFIX_LEN = 11;
+                if( line.compare(0, PREFIX_LEN, "TracerPid:\t") == 0 ) {
+                    // We're traced if the PID is not 0 and no other PID starts
+                    // with 0 digit, so it's enough to check for just a single
+                    // character.
+                    return line.length() > PREFIX_LEN && line[PREFIX_LEN] != '0';
+                }
+            }
+
+            return false;
+        }
+    } // namespace Catch
+#elif defined(_MSC_VER)
+    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
+    namespace Catch {
+        bool isDebuggerActive() {
+            return IsDebuggerPresent() != 0;
+        }
+    }
+#elif defined(__MINGW32__)
+    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
+    namespace Catch {
+        bool isDebuggerActive() {
+            return IsDebuggerPresent() != 0;
+        }
+    }
+#else
+    namespace Catch {
+       inline bool isDebuggerActive() { return false; }
+    }
+#endif // Platform
+
+#ifdef CATCH_PLATFORM_WINDOWS
+    extern "C" __declspec(dllimport) void __stdcall OutputDebugStringA( const char* );
+    namespace Catch {
+        void writeToDebugConsole( std::string const& text ) {
+            ::OutputDebugStringA( text.c_str() );
+        }
+    }
+#else
+    namespace Catch {
+        void writeToDebugConsole( std::string const& text ) {
+            // !TBD: Need a version for Mac/ XCode and other IDEs
+            Catch::cout() << text;
+        }
+    }
+#endif // Platform
+
+// #included from: catch_tostring.hpp
+#define TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
+
+namespace Catch {
+
+namespace Detail {
+
+    const std::string unprintableString = "{?}";
+
+    namespace {
+        const int hexThreshold = 255;
+
+        struct Endianness {
+            enum Arch { Big, Little };
+
+            static Arch which() {
+                union _{
+                    int asInt;
+                    char asChar[sizeof (int)];
+                } u;
+
+                u.asInt = 1;
+                return ( u.asChar[sizeof(int)-1] == 1 ) ? Big : Little;
+            }
+        };
+    }
+
+    std::string rawMemoryToString( const void *object, std::size_t size )
+    {
+        // Reverse order for little endian architectures
+        int i = 0, end = static_cast<int>( size ), inc = 1;
+        if( Endianness::which() == Endianness::Little ) {
+            i = end-1;
+            end = inc = -1;
+        }
+
+        unsigned char const *bytes = static_cast<unsigned char const *>(object);
+        std::ostringstream os;
+        os << "0x" << std::setfill('0') << std::hex;
+        for( ; i != end; i += inc )
+             os << std::setw(2) << static_cast<unsigned>(bytes[i]);
+       return os.str();
+    }
+}
+
+std::string toString( std::string const& value ) {
+    std::string s = value;
+    if( getCurrentContext().getConfig()->showInvisibles() ) {
+        for(size_t i = 0; i < s.size(); ++i ) {
+            std::string subs;
+            switch( s[i] ) {
+            case '\n': subs = "\\n"; break;
+            case '\t': subs = "\\t"; break;
+            default: break;
+            }
+            if( !subs.empty() ) {
+                s = s.substr( 0, i ) + subs + s.substr( i+1 );
+                ++i;
+            }
+        }
+    }
+    return '"' + s + '"';
+}
+std::string toString( std::wstring const& value ) {
+
+    std::string s;
+    s.reserve( value.size() );
+    for(size_t i = 0; i < value.size(); ++i )
+        s += value[i] <= 0xff ? static_cast<char>( value[i] ) : '?';
+    return Catch::toString( s );
+}
+
+std::string toString( const char* const value ) {
+    return value ? Catch::toString( std::string( value ) ) : std::string( "{null string}" );
+}
+
+std::string toString( char* const value ) {
+    return Catch::toString( static_cast<const char*>( value ) );
+}
+
+std::string toString( const wchar_t* const value )
+{
+    return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" );
+}
+
+std::string toString( wchar_t* const value )
+{
+    return Catch::toString( static_cast<const wchar_t*>( value ) );
+}
+
+std::string toString( int value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+
+std::string toString( unsigned long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+
+std::string toString( unsigned int value ) {
+    return Catch::toString( static_cast<unsigned long>( value ) );
+}
+
+template<typename T>
+std::string fpToString( T value, int precision ) {
+    std::ostringstream oss;
+    oss << std::setprecision( precision )
+        << std::fixed
+        << value;
+    std::string d = oss.str();
+    std::size_t i = d.find_last_not_of( '0' );
+    if( i != std::string::npos && i != d.size()-1 ) {
+        if( d[i] == '.' )
+            i++;
+        d = d.substr( 0, i+1 );
+    }
+    return d;
+}
+
+std::string toString( const double value ) {
+    return fpToString( value, 10 );
+}
+std::string toString( const float value ) {
+    return fpToString( value, 5 ) + 'f';
+}
+
+std::string toString( bool value ) {
+    return value ? "true" : "false";
+}
+
+std::string toString( char value ) {
+    if ( value == '\r' )
+        return "'\\r'";
+    if ( value == '\f' )
+        return "'\\f'";
+    if ( value == '\n' )
+        return "'\\n'";
+    if ( value == '\t' )
+        return "'\\t'";
+    if ( '\0' <= value && value < ' ' )
+        return toString( static_cast<unsigned int>( value ) );
+    char chstr[] = "' '";
+    chstr[1] = value;
+    return chstr;
+}
+
+std::string toString( signed char value ) {
+    return toString( static_cast<char>( value ) );
+}
+
+std::string toString( unsigned char value ) {
+    return toString( static_cast<char>( value ) );
+}
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+std::string toString( long long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+std::string toString( unsigned long long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+std::string toString( std::nullptr_t ) {
+    return "nullptr";
+}
+#endif
+
+#ifdef __OBJC__
+    std::string toString( NSString const * const& nsstring ) {
+        if( !nsstring )
+            return "nil";
+        return "@" + toString([nsstring UTF8String]);
+    }
+    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) {
+        if( !nsstring )
+            return "nil";
+        return "@" + toString([nsstring UTF8String]);
+    }
+    std::string toString( NSObject* const& nsObject ) {
+        return toString( [nsObject description] );
+    }
+#endif
+
+} // end namespace Catch
+
+// #included from: catch_result_builder.hpp
+#define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED
+
+namespace Catch {
+
+    std::string capturedExpressionWithSecondArgument( std::string const& capturedExpression, std::string const& secondArg ) {
+        return secondArg.empty() || secondArg == "\"\""
+            ? capturedExpression
+            : capturedExpression + ", " + secondArg;
+    }
+    ResultBuilder::ResultBuilder(   char const* macroName,
+                                    SourceLineInfo const& lineInfo,
+                                    char const* capturedExpression,
+                                    ResultDisposition::Flags resultDisposition,
+                                    char const* secondArg )
+    :   m_assertionInfo( macroName, lineInfo, capturedExpressionWithSecondArgument( capturedExpression, secondArg ), resultDisposition ),
+        m_shouldDebugBreak( false ),
+        m_shouldThrow( false )
+    {}
+
+    ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) {
+        m_data.resultType = result;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setResultType( bool result ) {
+        m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed;
+        return *this;
+    }
+
+    void ResultBuilder::endExpression( DecomposedExpression const& expr ) {
+        AssertionResult result = build( expr );
+        handleResult( result );
+    }
+
+    void ResultBuilder::useActiveException( ResultDisposition::Flags resultDisposition ) {
+        m_assertionInfo.resultDisposition = resultDisposition;
+        m_stream.oss << Catch::translateActiveException();
+        captureResult( ResultWas::ThrewException );
+    }
+
+    void ResultBuilder::captureResult( ResultWas::OfType resultType ) {
+        setResultType( resultType );
+        captureExpression();
+    }
+
+    void ResultBuilder::captureExpectedException( std::string const& expectedMessage ) {
+        if( expectedMessage.empty() )
+            captureExpectedException( Matchers::Impl::Generic::AllOf<std::string>() );
+        else
+            captureExpectedException( Matchers::Equals( expectedMessage ) );
+    }
+
+    void ResultBuilder::captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher ) {
+
+        assert( !isFalseTest( m_assertionInfo.resultDisposition ) );
+        AssertionResultData data = m_data;
+        data.resultType = ResultWas::Ok;
+        data.reconstructedExpression = m_assertionInfo.capturedExpression;
+
+        std::string actualMessage = Catch::translateActiveException();
+        if( !matcher.match( actualMessage ) ) {
+            data.resultType = ResultWas::ExpressionFailed;
+            data.reconstructedExpression = actualMessage;
+        }
+        AssertionResult result( m_assertionInfo, data );
+        handleResult( result );
+    }
+
+    void ResultBuilder::captureExpression() {
+        AssertionResult result = build();
+        handleResult( result );
+    }
+
+    void ResultBuilder::handleResult( AssertionResult const& result )
+    {
+        getResultCapture().assertionEnded( result );
+
+        if( !result.isOk() ) {
+            if( getCurrentContext().getConfig()->shouldDebugBreak() )
+                m_shouldDebugBreak = true;
+            if( getCurrentContext().getRunner()->aborting() || (m_assertionInfo.resultDisposition & ResultDisposition::Normal) )
+                m_shouldThrow = true;
+        }
+    }
+
+    void ResultBuilder::react() {
+        if( m_shouldThrow )
+            throw Catch::TestFailureException();
+    }
+
+    bool ResultBuilder::shouldDebugBreak() const { return m_shouldDebugBreak; }
+    bool ResultBuilder::allowThrows() const { return getCurrentContext().getConfig()->allowThrows(); }
+
+    AssertionResult ResultBuilder::build() const
+    {
+        return build( *this );
+    }
+
+    // CAVEAT: The returned AssertionResult stores a pointer to the argument expr,
+    //         a temporary DecomposedExpression, which in turn holds references to
+    //         operands, possibly temporary as well.
+    //         It should immediately be passed to handleResult; if the expression
+    //         needs to be reported, its string expansion must be composed before
+    //         the temporaries are destroyed.
+    AssertionResult ResultBuilder::build( DecomposedExpression const& expr ) const
+    {
+        assert( m_data.resultType != ResultWas::Unknown );
+        AssertionResultData data = m_data;
+
+        // Flip bool results if FalseTest flag is set
+        if( isFalseTest( m_assertionInfo.resultDisposition ) ) {
+            data.negate( expr.isBinaryExpression() );
+        }
+
+        data.message = m_stream.oss.str();
+        data.decomposedExpression = &expr; // for lazy reconstruction
+        return AssertionResult( m_assertionInfo, data );
+    }
+
+    void ResultBuilder::reconstructExpression( std::string& dest ) const {
+        dest = m_assertionInfo.capturedExpression;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_tag_alias_registry.hpp
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED
+
+// #included from: catch_tag_alias_registry.h
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+#include <map>
+
+namespace Catch {
+
+    class TagAliasRegistry : public ITagAliasRegistry {
+    public:
+        virtual ~TagAliasRegistry();
+        virtual Option<TagAlias> find( std::string const& alias ) const;
+        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const;
+        void add( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+        static TagAliasRegistry& get();
+
+    private:
+        std::map<std::string, TagAlias> m_registry;
+    };
+
+} // end namespace Catch
+
+#include <map>
+#include <iostream>
+
+namespace Catch {
+
+    TagAliasRegistry::~TagAliasRegistry() {}
+
+    Option<TagAlias> TagAliasRegistry::find( std::string const& alias ) const {
+        std::map<std::string, TagAlias>::const_iterator it = m_registry.find( alias );
+        if( it != m_registry.end() )
+            return it->second;
+        else
+            return Option<TagAlias>();
+    }
+
+    std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const {
+        std::string expandedTestSpec = unexpandedTestSpec;
+        for( std::map<std::string, TagAlias>::const_iterator it = m_registry.begin(), itEnd = m_registry.end();
+                it != itEnd;
+                ++it ) {
+            std::size_t pos = expandedTestSpec.find( it->first );
+            if( pos != std::string::npos ) {
+                expandedTestSpec =  expandedTestSpec.substr( 0, pos ) +
+                                    it->second.tag +
+                                    expandedTestSpec.substr( pos + it->first.size() );
+            }
+        }
+        return expandedTestSpec;
+    }
+
+    void TagAliasRegistry::add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
+
+        if( !startsWith( alias, "[@" ) || !endsWith( alias, ']' ) ) {
+            std::ostringstream oss;
+            oss << "error: tag alias, \"" << alias << "\" is not of the form [@alias name].\n" << lineInfo;
+            throw std::domain_error( oss.str().c_str() );
+        }
+        if( !m_registry.insert( std::make_pair( alias, TagAlias( tag, lineInfo ) ) ).second ) {
+            std::ostringstream oss;
+            oss << "error: tag alias, \"" << alias << "\" already registered.\n"
+                << "\tFirst seen at " << find(alias)->lineInfo << '\n'
+                << "\tRedefined at " << lineInfo;
+            throw std::domain_error( oss.str().c_str() );
+        }
+    }
+
+    TagAliasRegistry& TagAliasRegistry::get() {
+        static TagAliasRegistry instance;
+        return instance;
+
+    }
+
+    ITagAliasRegistry::~ITagAliasRegistry() {}
+    ITagAliasRegistry const& ITagAliasRegistry::get() { return TagAliasRegistry::get(); }
+
+    RegistrarForTagAliases::RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
+        try {
+            TagAliasRegistry::get().add( alias, tag, lineInfo );
+        }
+        catch( std::exception& ex ) {
+            Colour colourGuard( Colour::Red );
+            Catch::cerr() << ex.what() << std::endl;
+            exit(1);
+        }
+    }
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_multi.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED
+
+namespace Catch {
+
+class MultipleReporters : public SharedImpl<IStreamingReporter> {
+    typedef std::vector<Ptr<IStreamingReporter> > Reporters;
+    Reporters m_reporters;
+
+public:
+    void add( Ptr<IStreamingReporter> const& reporter ) {
+        m_reporters.push_back( reporter );
+    }
+
+public: // IStreamingReporter
+
+    virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+        return m_reporters[0]->getPreferences();
+    }
+
+    virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->noMatchingTestCases( spec );
+    }
+
+    virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testRunStarting( testRunInfo );
+    }
+
+    virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testGroupStarting( groupInfo );
+    }
+
+    virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testCaseStarting( testInfo );
+    }
+
+    virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->sectionStarting( sectionInfo );
+    }
+
+    virtual void assertionStarting( AssertionInfo const& assertionInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->assertionStarting( assertionInfo );
+    }
+
+    // The return value indicates if the messages buffer should be cleared:
+    virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+        bool clearBuffer = false;
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            clearBuffer |= (*it)->assertionEnded( assertionStats );
+        return clearBuffer;
+    }
+
+    virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->sectionEnded( sectionStats );
+    }
+
+    virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testCaseEnded( testCaseStats );
+    }
+
+    virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testGroupEnded( testGroupStats );
+    }
+
+    virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testRunEnded( testRunStats );
+    }
+
+    virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->skipTest( testInfo );
+    }
+
+    virtual MultipleReporters* tryAsMulti() CATCH_OVERRIDE {
+        return this;
+    }
+
+};
+
+Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter ) {
+    Ptr<IStreamingReporter> resultingReporter;
+
+    if( existingReporter ) {
+        MultipleReporters* multi = existingReporter->tryAsMulti();
+        if( !multi ) {
+            multi = new MultipleReporters;
+            resultingReporter = Ptr<IStreamingReporter>( multi );
+            if( existingReporter )
+                multi->add( existingReporter );
+        }
+        else
+            resultingReporter = existingReporter;
+        multi->add( additionalReporter );
+    }
+    else
+        resultingReporter = additionalReporter;
+
+    return resultingReporter;
+}
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_xml.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED
+
+// #included from: catch_reporter_bases.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED
+
+#include <cstring>
+
+namespace Catch {
+
+    struct StreamingReporterBase : SharedImpl<IStreamingReporter> {
+
+        StreamingReporterBase( ReporterConfig const& _config )
+        :   m_config( _config.fullConfig() ),
+            stream( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = false;
+        }
+
+        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+            return m_reporterPrefs;
+        }
+
+        virtual ~StreamingReporterBase() CATCH_OVERRIDE;
+
+        virtual void noMatchingTestCases( std::string const& ) CATCH_OVERRIDE {}
+
+        virtual void testRunStarting( TestRunInfo const& _testRunInfo ) CATCH_OVERRIDE {
+            currentTestRunInfo = _testRunInfo;
+        }
+        virtual void testGroupStarting( GroupInfo const& _groupInfo ) CATCH_OVERRIDE {
+            currentGroupInfo = _groupInfo;
+        }
+
+        virtual void testCaseStarting( TestCaseInfo const& _testInfo ) CATCH_OVERRIDE {
+            currentTestCaseInfo = _testInfo;
+        }
+        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
+            m_sectionStack.push_back( _sectionInfo );
+        }
+
+        virtual void sectionEnded( SectionStats const& /* _sectionStats */ ) CATCH_OVERRIDE {
+            m_sectionStack.pop_back();
+        }
+        virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats */ ) CATCH_OVERRIDE {
+            currentTestCaseInfo.reset();
+        }
+        virtual void testGroupEnded( TestGroupStats const& /* _testGroupStats */ ) CATCH_OVERRIDE {
+            currentGroupInfo.reset();
+        }
+        virtual void testRunEnded( TestRunStats const& /* _testRunStats */ ) CATCH_OVERRIDE {
+            currentTestCaseInfo.reset();
+            currentGroupInfo.reset();
+            currentTestRunInfo.reset();
+        }
+
+        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {
+            // Don't do anything with this by default.
+            // It can optionally be overridden in the derived class.
+        }
+
+        Ptr<IConfig const> m_config;
+        std::ostream& stream;
+
+        LazyStat<TestRunInfo> currentTestRunInfo;
+        LazyStat<GroupInfo> currentGroupInfo;
+        LazyStat<TestCaseInfo> currentTestCaseInfo;
+
+        std::vector<SectionInfo> m_sectionStack;
+        ReporterPreferences m_reporterPrefs;
+    };
+
+    struct CumulativeReporterBase : SharedImpl<IStreamingReporter> {
+        template<typename T, typename ChildNodeT>
+        struct Node : SharedImpl<> {
+            explicit Node( T const& _value ) : value( _value ) {}
+            virtual ~Node() {}
+
+            typedef std::vector<Ptr<ChildNodeT> > ChildNodes;
+            T value;
+            ChildNodes children;
+        };
+        struct SectionNode : SharedImpl<> {
+            explicit SectionNode( SectionStats const& _stats ) : stats( _stats ) {}
+            virtual ~SectionNode();
+
+            bool operator == ( SectionNode const& other ) const {
+                return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo;
+            }
+            bool operator == ( Ptr<SectionNode> const& other ) const {
+                return operator==( *other );
+            }
+
+            SectionStats stats;
+            typedef std::vector<Ptr<SectionNode> > ChildSections;
+            typedef std::vector<AssertionStats> Assertions;
+            ChildSections childSections;
+            Assertions assertions;
+            std::string stdOut;
+            std::string stdErr;
+        };
+
+        struct BySectionInfo {
+            BySectionInfo( SectionInfo const& other ) : m_other( other ) {}
+            BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {}
+            bool operator() ( Ptr<SectionNode> const& node ) const {
+                return node->stats.sectionInfo.lineInfo == m_other.lineInfo;
+            }
+        private:
+            void operator=( BySectionInfo const& );
+            SectionInfo const& m_other;
+        };
+
+        typedef Node<TestCaseStats, SectionNode> TestCaseNode;
+        typedef Node<TestGroupStats, TestCaseNode> TestGroupNode;
+        typedef Node<TestRunStats, TestGroupNode> TestRunNode;
+
+        CumulativeReporterBase( ReporterConfig const& _config )
+        :   m_config( _config.fullConfig() ),
+            stream( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = false;
+        }
+        ~CumulativeReporterBase();
+
+        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+            return m_reporterPrefs;
+        }
+
+        virtual void testRunStarting( TestRunInfo const& ) CATCH_OVERRIDE {}
+        virtual void testGroupStarting( GroupInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void testCaseStarting( TestCaseInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+            SectionStats incompleteStats( sectionInfo, Counts(), 0, false );
+            Ptr<SectionNode> node;
+            if( m_sectionStack.empty() ) {
+                if( !m_rootSection )
+                    m_rootSection = new SectionNode( incompleteStats );
+                node = m_rootSection;
+            }
+            else {
+                SectionNode& parentNode = *m_sectionStack.back();
+                SectionNode::ChildSections::const_iterator it =
+                    std::find_if(   parentNode.childSections.begin(),
+                                    parentNode.childSections.end(),
+                                    BySectionInfo( sectionInfo ) );
+                if( it == parentNode.childSections.end() ) {
+                    node = new SectionNode( incompleteStats );
+                    parentNode.childSections.push_back( node );
+                }
+                else
+                    node = *it;
+            }
+            m_sectionStack.push_back( node );
+            m_deepestSection = node;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            assert( !m_sectionStack.empty() );
+            SectionNode& sectionNode = *m_sectionStack.back();
+            sectionNode.assertions.push_back( assertionStats );
+            // AssertionResult holds a pointer to a temporary DecomposedExpression,
+            // which getExpandedExpression() calls to build the expression string.
+            // Our section stack copy of the assertionResult will likely outlive the
+            // temporary, so it must be expanded or discarded now to avoid calling
+            // a destroyed object later.
+            prepareExpandedExpression( sectionNode.assertions.back().assertionResult );
+            return true;
+        }
+        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+            assert( !m_sectionStack.empty() );
+            SectionNode& node = *m_sectionStack.back();
+            node.stats = sectionStats;
+            m_sectionStack.pop_back();
+        }
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            Ptr<TestCaseNode> node = new TestCaseNode( testCaseStats );
+            assert( m_sectionStack.size() == 0 );
+            node->children.push_back( m_rootSection );
+            m_testCases.push_back( node );
+            m_rootSection.reset();
+
+            assert( m_deepestSection );
+            m_deepestSection->stdOut = testCaseStats.stdOut;
+            m_deepestSection->stdErr = testCaseStats.stdErr;
+        }
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            Ptr<TestGroupNode> node = new TestGroupNode( testGroupStats );
+            node->children.swap( m_testCases );
+            m_testGroups.push_back( node );
+        }
+        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+            Ptr<TestRunNode> node = new TestRunNode( testRunStats );
+            node->children.swap( m_testGroups );
+            m_testRuns.push_back( node );
+            testRunEndedCumulative();
+        }
+        virtual void testRunEndedCumulative() = 0;
+
+        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void prepareExpandedExpression( AssertionResult& result ) const {
+            if( result.isOk() )
+                result.discardDecomposedExpression();
+            else
+                result.expandDecomposedExpression();
+        }
+
+        Ptr<IConfig const> m_config;
+        std::ostream& stream;
+        std::vector<AssertionStats> m_assertions;
+        std::vector<std::vector<Ptr<SectionNode> > > m_sections;
+        std::vector<Ptr<TestCaseNode> > m_testCases;
+        std::vector<Ptr<TestGroupNode> > m_testGroups;
+
+        std::vector<Ptr<TestRunNode> > m_testRuns;
+
+        Ptr<SectionNode> m_rootSection;
+        Ptr<SectionNode> m_deepestSection;
+        std::vector<Ptr<SectionNode> > m_sectionStack;
+        ReporterPreferences m_reporterPrefs;
+
+    };
+
+    template<char C>
+    char const* getLineOfChars() {
+        static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0};
+        if( !*line ) {
+            memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 );
+            line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0;
+        }
+        return line;
+    }
+
+    struct TestEventListenerBase : StreamingReporterBase {
+        TestEventListenerBase( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config )
+        {}
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
+        virtual bool assertionEnded( AssertionStats const& ) CATCH_OVERRIDE {
+            return false;
+        }
+    };
+
+} // end namespace Catch
+
+// #included from: ../internal/catch_reporter_registrars.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
+
+namespace Catch {
+
+    template<typename T>
+    class LegacyReporterRegistrar {
+
+        class ReporterFactory : public IReporterFactory {
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new LegacyReporterAdapter( new T( config ) );
+            }
+
+            virtual std::string getDescription() const {
+                return T::getDescription();
+            }
+        };
+
+    public:
+
+        LegacyReporterRegistrar( std::string const& name ) {
+            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
+        }
+    };
+
+    template<typename T>
+    class ReporterRegistrar {
+
+        class ReporterFactory : public SharedImpl<IReporterFactory> {
+
+            // *** Please Note ***:
+            // - If you end up here looking at a compiler error because it's trying to register
+            // your custom reporter class be aware that the native reporter interface has changed
+            // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via
+            // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter.
+            // However please consider updating to the new interface as the old one is now
+            // deprecated and will probably be removed quite soon!
+            // Please contact me via github if you have any questions at all about this.
+            // In fact, ideally, please contact me anyway to let me know you've hit this - as I have
+            // no idea who is actually using custom reporters at all (possibly no-one!).
+            // The new interface is designed to minimise exposure to interface changes in the future.
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new T( config );
+            }
+
+            virtual std::string getDescription() const {
+                return T::getDescription();
+            }
+        };
+
+    public:
+
+        ReporterRegistrar( std::string const& name ) {
+            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
+        }
+    };
+
+    template<typename T>
+    class ListenerRegistrar {
+
+        class ListenerFactory : public SharedImpl<IReporterFactory> {
+
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new T( config );
+            }
+            virtual std::string getDescription() const {
+                return std::string();
+            }
+        };
+
+    public:
+
+        ListenerRegistrar() {
+            getMutableRegistryHub().registerListener( new ListenerFactory() );
+        }
+    };
+}
+
+#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \
+    namespace{ Catch::LegacyReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
+
+#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \
+    namespace{ Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
+
+#define INTERNAL_CATCH_REGISTER_LISTENER( listenerType ) \
+    namespace{ Catch::ListenerRegistrar<listenerType> catch_internal_RegistrarFor##listenerType; }
+
+// #included from: ../internal/catch_xmlwriter.hpp
+#define TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED
+
+#include <sstream>
+#include <string>
+#include <vector>
+#include <iomanip>
+
+namespace Catch {
+
+    class XmlEncode {
+    public:
+        enum ForWhat { ForTextNodes, ForAttributes };
+
+        XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes )
+        :   m_str( str ),
+            m_forWhat( forWhat )
+        {}
+
+        void encodeTo( std::ostream& os ) const {
+
+            // Apostrophe escaping not necessary if we always use " to write attributes
+            // (see: http://www.w3.org/TR/xml/#syntax)
+
+            for( std::size_t i = 0; i < m_str.size(); ++ i ) {
+                char c = m_str[i];
+                switch( c ) {
+                    case '<':   os << "&lt;"; break;
+                    case '&':   os << "&amp;"; break;
+
+                    case '>':
+                        // See: http://www.w3.org/TR/xml/#syntax
+                        if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' )
+                            os << "&gt;";
+                        else
+                            os << c;
+                        break;
+
+                    case '\"':
+                        if( m_forWhat == ForAttributes )
+                            os << "&quot;";
+                        else
+                            os << c;
+                        break;
+
+                    default:
+                        // Escape control chars - based on contribution by @espenalb in PR #465 and
+                        // by @mrpi PR #588
+                        if ( ( c >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' )
+                            os << "&#x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2) << static_cast<int>( c ) << ';';
+                        else
+                            os << c;
+                }
+            }
+        }
+
+        friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) {
+            xmlEncode.encodeTo( os );
+            return os;
+        }
+
+    private:
+        std::string m_str;
+        ForWhat m_forWhat;
+    };
+
+    class XmlWriter {
+    public:
+
+        class ScopedElement {
+        public:
+            ScopedElement( XmlWriter* writer )
+            :   m_writer( writer )
+            {}
+
+            ScopedElement( ScopedElement const& other )
+            :   m_writer( other.m_writer ){
+                other.m_writer = CATCH_NULL;
+            }
+
+            ~ScopedElement() {
+                if( m_writer )
+                    m_writer->endElement();
+            }
+
+            ScopedElement& writeText( std::string const& text, bool indent = true ) {
+                m_writer->writeText( text, indent );
+                return *this;
+            }
+
+            template<typename T>
+            ScopedElement& writeAttribute( std::string const& name, T const& attribute ) {
+                m_writer->writeAttribute( name, attribute );
+                return *this;
+            }
+
+        private:
+            mutable XmlWriter* m_writer;
+        };
+
+        XmlWriter()
+        :   m_tagIsOpen( false ),
+            m_needsNewline( false ),
+            m_os( &Catch::cout() )
+        {
+            // We encode control characters, which requires
+            // XML 1.1
+            // see http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0
+            *m_os << "<?xml version=\"1.1\" encoding=\"UTF-8\"?>\n";
+        }
+
+        XmlWriter( std::ostream& os )
+        :   m_tagIsOpen( false ),
+            m_needsNewline( false ),
+            m_os( &os )
+        {
+            *m_os << "<?xml version=\"1.1\" encoding=\"UTF-8\"?>\n";
+        }
+
+        ~XmlWriter() {
+            while( !m_tags.empty() )
+                endElement();
+        }
+
+        XmlWriter& startElement( std::string const& name ) {
+            ensureTagClosed();
+            newlineIfNecessary();
+            stream() << m_indent << '<' << name;
+            m_tags.push_back( name );
+            m_indent += "  ";
+            m_tagIsOpen = true;
+            return *this;
+        }
+
+        ScopedElement scopedElement( std::string const& name ) {
+            ScopedElement scoped( this );
+            startElement( name );
+            return scoped;
+        }
+
+        XmlWriter& endElement() {
+            newlineIfNecessary();
+            m_indent = m_indent.substr( 0, m_indent.size()-2 );
+            if( m_tagIsOpen ) {
+                stream() << "/>\n";
+                m_tagIsOpen = false;
+            }
+            else {
+                stream() << m_indent << "</" << m_tags.back() << ">\n";
+            }
+            m_tags.pop_back();
+            return *this;
+        }
+
+        XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) {
+            if( !name.empty() && !attribute.empty() )
+                stream() << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"';
+            return *this;
+        }
+
+        XmlWriter& writeAttribute( std::string const& name, bool attribute ) {
+            stream() << ' ' << name << "=\"" << ( attribute ? "true" : "false" ) << '"';
+            return *this;
+        }
+
+        template<typename T>
+        XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
+            std::ostringstream oss;
+            oss << attribute;
+            return writeAttribute( name, oss.str() );
+        }
+
+        XmlWriter& writeText( std::string const& text, bool indent = true ) {
+            if( !text.empty() ){
+                bool tagWasOpen = m_tagIsOpen;
+                ensureTagClosed();
+                if( tagWasOpen && indent )
+                    stream() << m_indent;
+                stream() << XmlEncode( text );
+                m_needsNewline = true;
+            }
+            return *this;
+        }
+
+        XmlWriter& writeComment( std::string const& text ) {
+            ensureTagClosed();
+            stream() << m_indent << "<!--" << text << "-->";
+            m_needsNewline = true;
+            return *this;
+        }
+
+        XmlWriter& writeBlankLine() {
+            ensureTagClosed();
+            stream() << '\n';
+            return *this;
+        }
+
+        void setStream( std::ostream& os ) {
+            m_os = &os;
+        }
+
+    private:
+        XmlWriter( XmlWriter const& );
+        void operator=( XmlWriter const& );
+
+        std::ostream& stream() {
+            return *m_os;
+        }
+
+        void ensureTagClosed() {
+            if( m_tagIsOpen ) {
+                stream() << ">\n";
+                m_tagIsOpen = false;
+            }
+        }
+
+        void newlineIfNecessary() {
+            if( m_needsNewline ) {
+                stream() << '\n';
+                m_needsNewline = false;
+            }
+        }
+
+        bool m_tagIsOpen;
+        bool m_needsNewline;
+        std::vector<std::string> m_tags;
+        std::string m_indent;
+        std::ostream* m_os;
+    };
+
+}
+// #included from: catch_reenable_warnings.h
+
+#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED
+
+#ifdef __clang__
+#    ifdef __ICC // icpc defines the __clang__ macro
+#        pragma warning(pop)
+#    else
+#        pragma clang diagnostic pop
+#    endif
+#elif defined __GNUC__
+#    pragma GCC diagnostic pop
+#endif
+
+
+namespace Catch {
+    class XmlReporter : public StreamingReporterBase {
+    public:
+        XmlReporter( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config ),
+            m_xml(_config.stream()),
+            m_sectionDepth( 0 )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = true;
+        }
+
+        virtual ~XmlReporter() CATCH_OVERRIDE;
+
+        static std::string getDescription() {
+            return "Reports test results as an XML document";
+        }
+
+    public: // StreamingReporterBase
+
+        virtual void noMatchingTestCases( std::string const& s ) CATCH_OVERRIDE {
+            StreamingReporterBase::noMatchingTestCases( s );
+        }
+
+        virtual void testRunStarting( TestRunInfo const& testInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testRunStarting( testInfo );
+            m_xml.startElement( "Catch" );
+            if( !m_config->name().empty() )
+                m_xml.writeAttribute( "name", m_config->name() );
+        }
+
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testGroupStarting( groupInfo );
+            m_xml.startElement( "Group" )
+                .writeAttribute( "name", groupInfo.name );
+        }
+
+        virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseStarting(testInfo);
+            m_xml.startElement( "TestCase" ).writeAttribute( "name", testInfo.name );
+
+            if ( m_config->showDurations() == ShowDurations::Always )
+                m_testCaseTimer.start();
+        }
+
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::sectionStarting( sectionInfo );
+            if( m_sectionDepth++ > 0 ) {
+                m_xml.startElement( "Section" )
+                    .writeAttribute( "name", trim( sectionInfo.name ) )
+                    .writeAttribute( "description", sectionInfo.description );
+            }
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { }
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            const AssertionResult& assertionResult = assertionStats.assertionResult;
+
+            // Print any info messages in <Info> tags.
+            if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
+                for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
+                        it != itEnd;
+                        ++it ) {
+                    if( it->type == ResultWas::Info ) {
+                        m_xml.scopedElement( "Info" )
+                            .writeText( it->message );
+                    } else if ( it->type == ResultWas::Warning ) {
+                        m_xml.scopedElement( "Warning" )
+                            .writeText( it->message );
+                    }
+                }
+            }
+
+            // Drop out if result was successful but we're not printing them.
+            if( !m_config->includeSuccessfulResults() && isOk(assertionResult.getResultType()) )
+                return true;
+
+            // Print the expression if there is one.
+            if( assertionResult.hasExpression() ) {
+                m_xml.startElement( "Expression" )
+                    .writeAttribute( "success", assertionResult.succeeded() )
+                    .writeAttribute( "type", assertionResult.getTestMacroName() )
+                    .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                    .writeAttribute( "line", assertionResult.getSourceInfo().line );
+
+                m_xml.scopedElement( "Original" )
+                    .writeText( assertionResult.getExpression() );
+                m_xml.scopedElement( "Expanded" )
+                    .writeText( assertionResult.getExpandedExpression() );
+            }
+
+            // And... Print a result applicable to each result type.
+            switch( assertionResult.getResultType() ) {
+                case ResultWas::ThrewException:
+                    m_xml.scopedElement( "Exception" )
+                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::FatalErrorCondition:
+                    m_xml.scopedElement( "FatalErrorCondition" )
+                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::Info:
+                    m_xml.scopedElement( "Info" )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::Warning:
+                    // Warning will already have been written
+                    break;
+                case ResultWas::ExplicitFailure:
+                    m_xml.scopedElement( "Failure" )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                default:
+                    break;
+            }
+
+            if( assertionResult.hasExpression() )
+                m_xml.endElement();
+
+            return true;
+        }
+
+        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::sectionEnded( sectionStats );
+            if( --m_sectionDepth > 0 ) {
+                XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" );
+                e.writeAttribute( "successes", sectionStats.assertions.passed );
+                e.writeAttribute( "failures", sectionStats.assertions.failed );
+                e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk );
+
+                if ( m_config->showDurations() == ShowDurations::Always )
+                    e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds );
+
+                m_xml.endElement();
+            }
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseEnded( testCaseStats );
+            XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" );
+            e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() );
+
+            if ( m_config->showDurations() == ShowDurations::Always )
+                e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() );
+
+            m_xml.endElement();
+        }
+
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testGroupEnded( testGroupStats );
+            // TODO: Check testGroupStats.aborting and act accordingly.
+            m_xml.scopedElement( "OverallResults" )
+                .writeAttribute( "successes", testGroupStats.totals.assertions.passed )
+                .writeAttribute( "failures", testGroupStats.totals.assertions.failed )
+                .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk );
+            m_xml.endElement();
+        }
+
+        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testRunEnded( testRunStats );
+            m_xml.scopedElement( "OverallResults" )
+                .writeAttribute( "successes", testRunStats.totals.assertions.passed )
+                .writeAttribute( "failures", testRunStats.totals.assertions.failed )
+                .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk );
+            m_xml.endElement();
+        }
+
+    private:
+        Timer m_testCaseTimer;
+        XmlWriter m_xml;
+        int m_sectionDepth;
+    };
+
+     INTERNAL_CATCH_REGISTER_REPORTER( "xml", XmlReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_junit.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED
+
+#include <assert.h>
+
+namespace Catch {
+
+    namespace {
+        std::string getCurrentTimestamp() {
+            // Beware, this is not reentrant because of backward compatibility issues
+            // Also, UTC only, again because of backward compatibility (%z is C++11)
+            time_t rawtime;
+            std::time(&rawtime);
+            const size_t timeStampSize = sizeof("2017-01-16T17:06:45Z");
+
+#ifdef CATCH_PLATFORM_WINDOWS
+            std::tm timeInfo = {};
+            gmtime_s(&timeInfo, &rawtime);
+#else
+            std::tm* timeInfo;
+            timeInfo = std::gmtime(&rawtime);
+#endif
+
+            char timeStamp[timeStampSize];
+            const char * const fmt = "%Y-%m-%dT%H:%M:%SZ";
+
+#ifdef CATCH_PLATFORM_WINDOWS
+            std::strftime(timeStamp, timeStampSize, fmt, &timeInfo);
+#else
+            std::strftime(timeStamp, timeStampSize, fmt, timeInfo);
+#endif
+            return std::string(timeStamp);
+        }
+
+    }
+
+    class JunitReporter : public CumulativeReporterBase {
+    public:
+        JunitReporter( ReporterConfig const& _config )
+        :   CumulativeReporterBase( _config ),
+            xml( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = true;
+        }
+
+        virtual ~JunitReporter() CATCH_OVERRIDE;
+
+        static std::string getDescription() {
+            return "Reports test results in an XML format that looks like Ant's junitreport target";
+        }
+
+        virtual void noMatchingTestCases( std::string const& /*spec*/ ) CATCH_OVERRIDE {}
+
+        virtual void testRunStarting( TestRunInfo const& runInfo ) CATCH_OVERRIDE {
+            CumulativeReporterBase::testRunStarting( runInfo );
+            xml.startElement( "testsuites" );
+        }
+
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+            suiteTimer.start();
+            stdOutForSuite.str("");
+            stdErrForSuite.str("");
+            unexpectedExceptions = 0;
+            CumulativeReporterBase::testGroupStarting( groupInfo );
+        }
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException )
+                unexpectedExceptions++;
+            return CumulativeReporterBase::assertionEnded( assertionStats );
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            stdOutForSuite << testCaseStats.stdOut;
+            stdErrForSuite << testCaseStats.stdErr;
+            CumulativeReporterBase::testCaseEnded( testCaseStats );
+        }
+
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            double suiteTime = suiteTimer.getElapsedSeconds();
+            CumulativeReporterBase::testGroupEnded( testGroupStats );
+            writeGroup( *m_testGroups.back(), suiteTime );
+        }
+
+        virtual void testRunEndedCumulative() CATCH_OVERRIDE {
+            xml.endElement();
+        }
+
+        void writeGroup( TestGroupNode const& groupNode, double suiteTime ) {
+            XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" );
+            TestGroupStats const& stats = groupNode.value;
+            xml.writeAttribute( "name", stats.groupInfo.name );
+            xml.writeAttribute( "errors", unexpectedExceptions );
+            xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions );
+            xml.writeAttribute( "tests", stats.totals.assertions.total() );
+            xml.writeAttribute( "hostname", "tbd" ); // !TBD
+            if( m_config->showDurations() == ShowDurations::Never )
+                xml.writeAttribute( "time", "" );
+            else
+                xml.writeAttribute( "time", suiteTime );
+            xml.writeAttribute( "timestamp", getCurrentTimestamp() );
+
+            // Write test cases
+            for( TestGroupNode::ChildNodes::const_iterator
+                    it = groupNode.children.begin(), itEnd = groupNode.children.end();
+                    it != itEnd;
+                    ++it )
+                writeTestCase( **it );
+
+            xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite.str() ), false );
+            xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite.str() ), false );
+        }
+
+        void writeTestCase( TestCaseNode const& testCaseNode ) {
+            TestCaseStats const& stats = testCaseNode.value;
+
+            // All test cases have exactly one section - which represents the
+            // test case itself. That section may have 0-n nested sections
+            assert( testCaseNode.children.size() == 1 );
+            SectionNode const& rootSection = *testCaseNode.children.front();
+
+            std::string className = stats.testInfo.className;
+
+            if( className.empty() ) {
+                if( rootSection.childSections.empty() )
+                    className = "global";
+            }
+            writeSection( className, "", rootSection );
+        }
+
+        void writeSection(  std::string const& className,
+                            std::string const& rootName,
+                            SectionNode const& sectionNode ) {
+            std::string name = trim( sectionNode.stats.sectionInfo.name );
+            if( !rootName.empty() )
+                name = rootName + '/' + name;
+
+            if( !sectionNode.assertions.empty() ||
+                !sectionNode.stdOut.empty() ||
+                !sectionNode.stdErr.empty() ) {
+                XmlWriter::ScopedElement e = xml.scopedElement( "testcase" );
+                if( className.empty() ) {
+                    xml.writeAttribute( "classname", name );
+                    xml.writeAttribute( "name", "root" );
+                }
+                else {
+                    xml.writeAttribute( "classname", className );
+                    xml.writeAttribute( "name", name );
+                }
+                xml.writeAttribute( "time", Catch::toString( sectionNode.stats.durationInSeconds ) );
+
+                writeAssertions( sectionNode );
+
+                if( !sectionNode.stdOut.empty() )
+                    xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), false );
+                if( !sectionNode.stdErr.empty() )
+                    xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), false );
+            }
+            for( SectionNode::ChildSections::const_iterator
+                    it = sectionNode.childSections.begin(),
+                    itEnd = sectionNode.childSections.end();
+                    it != itEnd;
+                    ++it )
+                if( className.empty() )
+                    writeSection( name, "", **it );
+                else
+                    writeSection( className, name, **it );
+        }
+
+        void writeAssertions( SectionNode const& sectionNode ) {
+            for( SectionNode::Assertions::const_iterator
+                    it = sectionNode.assertions.begin(), itEnd = sectionNode.assertions.end();
+                    it != itEnd;
+                    ++it )
+                writeAssertion( *it );
+        }
+        void writeAssertion( AssertionStats const& stats ) {
+            AssertionResult const& result = stats.assertionResult;
+            if( !result.isOk() ) {
+                std::string elementName;
+                switch( result.getResultType() ) {
+                    case ResultWas::ThrewException:
+                    case ResultWas::FatalErrorCondition:
+                        elementName = "error";
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        elementName = "failure";
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        elementName = "failure";
+                        break;
+                    case ResultWas::DidntThrowException:
+                        elementName = "failure";
+                        break;
+
+                    // We should never see these here:
+                    case ResultWas::Info:
+                    case ResultWas::Warning:
+                    case ResultWas::Ok:
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        elementName = "internalError";
+                        break;
+                }
+
+                XmlWriter::ScopedElement e = xml.scopedElement( elementName );
+
+                xml.writeAttribute( "message", result.getExpandedExpression() );
+                xml.writeAttribute( "type", result.getTestMacroName() );
+
+                std::ostringstream oss;
+                if( !result.getMessage().empty() )
+                    oss << result.getMessage() << '\n';
+                for( std::vector<MessageInfo>::const_iterator
+                        it = stats.infoMessages.begin(),
+                        itEnd = stats.infoMessages.end();
+                            it != itEnd;
+                            ++it )
+                    if( it->type == ResultWas::Info )
+                        oss << it->message << '\n';
+
+                oss << "at " << result.getSourceInfo();
+                xml.writeText( oss.str(), false );
+            }
+        }
+
+        XmlWriter xml;
+        Timer suiteTimer;
+        std::ostringstream stdOutForSuite;
+        std::ostringstream stdErrForSuite;
+        unsigned int unexpectedExceptions;
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "junit", JunitReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_console.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED
+
+namespace Catch {
+
+    struct ConsoleReporter : StreamingReporterBase {
+        ConsoleReporter( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config ),
+            m_headerPrinted( false )
+        {}
+
+        virtual ~ConsoleReporter() CATCH_OVERRIDE;
+        static std::string getDescription() {
+            return "Reports test results as plain lines of text";
+        }
+
+        virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
+            stream << "No test cases matched '" << spec << '\'' << std::endl;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {
+        }
+
+        virtual bool assertionEnded( AssertionStats const& _assertionStats ) CATCH_OVERRIDE {
+            AssertionResult const& result = _assertionStats.assertionResult;
+
+            bool printInfoMessages = true;
+
+            // Drop out if result was successful and we're not printing those
+            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
+                if( result.getResultType() != ResultWas::Warning )
+                    return false;
+                printInfoMessages = false;
+            }
+
+            lazyPrint();
+
+            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
+            printer.print();
+            stream << std::endl;
+            return true;
+        }
+
+        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
+            m_headerPrinted = false;
+            StreamingReporterBase::sectionStarting( _sectionInfo );
+        }
+        virtual void sectionEnded( SectionStats const& _sectionStats ) CATCH_OVERRIDE {
+            if( _sectionStats.missingAssertions ) {
+                lazyPrint();
+                Colour colour( Colour::ResultError );
+                if( m_sectionStack.size() > 1 )
+                    stream << "\nNo assertions in section";
+                else
+                    stream << "\nNo assertions in test case";
+                stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl;
+            }
+            if( m_headerPrinted ) {
+                if( m_config->showDurations() == ShowDurations::Always )
+                    stream << "Completed in " << _sectionStats.durationInSeconds << 's' << std::endl;
+                m_headerPrinted = false;
+            }
+            else {
+                if( m_config->showDurations() == ShowDurations::Always )
+                    stream << _sectionStats.sectionInfo.name << " completed in " << _sectionStats.durationInSeconds << 's' << std::endl;
+            }
+            StreamingReporterBase::sectionEnded( _sectionStats );
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseEnded( _testCaseStats );
+            m_headerPrinted = false;
+        }
+        virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) CATCH_OVERRIDE {
+            if( currentGroupInfo.used ) {
+                printSummaryDivider();
+                stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n";
+                printTotals( _testGroupStats.totals );
+                stream << '\n' << std::endl;
+            }
+            StreamingReporterBase::testGroupEnded( _testGroupStats );
+        }
+        virtual void testRunEnded( TestRunStats const& _testRunStats ) CATCH_OVERRIDE {
+            printTotalsDivider( _testRunStats.totals );
+            printTotals( _testRunStats.totals );
+            stream << std::endl;
+            StreamingReporterBase::testRunEnded( _testRunStats );
+        }
+
+    private:
+
+        class AssertionPrinter {
+            void operator= ( AssertionPrinter const& );
+        public:
+            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
+            :   stream( _stream ),
+                stats( _stats ),
+                result( _stats.assertionResult ),
+                colour( Colour::None ),
+                message( result.getMessage() ),
+                messages( _stats.infoMessages ),
+                printInfoMessages( _printInfoMessages )
+            {
+                switch( result.getResultType() ) {
+                    case ResultWas::Ok:
+                        colour = Colour::Success;
+                        passOrFail = "PASSED";
+                        //if( result.hasMessage() )
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "with messages";
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        if( result.isOk() ) {
+                            colour = Colour::Success;
+                            passOrFail = "FAILED - but was ok";
+                        }
+                        else {
+                            colour = Colour::Error;
+                            passOrFail = "FAILED";
+                        }
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "with messages";
+                        break;
+                    case ResultWas::ThrewException:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "due to unexpected exception with message";
+                        break;
+                    case ResultWas::FatalErrorCondition:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "due to a fatal error condition";
+                        break;
+                    case ResultWas::DidntThrowException:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "because no exception was thrown where one was expected";
+                        break;
+                    case ResultWas::Info:
+                        messageLabel = "info";
+                        break;
+                    case ResultWas::Warning:
+                        messageLabel = "warning";
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        passOrFail = "FAILED";
+                        colour = Colour::Error;
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "explicitly with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "explicitly with messages";
+                        break;
+                    // These cases are here to prevent compiler warnings
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        passOrFail = "** internal error **";
+                        colour = Colour::Error;
+                        break;
+                }
+            }
+
+            void print() const {
+                printSourceInfo();
+                if( stats.totals.assertions.total() > 0 ) {
+                    if( result.isOk() )
+                        stream << '\n';
+                    printResultType();
+                    printOriginalExpression();
+                    printReconstructedExpression();
+                }
+                else {
+                    stream << '\n';
+                }
+                printMessage();
+            }
+
+        private:
+            void printResultType() const {
+                if( !passOrFail.empty() ) {
+                    Colour colourGuard( colour );
+                    stream << passOrFail << ":\n";
+                }
+            }
+            void printOriginalExpression() const {
+                if( result.hasExpression() ) {
+                    Colour colourGuard( Colour::OriginalExpression );
+                    stream  << "  ";
+                    stream << result.getExpressionInMacro();
+                    stream << '\n';
+                }
+            }
+            void printReconstructedExpression() const {
+                if( result.hasExpandedExpression() ) {
+                    stream << "with expansion:\n";
+                    Colour colourGuard( Colour::ReconstructedExpression );
+                    stream << Text( result.getExpandedExpression(), TextAttributes().setIndent(2) ) << '\n';
+                }
+            }
+            void printMessage() const {
+                if( !messageLabel.empty() )
+                    stream << messageLabel << ':' << '\n';
+                for( std::vector<MessageInfo>::const_iterator it = messages.begin(), itEnd = messages.end();
+                        it != itEnd;
+                        ++it ) {
+                    // If this assertion is a warning ignore any INFO messages
+                    if( printInfoMessages || it->type != ResultWas::Info )
+                        stream << Text( it->message, TextAttributes().setIndent(2) ) << '\n';
+                }
+            }
+            void printSourceInfo() const {
+                Colour colourGuard( Colour::FileName );
+                stream << result.getSourceInfo() << ": ";
+            }
+
+            std::ostream& stream;
+            AssertionStats const& stats;
+            AssertionResult const& result;
+            Colour::Code colour;
+            std::string passOrFail;
+            std::string messageLabel;
+            std::string message;
+            std::vector<MessageInfo> messages;
+            bool printInfoMessages;
+        };
+
+        void lazyPrint() {
+
+            if( !currentTestRunInfo.used )
+                lazyPrintRunInfo();
+            if( !currentGroupInfo.used )
+                lazyPrintGroupInfo();
+
+            if( !m_headerPrinted ) {
+                printTestCaseAndSectionHeader();
+                m_headerPrinted = true;
+            }
+        }
+        void lazyPrintRunInfo() {
+            stream  << '\n' << getLineOfChars<'~'>() << '\n';
+            Colour colour( Colour::SecondaryText );
+            stream  << currentTestRunInfo->name
+                    << " is a Catch v"  << libraryVersion << " host application.\n"
+                    << "Run with -? for options\n\n";
+
+            if( m_config->rngSeed() != 0 )
+                stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n";
+
+            currentTestRunInfo.used = true;
+        }
+        void lazyPrintGroupInfo() {
+            if( !currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1 ) {
+                printClosedHeader( "Group: " + currentGroupInfo->name );
+                currentGroupInfo.used = true;
+            }
+        }
+        void printTestCaseAndSectionHeader() {
+            assert( !m_sectionStack.empty() );
+            printOpenHeader( currentTestCaseInfo->name );
+
+            if( m_sectionStack.size() > 1 ) {
+                Colour colourGuard( Colour::Headers );
+
+                std::vector<SectionInfo>::const_iterator
+                    it = m_sectionStack.begin()+1, // Skip first section (test case)
+                    itEnd = m_sectionStack.end();
+                for( ; it != itEnd; ++it )
+                    printHeaderString( it->name, 2 );
+            }
+
+            SourceLineInfo lineInfo = m_sectionStack.front().lineInfo;
+
+            if( !lineInfo.empty() ){
+                stream << getLineOfChars<'-'>() << '\n';
+                Colour colourGuard( Colour::FileName );
+                stream << lineInfo << '\n';
+            }
+            stream << getLineOfChars<'.'>() << '\n' << std::endl;
+        }
+
+        void printClosedHeader( std::string const& _name ) {
+            printOpenHeader( _name );
+            stream << getLineOfChars<'.'>() << '\n';
+        }
+        void printOpenHeader( std::string const& _name ) {
+            stream  << getLineOfChars<'-'>() << '\n';
+            {
+                Colour colourGuard( Colour::Headers );
+                printHeaderString( _name );
+            }
+        }
+
+        // if string has a : in first line will set indent to follow it on
+        // subsequent lines
+        void printHeaderString( std::string const& _string, std::size_t indent = 0 ) {
+            std::size_t i = _string.find( ": " );
+            if( i != std::string::npos )
+                i+=2;
+            else
+                i = 0;
+            stream << Text( _string, TextAttributes()
+                                        .setIndent( indent+i)
+                                        .setInitialIndent( indent ) ) << '\n';
+        }
+
+        struct SummaryColumn {
+
+            SummaryColumn( std::string const& _label, Colour::Code _colour )
+            :   label( _label ),
+                colour( _colour )
+            {}
+            SummaryColumn addRow( std::size_t count ) {
+                std::ostringstream oss;
+                oss << count;
+                std::string row = oss.str();
+                for( std::vector<std::string>::iterator it = rows.begin(); it != rows.end(); ++it ) {
+                    while( it->size() < row.size() )
+                        *it = ' ' + *it;
+                    while( it->size() > row.size() )
+                        row = ' ' + row;
+                }
+                rows.push_back( row );
+                return *this;
+            }
+
+            std::string label;
+            Colour::Code colour;
+            std::vector<std::string> rows;
+
+        };
+
+        void printTotals( Totals const& totals ) {
+            if( totals.testCases.total() == 0 ) {
+                stream << Colour( Colour::Warning ) << "No tests ran\n";
+            }
+            else if( totals.assertions.total() > 0 && totals.testCases.allPassed() ) {
+                stream << Colour( Colour::ResultSuccess ) << "All tests passed";
+                stream << " ("
+                        << pluralise( totals.assertions.passed, "assertion" ) << " in "
+                        << pluralise( totals.testCases.passed, "test case" ) << ')'
+                        << '\n';
+            }
+            else {
+
+                std::vector<SummaryColumn> columns;
+                columns.push_back( SummaryColumn( "", Colour::None )
+                                        .addRow( totals.testCases.total() )
+                                        .addRow( totals.assertions.total() ) );
+                columns.push_back( SummaryColumn( "passed", Colour::Success )
+                                        .addRow( totals.testCases.passed )
+                                        .addRow( totals.assertions.passed ) );
+                columns.push_back( SummaryColumn( "failed", Colour::ResultError )
+                                        .addRow( totals.testCases.failed )
+                                        .addRow( totals.assertions.failed ) );
+                columns.push_back( SummaryColumn( "failed as expected", Colour::ResultExpectedFailure )
+                                        .addRow( totals.testCases.failedButOk )
+                                        .addRow( totals.assertions.failedButOk ) );
+
+                printSummaryRow( "test cases", columns, 0 );
+                printSummaryRow( "assertions", columns, 1 );
+            }
+        }
+        void printSummaryRow( std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row ) {
+            for( std::vector<SummaryColumn>::const_iterator it = cols.begin(); it != cols.end(); ++it ) {
+                std::string value = it->rows[row];
+                if( it->label.empty() ) {
+                    stream << label << ": ";
+                    if( value != "0" )
+                        stream << value;
+                    else
+                        stream << Colour( Colour::Warning ) << "- none -";
+                }
+                else if( value != "0" ) {
+                    stream  << Colour( Colour::LightGrey ) << " | ";
+                    stream  << Colour( it->colour )
+                            << value << ' ' << it->label;
+                }
+            }
+            stream << '\n';
+        }
+
+        static std::size_t makeRatio( std::size_t number, std::size_t total ) {
+            std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0;
+            return ( ratio == 0 && number > 0 ) ? 1 : ratio;
+        }
+        static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) {
+            if( i > j && i > k )
+                return i;
+            else if( j > k )
+                return j;
+            else
+                return k;
+        }
+
+        void printTotalsDivider( Totals const& totals ) {
+            if( totals.testCases.total() > 0 ) {
+                std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() );
+                std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() );
+                std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() );
+                while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 )
+                    findMax( failedRatio, failedButOkRatio, passedRatio )++;
+                while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 )
+                    findMax( failedRatio, failedButOkRatio, passedRatio )--;
+
+                stream << Colour( Colour::Error ) << std::string( failedRatio, '=' );
+                stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' );
+                if( totals.testCases.allPassed() )
+                    stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' );
+                else
+                    stream << Colour( Colour::Success ) << std::string( passedRatio, '=' );
+            }
+            else {
+                stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' );
+            }
+            stream << '\n';
+        }
+        void printSummaryDivider() {
+            stream << getLineOfChars<'-'>() << '\n';
+        }
+
+    private:
+        bool m_headerPrinted;
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_compact.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED
+
+namespace Catch {
+
+    struct CompactReporter : StreamingReporterBase {
+
+        CompactReporter( ReporterConfig const& _config )
+        : StreamingReporterBase( _config )
+        {}
+
+        virtual ~CompactReporter();
+
+        static std::string getDescription() {
+            return "Reports test results on a single line, suitable for IDEs";
+        }
+
+        virtual ReporterPreferences getPreferences() const {
+            ReporterPreferences prefs;
+            prefs.shouldRedirectStdOut = false;
+            return prefs;
+        }
+
+        virtual void noMatchingTestCases( std::string const& spec ) {
+            stream << "No test cases matched '" << spec << '\'' << std::endl;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) {
+        }
+
+        virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
+            AssertionResult const& result = _assertionStats.assertionResult;
+
+            bool printInfoMessages = true;
+
+            // Drop out if result was successful and we're not printing those
+            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
+                if( result.getResultType() != ResultWas::Warning )
+                    return false;
+                printInfoMessages = false;
+            }
+
+            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
+            printer.print();
+
+            stream << std::endl;
+            return true;
+        }
+
+        virtual void testRunEnded( TestRunStats const& _testRunStats ) {
+            printTotals( _testRunStats.totals );
+            stream << '\n' << std::endl;
+            StreamingReporterBase::testRunEnded( _testRunStats );
+        }
+
+    private:
+        class AssertionPrinter {
+            void operator= ( AssertionPrinter const& );
+        public:
+            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
+            : stream( _stream )
+            , stats( _stats )
+            , result( _stats.assertionResult )
+            , messages( _stats.infoMessages )
+            , itMessage( _stats.infoMessages.begin() )
+            , printInfoMessages( _printInfoMessages )
+            {}
+
+            void print() {
+                printSourceInfo();
+
+                itMessage = messages.begin();
+
+                switch( result.getResultType() ) {
+                    case ResultWas::Ok:
+                        printResultType( Colour::ResultSuccess, passedString() );
+                        printOriginalExpression();
+                        printReconstructedExpression();
+                        if ( ! result.hasExpression() )
+                            printRemainingMessages( Colour::None );
+                        else
+                            printRemainingMessages();
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        if( result.isOk() )
+                            printResultType( Colour::ResultSuccess, failedString() + std::string( " - but was ok" ) );
+                        else
+                            printResultType( Colour::Error, failedString() );
+                        printOriginalExpression();
+                        printReconstructedExpression();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::ThrewException:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "unexpected exception with message:" );
+                        printMessage();
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::FatalErrorCondition:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "fatal error condition with message:" );
+                        printMessage();
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::DidntThrowException:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "expected exception, got none" );
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::Info:
+                        printResultType( Colour::None, "info" );
+                        printMessage();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::Warning:
+                        printResultType( Colour::None, "warning" );
+                        printMessage();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "explicitly" );
+                        printRemainingMessages( Colour::None );
+                        break;
+                    // These cases are here to prevent compiler warnings
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        printResultType( Colour::Error, "** internal error **" );
+                        break;
+                }
+            }
+
+        private:
+            // Colour::LightGrey
+
+            static Colour::Code dimColour() { return Colour::FileName; }
+
+#ifdef CATCH_PLATFORM_MAC
+            static const char* failedString() { return "FAILED"; }
+            static const char* passedString() { return "PASSED"; }
+#else
+            static const char* failedString() { return "failed"; }
+            static const char* passedString() { return "passed"; }
+#endif
+
+            void printSourceInfo() const {
+                Colour colourGuard( Colour::FileName );
+                stream << result.getSourceInfo() << ':';
+            }
+
+            void printResultType( Colour::Code colour, std::string passOrFail ) const {
+                if( !passOrFail.empty() ) {
+                    {
+                        Colour colourGuard( colour );
+                        stream << ' ' << passOrFail;
+                    }
+                    stream << ':';
+                }
+            }
+
+            void printIssue( std::string issue ) const {
+                stream << ' ' << issue;
+            }
+
+            void printExpressionWas() {
+                if( result.hasExpression() ) {
+                    stream << ';';
+                    {
+                        Colour colour( dimColour() );
+                        stream << " expression was:";
+                    }
+                    printOriginalExpression();
+                }
+            }
+
+            void printOriginalExpression() const {
+                if( result.hasExpression() ) {
+                    stream << ' ' << result.getExpression();
+                }
+            }
+
+            void printReconstructedExpression() const {
+                if( result.hasExpandedExpression() ) {
+                    {
+                        Colour colour( dimColour() );
+                        stream << " for: ";
+                    }
+                    stream << result.getExpandedExpression();
+                }
+            }
+
+            void printMessage() {
+                if ( itMessage != messages.end() ) {
+                    stream << " '" << itMessage->message << '\'';
+                    ++itMessage;
+                }
+            }
+
+            void printRemainingMessages( Colour::Code colour = dimColour() ) {
+                if ( itMessage == messages.end() )
+                    return;
+
+                // using messages.end() directly yields compilation error:
+                std::vector<MessageInfo>::const_iterator itEnd = messages.end();
+                const std::size_t N = static_cast<std::size_t>( std::distance( itMessage, itEnd ) );
+
+                {
+                    Colour colourGuard( colour );
+                    stream << " with " << pluralise( N, "message" ) << ':';
+                }
+
+                for(; itMessage != itEnd; ) {
+                    // If this assertion is a warning ignore any INFO messages
+                    if( printInfoMessages || itMessage->type != ResultWas::Info ) {
+                        stream << " '" << itMessage->message << '\'';
+                        if ( ++itMessage != itEnd ) {
+                            Colour colourGuard( dimColour() );
+                            stream << " and";
+                        }
+                    }
+                }
+            }
+
+        private:
+            std::ostream& stream;
+            AssertionStats const& stats;
+            AssertionResult const& result;
+            std::vector<MessageInfo> messages;
+            std::vector<MessageInfo>::const_iterator itMessage;
+            bool printInfoMessages;
+        };
+
+        // Colour, message variants:
+        // - white: No tests ran.
+        // -   red: Failed [both/all] N test cases, failed [both/all] M assertions.
+        // - white: Passed [both/all] N test cases (no assertions).
+        // -   red: Failed N tests cases, failed M assertions.
+        // - green: Passed [both/all] N tests cases with M assertions.
+
+        std::string bothOrAll( std::size_t count ) const {
+            return count == 1 ? std::string() : count == 2 ? "both " : "all " ;
+        }
+
+        void printTotals( const Totals& totals ) const {
+            if( totals.testCases.total() == 0 ) {
+                stream << "No tests ran.";
+            }
+            else if( totals.testCases.failed == totals.testCases.total() ) {
+                Colour colour( Colour::ResultError );
+                const std::string qualify_assertions_failed =
+                    totals.assertions.failed == totals.assertions.total() ?
+                        bothOrAll( totals.assertions.failed ) : std::string();
+                stream <<
+                    "Failed " << bothOrAll( totals.testCases.failed )
+                              << pluralise( totals.testCases.failed, "test case"  ) << ", "
+                    "failed " << qualify_assertions_failed <<
+                                 pluralise( totals.assertions.failed, "assertion" ) << '.';
+            }
+            else if( totals.assertions.total() == 0 ) {
+                stream <<
+                    "Passed " << bothOrAll( totals.testCases.total() )
+                              << pluralise( totals.testCases.total(), "test case" )
+                              << " (no assertions).";
+            }
+            else if( totals.assertions.failed ) {
+                Colour colour( Colour::ResultError );
+                stream <<
+                    "Failed " << pluralise( totals.testCases.failed, "test case"  ) << ", "
+                    "failed " << pluralise( totals.assertions.failed, "assertion" ) << '.';
+            }
+            else {
+                Colour colour( Colour::ResultSuccess );
+                stream <<
+                    "Passed " << bothOrAll( totals.testCases.passed )
+                              << pluralise( totals.testCases.passed, "test case"  ) <<
+                    " with "  << pluralise( totals.assertions.passed, "assertion" ) << '.';
+            }
+        }
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "compact", CompactReporter )
+
+} // end namespace Catch
+
+namespace Catch {
+    // These are all here to avoid warnings about not having any out of line
+    // virtual methods
+    NonCopyable::~NonCopyable() {}
+    IShared::~IShared() {}
+    IStream::~IStream() CATCH_NOEXCEPT {}
+    FileStream::~FileStream() CATCH_NOEXCEPT {}
+    CoutStream::~CoutStream() CATCH_NOEXCEPT {}
+    DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {}
+    StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {}
+    IContext::~IContext() {}
+    IResultCapture::~IResultCapture() {}
+    ITestCase::~ITestCase() {}
+    ITestCaseRegistry::~ITestCaseRegistry() {}
+    IRegistryHub::~IRegistryHub() {}
+    IMutableRegistryHub::~IMutableRegistryHub() {}
+    IExceptionTranslator::~IExceptionTranslator() {}
+    IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
+    IReporter::~IReporter() {}
+    IReporterFactory::~IReporterFactory() {}
+    IReporterRegistry::~IReporterRegistry() {}
+    IStreamingReporter::~IStreamingReporter() {}
+    AssertionStats::~AssertionStats() {}
+    SectionStats::~SectionStats() {}
+    TestCaseStats::~TestCaseStats() {}
+    TestGroupStats::~TestGroupStats() {}
+    TestRunStats::~TestRunStats() {}
+    CumulativeReporterBase::SectionNode::~SectionNode() {}
+    CumulativeReporterBase::~CumulativeReporterBase() {}
+
+    StreamingReporterBase::~StreamingReporterBase() {}
+    ConsoleReporter::~ConsoleReporter() {}
+    CompactReporter::~CompactReporter() {}
+    IRunner::~IRunner() {}
+    IMutableContext::~IMutableContext() {}
+    IConfig::~IConfig() {}
+    XmlReporter::~XmlReporter() {}
+    JunitReporter::~JunitReporter() {}
+    TestRegistry::~TestRegistry() {}
+    FreeFunctionTestCase::~FreeFunctionTestCase() {}
+    IGeneratorInfo::~IGeneratorInfo() {}
+    IGeneratorsForTest::~IGeneratorsForTest() {}
+    WildcardPattern::~WildcardPattern() {}
+    TestSpec::Pattern::~Pattern() {}
+    TestSpec::NamePattern::~NamePattern() {}
+    TestSpec::TagPattern::~TagPattern() {}
+    TestSpec::ExcludedPattern::~ExcludedPattern() {}
+
+    Matchers::Impl::StdString::Equals::~Equals() {}
+    Matchers::Impl::StdString::Contains::~Contains() {}
+    Matchers::Impl::StdString::StartsWith::~StartsWith() {}
+    Matchers::Impl::StdString::EndsWith::~EndsWith() {}
+
+    void Config::dummy() {}
+
+    namespace TestCaseTracking {
+        ITracker::~ITracker() {}
+        TrackerBase::~TrackerBase() {}
+        SectionTracker::~SectionTracker() {}
+        IndexTracker::~IndexTracker() {}
+    }
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#endif
+
+#ifdef CATCH_CONFIG_MAIN
+// #included from: internal/catch_default_main.hpp
+#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
+
+#ifndef __OBJC__
+
+// Standard C/C++ main entry point
+int main (int argc, char * argv[]) {
+    int result = Catch::Session().run( argc, argv );
+    return ( result < 0xff ? result : 0xff );
+}
+
+#else // __OBJC__
+
+// Objective-C entry point
+int main (int argc, char * const argv[]) {
+#if !CATCH_ARC_ENABLED
+    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+#endif
+
+    Catch::registerTestMethods();
+    int result = Catch::Session().run( argc, (char* const*)argv );
+
+#if !CATCH_ARC_ENABLED
+    [pool drain];
+#endif
+
+    return ( result < 0xff ? result : 0xff );
+}
+
+#endif // __OBJC__
+
+#endif
+
+#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED
+#  undef CLARA_CONFIG_MAIN
+#endif
+
+//////
+
+// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
+#ifdef CATCH_CONFIG_PREFIX_ALL
+
+#define CATCH_REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE" )
+#define CATCH_REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "CATCH_REQUIRE_FALSE" )
+
+#define CATCH_REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "CATCH_REQUIRE_THROWS" )
+#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS_AS" )
+#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "CATCH_REQUIRE_THROWS_WITH" )
+#define CATCH_REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_NOTHROW" )
+
+#define CATCH_CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK" )
+#define CATCH_CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CATCH_CHECK_FALSE" )
+#define CATCH_CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_IF" )
+#define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" )
+#define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" )
+
+#define CATCH_CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CATCH_CHECK_THROWS" )
+#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" )
+#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" )
+#define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" )
+
+#define CATCH_CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THAT" )
+#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THAT" )
+
+#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
+#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "CATCH_WARN", msg )
+#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
+#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
+#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
+    #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
+    #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
+    #define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
+    #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
+    #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ )
+    #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ )
+#else
+    #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
+    #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
+    #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
+    #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description )
+    #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
+    #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg )
+    #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg )
+#endif
+#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
+
+#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
+#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
+
+#define CATCH_GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
+
+// "BDD-style" convenience wrappers
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ )
+#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
+#else
+#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags )
+#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
+#endif
+#define CATCH_GIVEN( desc )    CATCH_SECTION( std::string( "Given: ") + desc, "" )
+#define CATCH_WHEN( desc )     CATCH_SECTION( std::string( " When: ") + desc, "" )
+#define CATCH_AND_WHEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
+#define CATCH_THEN( desc )     CATCH_SECTION( std::string( " Then: ") + desc, "" )
+#define CATCH_AND_THEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
+
+// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
+#else
+
+#define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "REQUIRE" )
+#define REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "REQUIRE_FALSE" )
+
+#define REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "REQUIRE_THROWS" )
+#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "REQUIRE_THROWS_AS" )
+#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "REQUIRE_THROWS_WITH" )
+#define REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "REQUIRE_NOTHROW" )
+
+#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" )
+#define CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CHECK_FALSE" )
+#define CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_IF" )
+#define CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_ELSE" )
+#define CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CHECK_NOFAIL" )
+
+#define CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CHECK_THROWS" )
+#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS_AS" )
+#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CHECK_THROWS_WITH" )
+#define CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_NOTHROW" )
+
+#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THAT" )
+#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "REQUIRE_THAT" )
+
+#define INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
+#define WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "WARN", msg )
+#define SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
+#define CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
+#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
+    #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
+    #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
+    #define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
+    #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
+    #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ )
+    #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ )
+#else
+    #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
+    #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
+    #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
+    #define REGISTER_TEST_CASE( method, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( method, name, description )
+    #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
+    #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg )
+    #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg )
+#endif
+#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
+
+#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
+#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
+
+#define GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
+
+#endif
+
+#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )
+
+// "BDD-style" convenience wrappers
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ )
+#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
+#else
+#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags )
+#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
+#endif
+#define GIVEN( desc )    SECTION( std::string("   Given: ") + desc, "" )
+#define WHEN( desc )     SECTION( std::string("    When: ") + desc, "" )
+#define AND_WHEN( desc ) SECTION( std::string("And when: ") + desc, "" )
+#define THEN( desc )     SECTION( std::string("    Then: ") + desc, "" )
+#define AND_THEN( desc ) SECTION( std::string("     And: ") + desc, "" )
+
+using Catch::Detail::Approx;
+
+#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+

From d284c86dd1bb8c9e723c5834354a0329c091fe4d Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sat, 4 Feb 2017 21:00:41 +0100
Subject: [PATCH 160/174] :white_check_mark: uncommented some tests

---
 test/src/unit-conversions.cpp | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp
index fca807a0..7db56ee0 100644
--- a/test/src/unit-conversions.cpp
+++ b/test/src/unit-conversions.cpp
@@ -972,14 +972,14 @@ TEST_CASE("value conversion")
                 auto m5 = j5.get<std::list<std::string>>();
             }
 
-            //SECTION("std::forward_list")
-            //{
-            //    auto m1 = j1.get<std::forward_list<int>>();
-            //    auto m2 = j2.get<std::forward_list<unsigned int>>();
-            //    auto m3 = j3.get<std::forward_list<double>>();
-            //    auto m4 = j4.get<std::forward_list<bool>>();
-            //    auto m5 = j5.get<std::forward_list<std::string>>();
-            //}
+            SECTION("std::forward_list")
+            {
+                auto m1 = j1.get<std::forward_list<int>>();
+                auto m2 = j2.get<std::forward_list<unsigned int>>();
+                auto m3 = j3.get<std::forward_list<double>>();
+                auto m4 = j4.get<std::forward_list<bool>>();
+                auto m5 = j5.get<std::forward_list<std::string>>();
+            }
 
             SECTION("std::vector")
             {

From 163f8397fdc94b778eddcd2d22294e2f961d8b20 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Sun, 5 Feb 2017 17:11:26 +0100
Subject: [PATCH 161/174] :pencil2: fixed a typo #446

---
 README.md | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 1933c12a..c1fd0d89 100644
--- a/README.md
+++ b/README.md
@@ -168,7 +168,7 @@ auto j2 = R"(
 )"_json;
 ```
 
-Note that without appending the `_json` suffix, the passed string literal is not parsed, but just used as JSON string value. That is, `json j = "{ \"happy\": true, \"pi\": 3.141 }"` would just store the string `"{ "happy": true, "pi": 3.141 }"` rather than parsing the acutal object.
+Note that without appending the `_json` suffix, the passed string literal is not parsed, but just used as JSON string value. That is, `json j = "{ \"happy\": true, \"pi\": 3.141 }"` would just store the string `"{ "happy": true, "pi": 3.141 }"` rather than parsing the actual object.
 
 The above example can also be expressed explicitly using `json::parse()`:
 
@@ -820,6 +820,7 @@ I deeply appreciate the help of the following people.
 - [EnricoBilla](https://github.com/EnricoBilla) noted a typo in an example.
 - [Martin Hořeňovský](https://github.com/horenmar) found a way for a 2x speedup for the compilation time of the test suite.
 - [ukhegg](https://github.com/ukhegg) found proposed an improvement for the examples section.
+- [rswanson-ihi](https://github.com/rswanson-ihi) noted a type in the README.
 
 
 Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone.

From 4746a4c53622745fd1f3005cd560dcd443cc7a31 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <niels.lohmann@gmail.com>
Date: Wed, 8 Feb 2017 17:56:43 +0100
Subject: [PATCH 162/174] :lipstick: minor change

---
 src/json.hpp      | 4 ++--
 src/json.hpp.re2c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index c77945a8..11c00162 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -12689,9 +12689,9 @@ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std
 #endif
 
 // clean up
-#undef JSON_THROW
-#undef JSON_TRY
 #undef JSON_CATCH
 #undef JSON_DEPRECATED
+#undef JSON_THROW
+#undef JSON_TRY
 
 #endif
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 109a4f26..edc209bf 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -11839,9 +11839,9 @@ inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std
 #endif
 
 // clean up
-#undef JSON_THROW
-#undef JSON_TRY
 #undef JSON_CATCH
 #undef JSON_DEPRECATED
+#undef JSON_THROW
+#undef JSON_TRY
 
 #endif

From 662a9b8f3c75f51dc55b1b3887c3ac49ea76d142 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Wed, 8 Feb 2017 18:19:41 +0100
Subject: [PATCH 163/174] :pencil2: fixed more typos

---
 src/json.hpp      | 42 +++++++++++++++++++++---------------------
 src/json.hpp.re2c | 42 +++++++++++++++++++++---------------------
 2 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 11c00162..233cf8fa 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -1106,7 +1106,7 @@ class basic_json
     /*!
     @brief returns version information on the library
 
-    This function returns a JSON object with infiormation about the library,
+    This function returns a JSON object with information about the library,
     including the version number and information on the platform and compiler.
 
     @return JSON object holding version information
@@ -3417,7 +3417,7 @@ class basic_json
     /*!
     @brief get a reference value (implicit)
 
-    Implict reference access to the internally stored JSON value. No copies
+    Implicit reference access to the internally stored JSON value. No copies
     are made.
 
     @warning Writing data to the referee of the result yields an undefined
@@ -3492,7 +3492,7 @@ class basic_json
     template < typename ValueType, typename std::enable_if <
                    not std::is_pointer<ValueType>::value and
                    not std::is_same<ValueType, typename string_t::value_type>::value
-#ifndef _MSC_VER  // fix for issue #167 operator<< abiguity under VS2015
+#ifndef _MSC_VER  // fix for issue #167 operator<< ambiguity under VS2015
                    and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value
 #endif
                    , int >::type = 0 >
@@ -4285,7 +4285,7 @@ class basic_json
 
     @complexity The complexity depends on the type:
     - objects: amortized constant
-    - arrays: linear in distance between pos and the end of the container
+    - arrays: linear in distance between @a pos and the end of the container
     - strings: linear in the length of the string
     - other types: constant
 
@@ -5537,7 +5537,7 @@ class basic_json
     @throw std::domain_error if @a pos is not an iterator of *this; example:
     `"iterator does not fit current value"`
 
-    @complexity Constant plus linear in the distance between pos and end of
+    @complexity Constant plus linear in the distance between @a pos and end of
     the container.
 
     @liveexample{The example shows how `insert()` is used.,insert}
@@ -6234,7 +6234,7 @@ class basic_json
     `std::setw(4)` on @a o sets the indentation level to `4` and the
     serialization result is the same as calling `dump(4)`.
 
-    @note During serializaion, the locale and the precision of the output
+    @note During serialization, the locale and the precision of the output
     stream @a o are changed. The original values are restored when the
     function returns.
 
@@ -10624,7 +10624,7 @@ basic_json_parser_66:
             if (m_stream == nullptr or m_stream->eof())
             {
                 // m_start may or may not be pointing into m_line_buffer at
-                // this point. We trust the standand library to do the right
+                // this point. We trust the standard library to do the right
                 // thing. See http://stackoverflow.com/q/28142011/266378
                 m_line_buffer.assign(m_start, m_limit);
 
@@ -10712,7 +10712,7 @@ basic_json_parser_66:
         m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This
         can be rephrased to m_cursor - m_start - 2 > x. With the
         precondition, we x <= 0, meaning that the loop condition holds
-        indefinitly if i is always decreased. However, observe that the value
+        indefinitely if i is always decreased. However, observe that the value
         of i is strictly increasing with each iteration, as it is incremented
         by 1 in the iteration expression and never decremented inside the loop
         body. Hence, the loop condition will eventually be false which
@@ -10841,12 +10841,12 @@ basic_json_parser_66:
         /*!
         @brief parse floating point number
 
-        This function (and its overloads) serves to select the most approprate
+        This function (and its overloads) serves to select the most appropriate
         standard floating point number parsing function based on the type
         supplied via the first parameter.  Set this to @a
         static_cast<number_float_t*>(nullptr).
 
-        @param[in,out] endptr recieves a pointer to the first character after
+        @param[in,out] endptr receives a pointer to the first character after
         the number
 
         @return the floating point number
@@ -10859,12 +10859,12 @@ basic_json_parser_66:
         /*!
         @brief parse floating point number
 
-        This function (and its overloads) serves to select the most approprate
+        This function (and its overloads) serves to select the most appropriate
         standard floating point number parsing function based on the type
         supplied via the first parameter.  Set this to @a
         static_cast<number_float_t*>(nullptr).
 
-        @param[in,out] endptr  recieves a pointer to the first character after
+        @param[in,out] endptr  receives a pointer to the first character after
         the number
 
         @return the floating point number
@@ -10877,12 +10877,12 @@ basic_json_parser_66:
         /*!
         @brief parse floating point number
 
-        This function (and its overloads) serves to select the most approprate
+        This function (and its overloads) serves to select the most appropriate
         standard floating point number parsing function based on the type
         supplied via the first parameter.  Set this to @a
         static_cast<number_float_t*>(nullptr).
 
-        @param[in,out] endptr  recieves a pointer to the first character after
+        @param[in,out] endptr  receives a pointer to the first character after
         the number
 
         @return the floating point number
@@ -10925,7 +10925,7 @@ basic_json_parser_66:
             // maximum absolute value of the relevant integer type
             number_unsigned_t max;
 
-            // temporarily store the type to avoid unecessary bitfield access
+            // temporarily store the type to avoid unnecessary bitfield access
             value_t type;
 
             // look for sign
@@ -11558,7 +11558,7 @@ basic_json_parser_66:
 
                         if (reference_token == "-")
                         {
-                            // explicityly treat "-" as index beyond the end
+                            // explicitly treat "-" as index beyond the end
                             ptr = &ptr->operator[](ptr->m_value.array->size());
                         }
                         else
@@ -12065,7 +12065,7 @@ basic_json_parser_66:
     primitive. The original JSON value can be restored using the @ref
     unflatten() function.
 
-    @return an object that maps JSON pointers to primitve values
+    @return an object that maps JSON pointers to primitive values
 
     @note Empty objects and arrays are flattened to `null` and will not be
           reconstructed correctly by the @ref unflatten() function.
@@ -12132,7 +12132,7 @@ basic_json_parser_66:
 
     [JSON Patch](http://jsonpatch.com) defines a JSON document structure for
     expressing a sequence of operations to apply to a JSON) document. With
-    this funcion, a JSON Patch is applied to the current JSON value by
+    this function, a JSON Patch is applied to the current JSON value by
     executing all operations from the patch.
 
     @param[in] json_patch  JSON patch document
@@ -12300,7 +12300,7 @@ basic_json_parser_66:
             JSON_THROW(std::invalid_argument("JSON patch must be an array of objects"));
         }
 
-        // iterate and apply th eoperations
+        // iterate and apply the operations
         for (const auto& val : json_patch)
         {
             // wrapper to get a value for an operation
@@ -12439,8 +12439,8 @@ basic_json_parser_66:
     @note Currently, only `remove`, `add`, and `replace` operations are
           generated.
 
-    @param[in] source  JSON value to copare from
-    @param[in] target  JSON value to copare against
+    @param[in] source  JSON value to compare from
+    @param[in] target  JSON value to compare against
     @param[in] path    helper value to create JSON pointers
 
     @return a JSON patch to convert the @a source to @a target
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index edc209bf..c477ba22 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -1106,7 +1106,7 @@ class basic_json
     /*!
     @brief returns version information on the library
 
-    This function returns a JSON object with infiormation about the library,
+    This function returns a JSON object with information about the library,
     including the version number and information on the platform and compiler.
 
     @return JSON object holding version information
@@ -3417,7 +3417,7 @@ class basic_json
     /*!
     @brief get a reference value (implicit)
 
-    Implict reference access to the internally stored JSON value. No copies
+    Implicit reference access to the internally stored JSON value. No copies
     are made.
 
     @warning Writing data to the referee of the result yields an undefined
@@ -3492,7 +3492,7 @@ class basic_json
     template < typename ValueType, typename std::enable_if <
                    not std::is_pointer<ValueType>::value and
                    not std::is_same<ValueType, typename string_t::value_type>::value
-#ifndef _MSC_VER  // fix for issue #167 operator<< abiguity under VS2015
+#ifndef _MSC_VER  // fix for issue #167 operator<< ambiguity under VS2015
                    and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value
 #endif
                    , int >::type = 0 >
@@ -4285,7 +4285,7 @@ class basic_json
 
     @complexity The complexity depends on the type:
     - objects: amortized constant
-    - arrays: linear in distance between pos and the end of the container
+    - arrays: linear in distance between @a pos and the end of the container
     - strings: linear in the length of the string
     - other types: constant
 
@@ -5537,7 +5537,7 @@ class basic_json
     @throw std::domain_error if @a pos is not an iterator of *this; example:
     `"iterator does not fit current value"`
 
-    @complexity Constant plus linear in the distance between pos and end of
+    @complexity Constant plus linear in the distance between @a pos and end of
     the container.
 
     @liveexample{The example shows how `insert()` is used.,insert}
@@ -6234,7 +6234,7 @@ class basic_json
     `std::setw(4)` on @a o sets the indentation level to `4` and the
     serialization result is the same as calling `dump(4)`.
 
-    @note During serializaion, the locale and the precision of the output
+    @note During serialization, the locale and the precision of the output
     stream @a o are changed. The original values are restored when the
     function returns.
 
@@ -9774,7 +9774,7 @@ class basic_json
             if (m_stream == nullptr or m_stream->eof())
             {
                 // m_start may or may not be pointing into m_line_buffer at
-                // this point. We trust the standand library to do the right
+                // this point. We trust the standard library to do the right
                 // thing. See http://stackoverflow.com/q/28142011/266378
                 m_line_buffer.assign(m_start, m_limit);
 
@@ -9862,7 +9862,7 @@ class basic_json
         m_start + 1 + x < m_cursor - 1 must hold to loop indefinitely. This
         can be rephrased to m_cursor - m_start - 2 > x. With the
         precondition, we x <= 0, meaning that the loop condition holds
-        indefinitly if i is always decreased. However, observe that the value
+        indefinitely if i is always decreased. However, observe that the value
         of i is strictly increasing with each iteration, as it is incremented
         by 1 in the iteration expression and never decremented inside the loop
         body. Hence, the loop condition will eventually be false which
@@ -9991,12 +9991,12 @@ class basic_json
         /*!
         @brief parse floating point number
 
-        This function (and its overloads) serves to select the most approprate
+        This function (and its overloads) serves to select the most appropriate
         standard floating point number parsing function based on the type
         supplied via the first parameter.  Set this to @a
         static_cast<number_float_t*>(nullptr).
 
-        @param[in,out] endptr recieves a pointer to the first character after
+        @param[in,out] endptr receives a pointer to the first character after
         the number
 
         @return the floating point number
@@ -10009,12 +10009,12 @@ class basic_json
         /*!
         @brief parse floating point number
 
-        This function (and its overloads) serves to select the most approprate
+        This function (and its overloads) serves to select the most appropriate
         standard floating point number parsing function based on the type
         supplied via the first parameter.  Set this to @a
         static_cast<number_float_t*>(nullptr).
 
-        @param[in,out] endptr  recieves a pointer to the first character after
+        @param[in,out] endptr  receives a pointer to the first character after
         the number
 
         @return the floating point number
@@ -10027,12 +10027,12 @@ class basic_json
         /*!
         @brief parse floating point number
 
-        This function (and its overloads) serves to select the most approprate
+        This function (and its overloads) serves to select the most appropriate
         standard floating point number parsing function based on the type
         supplied via the first parameter.  Set this to @a
         static_cast<number_float_t*>(nullptr).
 
-        @param[in,out] endptr  recieves a pointer to the first character after
+        @param[in,out] endptr  receives a pointer to the first character after
         the number
 
         @return the floating point number
@@ -10075,7 +10075,7 @@ class basic_json
             // maximum absolute value of the relevant integer type
             number_unsigned_t max;
 
-            // temporarily store the type to avoid unecessary bitfield access
+            // temporarily store the type to avoid unnecessary bitfield access
             value_t type;
 
             // look for sign
@@ -10708,7 +10708,7 @@ class basic_json
 
                         if (reference_token == "-")
                         {
-                            // explicityly treat "-" as index beyond the end
+                            // explicitly treat "-" as index beyond the end
                             ptr = &ptr->operator[](ptr->m_value.array->size());
                         }
                         else
@@ -11215,7 +11215,7 @@ class basic_json
     primitive. The original JSON value can be restored using the @ref
     unflatten() function.
 
-    @return an object that maps JSON pointers to primitve values
+    @return an object that maps JSON pointers to primitive values
 
     @note Empty objects and arrays are flattened to `null` and will not be
           reconstructed correctly by the @ref unflatten() function.
@@ -11282,7 +11282,7 @@ class basic_json
 
     [JSON Patch](http://jsonpatch.com) defines a JSON document structure for
     expressing a sequence of operations to apply to a JSON) document. With
-    this funcion, a JSON Patch is applied to the current JSON value by
+    this function, a JSON Patch is applied to the current JSON value by
     executing all operations from the patch.
 
     @param[in] json_patch  JSON patch document
@@ -11450,7 +11450,7 @@ class basic_json
             JSON_THROW(std::invalid_argument("JSON patch must be an array of objects"));
         }
 
-        // iterate and apply th eoperations
+        // iterate and apply the operations
         for (const auto& val : json_patch)
         {
             // wrapper to get a value for an operation
@@ -11589,8 +11589,8 @@ class basic_json
     @note Currently, only `remove`, `add`, and `replace` operations are
           generated.
 
-    @param[in] source  JSON value to copare from
-    @param[in] target  JSON value to copare against
+    @param[in] source  JSON value to compare from
+    @param[in] target  JSON value to compare against
     @param[in] path    helper value to create JSON pointers
 
     @return a JSON patch to convert the @a source to @a target

From 0ffa18aab8254973efb53aaa4ce805fa896e3889 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Wed, 8 Feb 2017 19:16:38 +0100
Subject: [PATCH 164/174] :memo: listing projects using the library

---
 README.md            |   6 ++++++
 doc/usages/ios.png   | Bin 0 -> 208669 bytes
 doc/usages/macos.png | Bin 0 -> 1305068 bytes
 3 files changed, 6 insertions(+)
 create mode 100755 doc/usages/ios.png
 create mode 100644 doc/usages/macos.png

diff --git a/README.md b/README.md
index c1fd0d89..f8f75644 100644
--- a/README.md
+++ b/README.md
@@ -25,6 +25,7 @@
 - [Supported compilers](#supported-compilers)
 - [License](#license)
 - [Thanks](#thanks)
+- [Projects using JSON for Modern C++](#projects-using-json-for-modern-c)
 - [Notes](#notes)
 - [Execute unit tests](#execute-unit-tests)
 
@@ -826,6 +827,11 @@ I deeply appreciate the help of the following people.
 Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone.
 
 
+## Projects using JSON for Modern C++
+
+The library is currently used in Apple macOS Sierra and iOS 10. I am not sure what they are using the library for, but I am happy that it runs on so many devices.
+
+
 ## Notes
 
 - The code contains numerous debug **assertions** which can be switched off by defining the preprocessor macro `NDEBUG`, see the [documentation of `assert`](http://en.cppreference.com/w/cpp/error/assert). In particular, note [`operator[]`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a2e26bd0b0168abb61f67ad5bcd5b9fa1.html#a2e26bd0b0168abb61f67ad5bcd5b9fa1) implements **unchecked access** for const objects: If the given key is not present, the behavior is undefined (think of a dereferenced null pointer) and yields an [assertion failure](https://github.com/nlohmann/json/issues/289) if assertions are switched on. If you are not sure whether an element in an object exists, use checked access with the [`at()` function](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a674de1ee73e6bf4843fc5dc1351fb726.html#a674de1ee73e6bf4843fc5dc1351fb726).
diff --git a/doc/usages/ios.png b/doc/usages/ios.png
new file mode 100755
index 0000000000000000000000000000000000000000..1d2c1b80717bc563b8880882369b179d86840611
GIT binary patch
literal 208669
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%0Douss
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

literal 0
HcmV?d00001

diff --git a/doc/usages/macos.png b/doc/usages/macos.png
new file mode 100644
index 0000000000000000000000000000000000000000..107b5f07fd5993ce241e2ccba0664f5b8c2084dd
GIT binary patch
literal 1305068
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%0D<uVuB-0Z+Y!z$|M<P%awrj=
z4LRNc_x|?+>mZ=OvCIi!*ED%!DN9T&V_@wF;Xlkl{+lnEqGQFNb7MwB(6RhEDAX*M
ze*ze;G?HC%HEt++H2OazktDuTMbZ#dmnw|7emGT)u+6+VesJ<zJYFz<%BA^5H0s6a
z*+Wt?j8@8yjz@1td_k`p&)Gtq1?7wP&;gYyKv(KG;TR~l>{L~9q#gYW)I@7eVWkaH
zh8_#}(vQs(Dt-828eyb^k&vzc^#fLct$cR}%i?aR|8Gknv9!pS+SD$rsn|DH!)aHI
zTW3I4i|-l%EsO!);IIk$*GNhypp-_w<vCa(bG29q^5LtFs2e8rTJAPr*-CXlbh{OD
zgk1cZFZI=LkL{`Y!FE89$~m()U?@GorKKI`E?HRqDX<XDcNjGPUy$DqQIglWR8^_<
zRxUNb2MjC1;;IyjJN?-bs#y|rd6B1WIsX<mM2F5u%=(ztL|&<v3zDx3AX@Lw;{~&0
zYGYp!@9q{6DukPy9ytD2!7;delYgS62+ugSKv?b@il+$b!I`SL?>)y}tv71tMH?6$
zO))9%RLbWwg$8P|t{HFHA(rf@UbT%H{XY|I{lGTa+m+bd|G@hc?UxrQ&W;;M!eb$g
zI}L#wOGWF&MM7U@Ljg(U%+V?gkxG@Ue8yOQwCl~xL@C{HdW#$pXF7Kf6dSb`X&P{)
z*0teMIs0#bF9~&um?r$qFLUXhd9s|UBy1<Z*E%_|Hd4WY;~=-eo-$~3yWUZ&z)dNE
zOV-a#6RUwq0zE=b#c()_vOXlsRlgw_N<XA3|NDF~;_N+35jkX<i@GvVG02z@MM6{*
z=1(Dc>HA|7UMVvj@-l*_7et|v;DsG!7?UW%Xb1_km;?ebQD)$m6n+>I|DzQi`aFpW
zNDqHh6LbwxA&9<b6eG!)V6$K3#4;Z-TM!Rei0a5f6hMv7dJSw{gfMQaY0tYA<0pyZ
z`Qn`{rn39WzY-@{6cg|p>i~oBX})|ukf)Vwj1#n-I-6>bxUkuz1<MMuoW#E35{$Wc
zq^BCDD2cQ28)F5W&D%=Bk~Obz2!|RQGxxXUXa7S$vKFHg#b^#G7<HJo)qo`z)sxYv
zCSw;NU6V^lRdo{v?!Rx}q&m^%^Ug@97!|}+FD7Z01zmB$n^xBb!akcJl1(}OOVAYw
z?#(iAXYzbo1VvVh07o58uLwCi1Qk2EZyVTHFtCC7H4sNq7_h5OFe|)cLcfcyfv%Lt
z6_2*DsB*z((Mdf2pT!UC9$a|yvR|7K!91Y>>WUlBN;h^{uIRCiElLFhw!41|Y!atZ
zRuF}EEa`VE(5=`~1Ha^`>@j>oVZ7vTE9k#Ok*5s0k!nlDhkv39FGfJZbWLEu37af+
zmLnk5wFa>YZy><jy7cC#cSW0@HQfJlH`C!-ebyVMHr~_l+e?3A4+ime_}3J~N*Z;U
zx4wN|vRcF&gYTlM#O81bMqD~-swvolD?AW`=JrE@#w!(G%N_CKd@05{MK1p($%$QP
z_i8g*QIW?Rbr}wQ+R<}Yz-0om4scP`NU_5ihornSleS+Hs>}%7n5&@wbjwnZON4cq
zxVDt{TY=}%sU^-A3wDM14br+?_>uV93^_;d#_btW7(oo$A4`AH_HUqYI@Q+vx&K!3
z#(asC)oV_P?8tJt|A@6|Yi_+ZPs0y+pTw5B!Z#)2q>2@xxP!G{{(J56!4+Q95(aKu
zunJ|CE)MrUyM#rAGyjW~TuxzS9I>0leMIJtsau~KNXGn$fbZk}_Wk;)wtoEq$FZn+
z4AxbR$yhROwX{rQ!tu9#tI`Sn6UJ%6g?q-(u7a{YG3Kt!k%c1YKx~3~{NKfz-U-{4
zz<X-jU3@Jje&RT^7}IZMNuX4X<k1@{6t8<?b6Xtiq{h@D#LQNlA1H%X^Uis4)H|tN
zxJ0|4Q@P}5a{cO)3IVCo@c&w;)2SuTX@pHL$}81a$1-)fWR`sLL`bIJjG6KFG2q{A
MRh^rq%GQtnA7!k=XaE2J

literal 0
HcmV?d00001


From 6fd77cea4adac868c7ccc0f5093362d70a02f76a Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Wed, 8 Feb 2017 19:22:19 +0100
Subject: [PATCH 165/174] :memo: added screenshots

---
 README.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/README.md b/README.md
index f8f75644..178bac0f 100644
--- a/README.md
+++ b/README.md
@@ -831,6 +831,10 @@ Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I
 
 The library is currently used in Apple macOS Sierra and iOS 10. I am not sure what they are using the library for, but I am happy that it runs on so many devices.
 
+<img src="https://raw.githubusercontent.com/nlohmann/json/develop/doc/usages/macos.png" alt="macOS Sierra">
+
+<img src="https://raw.githubusercontent.com/nlohmann/json/develop/doc/usages/ios.png" alt="iOS 10" width="375" height="667">
+
 
 ## Notes
 

From c485d46ceaf938598773c7c7d325a5522f1302ac Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Wed, 8 Feb 2017 20:00:46 +0100
Subject: [PATCH 166/174] :memo: screenshoots look ugly

---
 README.md | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/README.md b/README.md
index 178bac0f..f8f75644 100644
--- a/README.md
+++ b/README.md
@@ -831,10 +831,6 @@ Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I
 
 The library is currently used in Apple macOS Sierra and iOS 10. I am not sure what they are using the library for, but I am happy that it runs on so many devices.
 
-<img src="https://raw.githubusercontent.com/nlohmann/json/develop/doc/usages/macos.png" alt="macOS Sierra">
-
-<img src="https://raw.githubusercontent.com/nlohmann/json/develop/doc/usages/ios.png" alt="iOS 10" width="375" height="667">
-
 
 ## Notes
 

From ed8516dc39bdc6016b204c57baef26ffb629bece Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Thu, 9 Feb 2017 17:38:02 +0100
Subject: [PATCH 167/174] :construction_worker: added Codacy badge

---
 README.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/README.md b/README.md
index f8f75644..9732a0fa 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,7 @@
 [![Build Status](https://ci.appveyor.com/api/projects/status/1acb366xfyg3qybk/branch/develop?svg=true)](https://ci.appveyor.com/project/nlohmann/json)
 [![Coverage Status](https://img.shields.io/coveralls/nlohmann/json.svg)](https://coveralls.io/r/nlohmann/json)
 [![Coverity Scan Build Status](https://scan.coverity.com/projects/5550/badge.svg)](https://scan.coverity.com/projects/nlohmann-json)
+[![Codacy Badge](https://api.codacy.com/project/badge/Grade/f3732b3327e34358a0e9d1fe9f661f08)](https://www.codacy.com/app/nlohmann/json?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=nlohmann/json&amp;utm_campaign=Badge_Grade)
 [![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/4NEU6ZZMoM9lpIex)
 [![Documentation](https://img.shields.io/badge/docs-doxygen-blue.svg)](http://nlohmann.github.io/json)
 [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/nlohmann/json/master/LICENSE.MIT)

From 9f5dccbab5765638632b5b380fdecd4533dc5c3e Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Sat, 11 Feb 2017 15:55:53 +0100
Subject: [PATCH 168/174] :lipstick: cleanup

---
 src/json.hpp      | 146 ++++++++++++++++++++--------------------------
 src/json.hpp.re2c | 146 ++++++++++++++++++++--------------------------
 2 files changed, 128 insertions(+), 164 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 143ae0b8..2d98db8c 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -10840,13 +10840,13 @@ basic_json_parser_66:
 
 
         /*!
-        @brief parse string into a built-in arithmetic type as if
-               the current locale is POSIX.
+        @brief parse string into a built-in arithmetic type as if the current
+               locale is POSIX.
 
-               note: in floating-point case strtod may parse
-               past the token's end - this is not an error.
+        @note in floating-point case strtod may parse past the token's end -
+              this is not an error
 
-               any leading blanks are not handled.
+        @note any leading blanks are not handled
         */
         struct strtonum
         {
@@ -10855,36 +10855,37 @@ basic_json_parser_66:
                 : m_start(start), m_end(end)
             {}
 
-            /// return true iff parsed successfully as
-            /// number of type T.
-            ///
-            /// @val shall contain parsed value, or
-            /// undefined value if could not parse.
-            template<typename T,
-                     typename = typename std::enable_if<
-                         std::is_arithmetic<T>::value>::type >
+            /*!
+            @return true iff parsed successfully as number of type T
+
+            @param[in,out] val shall contain parsed value, or undefined value
+            if could not parse
+            */
+            template<typename T, typename = typename std::enable_if<std::is_arithmetic<T>::value>::type>
             bool to(T& val) const
             {
                 return parse(val, std::is_integral<T>());
             }
 
-            /// return true iff token matches ^[+-]\d+$
-            ///
-            /// this is a helper to determine whether to
-            /// parse the token into floating-point or
-            /// integral type. We wouldn't need it if
-            /// we had separate token types for integral
-            /// and floating-point cases.
+            /*!
+            This is a helper to determine whether to parse the token into
+            floating-point or integral type.
+
+            @note We wouldn't need it if we had separate token types for
+            integral and floating-point cases.
+
+            @return true iff token matches `^[+-]\d+$`
+            */
             bool is_integral() const
             {
                 const char* p = m_start;
 
-                if (!p)
+                if (p == nullptr)
                 {
                     return false; // LCOV_EXCL_LINE
                 }
 
-                if (*p == '-' or * p == '+')
+                if ((*p == '-') or (*p == '+'))
                 {
                     ++p;
                 }
@@ -10894,39 +10895,31 @@ basic_json_parser_66:
                     return false; // LCOV_EXCL_LINE
                 }
 
-                while (p < m_end and* p >= '0'
-                        and * p <= '9')
+                while ((p < m_end) and (*p >= '0') and (*p <= '9'))
                 {
                     ++p;
                 }
 
-                return p == m_end;
+                return (p == m_end);
             }
 
           private:
             const char* const m_start = nullptr;
-            const char* const m_end  = nullptr;
+            const char* const m_end = nullptr;
 
             // overloaded wrappers for strtod/strtof/strtold
             // that will be called from parse<floating_point_t>
-
-            static void strtof(float& f,
-                               const char* str,
-                               char** endptr)
+            static void strtof(float& f, const char* str, char** endptr)
             {
                 f = std::strtof(str, endptr);
             }
 
-            static void strtof(double& f,
-                               const char* str,
-                               char** endptr)
+            static void strtof(double& f, const char* str, char** endptr)
             {
                 f = std::strtod(str, endptr);
             }
 
-            static void strtof(long double& f,
-                               const char* str,
-                               char** endptr)
+            static void strtof(long double& f, const char* str, char** endptr)
             {
                 f = std::strtold(str, endptr);
             }
@@ -10934,37 +10927,32 @@ basic_json_parser_66:
             template<typename T>
             bool parse(T& value, /*is_integral=*/std::false_type) const
             {
-                // replace decimal separator with locale-specific
-                // version, when necessary; data will point to
-                // either the original string, or buf, or tempstr
-                // containing the fixed string.
+                // replace decimal separator with locale-specific version,
+                // when necessary; data will point to either the original
+                // string, or buf, or tempstr containing the fixed string.
                 std::string tempstr;
                 std::array<char, 64> buf;
                 const size_t len = static_cast<size_t>(m_end - m_start);
 
-                // Since dealing with strtod family of functions,
-                // we're getting the decimal point char from the
-                // C locale facilities instead of C++'s numpunct
-                // facet of the current std::locale;
+                // since dealing with strtod family of functions, we're
+                // getting the decimal point char from the C locale facilities
+                // instead of C++'s numpunct facet of the current std::locale
                 const auto loc = localeconv();
                 assert(loc != nullptr);
-                const char decimal_point_char = !loc->decimal_point ? '.'
-                                                : loc->decimal_point[0];
+                const char decimal_point_char = (loc->decimal_point == nullptr) ? '.' : loc->decimal_point[0];
 
                 const char* data = m_start;
 
                 if (decimal_point_char != '.')
                 {
-                    const size_t ds_pos = static_cast<size_t>(
-                                              std::find(m_start, m_end, '.') - m_start );
+                    const size_t ds_pos = static_cast<size_t>(std::find(m_start, m_end, '.') - m_start);
 
                     if (ds_pos != len)
                     {
-                        // copy the data into the local buffer or
-                        // tempstr, if buffer is too small;
-                        // replace decimal separator, and update
-                        // data to point to the modified bytes
-                        if (len + 1 < buf.size())
+                        // copy the data into the local buffer or tempstr, if
+                        // buffer is too small; replace decimal separator, and
+                        // update data to point to the modified bytes
+                        if ((len + 1) < buf.size())
                         {
                             std::copy(m_start, m_end, buf.data());
                             buf[len] = 0;
@@ -10985,13 +10973,12 @@ basic_json_parser_66:
                 // this calls appropriate overload depending on T
                 strtof(value, data, &endptr);
 
-                // note that reading past the end is OK, the data may be,
-                // for example, "123.", where the parsed token only
-                // contains "123", but strtod will read the dot as well.
-                const bool ok = endptr >= data + len
-                                and len > 0;
+                // note that reading past the end is OK, the data may be, for
+                // example, "123.", where the parsed token only contains
+                // "123", but strtod will read the dot as well.
+                const bool ok = (endptr >= (data + len)) and (len > 0);
 
-                if (ok and value == 0.0 and * data == '-')
+                if (ok and (value == 0.0) and (*data == '-'))
                 {
                     // some implementations forget to negate the zero
                     value = -0.0;
@@ -11000,16 +10987,12 @@ basic_json_parser_66:
                 return ok;
             }
 
-            signed long long parse_integral(
-                char** endptr,
-                /*is_signed*/std::true_type) const
+            signed long long parse_integral(char** endptr, /*is_signed*/std::true_type) const
             {
                 return std::strtoll(m_start, endptr, 10);
             }
 
-            unsigned long long parse_integral(
-                char** endptr,
-                /*is_signed*/std::false_type) const
+            unsigned long long parse_integral(char** endptr, /*is_signed*/std::false_type) const
             {
                 return std::strtoull(m_start, endptr, 10);
             }
@@ -11018,20 +11001,20 @@ basic_json_parser_66:
             bool parse(T& value, /*is_integral=*/std::true_type) const
             {
                 char* endptr = nullptr;
-                errno        = 0; // these are thread-local
+                errno = 0; // these are thread-local
                 const auto x = parse_integral(&endptr, std::is_signed<T>());
 
-                static_assert(std::is_signed<T>() // called right overload?
-                              == std::is_signed<decltype(x)>(), "");
+                // called right overload?
+                static_assert(std::is_signed<T>() == std::is_signed<decltype(x)>(), "");
 
                 value = static_cast<T>(x);
 
-                return x == static_cast<decltype(x)>(value) // x fits into destination T
-                       and (x < 0) == (value < 0)               // preserved sign
-                       and (x != 0 or is_integral())            // strto[u]ll did nto fail
-                       and errno == 0                           // strto[u]ll did not overflow
-                       and m_start < m_end                      // token was not empty
-                       and endptr == m_end;                      // parsed entire token exactly
+                return (x == static_cast<decltype(x)>(value)) // x fits into destination T
+                       and (x < 0) == (value < 0)             // preserved sign
+                       and ((x != 0) or is_integral())        // strto[u]ll did nto fail
+                       and (errno == 0)                       // strto[u]ll did not overflow
+                       and (m_start < m_end)                  // token was not empty
+                       and (endptr == m_end);                 // parsed entire token exactly
             }
         };
 
@@ -11061,20 +11044,20 @@ basic_json_parser_66:
             strtonum num(reinterpret_cast<const char*>(m_start),
                          reinterpret_cast<const char*>(m_cursor));
 
-            const bool is_negative = *m_start == '-';
+            const bool is_negative = (*m_start == '-');
 
             result.m_type = value_t::discarded;
 
             if (not num.is_integral())
             {
-                ; // will parse as float below
+                // will parse as float below
             }
             else if (is_negative)
             {
                 number_integer_t val{0};
                 if (num.to(val))
                 {
-                    result.m_type  = value_t::number_integer;
+                    result.m_type = value_t::number_integer;
                     result.m_value = val;
                 }
             }
@@ -11089,14 +11072,13 @@ basic_json_parser_66:
             }
 
             number_float_t val{0};
-            if (result.m_type != value_t::discarded
-                    or !num.to(val))
+            if (result.m_type != value_t::discarded or (not num.to(val)))
             {
-                return; // already have a value from above
-                // or couldn't parse as float_t
+                // already have a value from above or couldn't parse as float_t
+                return;
             }
 
-            result.m_type  = value_t::number_float;
+            result.m_type = value_t::number_float;
             result.m_value = val;
 
             // replace infinity and NAN by null
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 698fbb3b..b3f7af8d 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -9990,13 +9990,13 @@ class basic_json
 
 
         /*!
-        @brief parse string into a built-in arithmetic type as if
-               the current locale is POSIX.
+        @brief parse string into a built-in arithmetic type as if the current
+               locale is POSIX.
 
-               note: in floating-point case strtod may parse
-               past the token's end - this is not an error.
+        @note in floating-point case strtod may parse past the token's end -
+              this is not an error
 
-               any leading blanks are not handled.
+        @note any leading blanks are not handled
         */
         struct strtonum
         {
@@ -10005,36 +10005,37 @@ class basic_json
                 : m_start(start), m_end(end)
             {}
 
-            /// return true iff parsed successfully as
-            /// number of type T.
-            ///
-            /// @val shall contain parsed value, or
-            /// undefined value if could not parse.
-            template<typename T,
-                     typename = typename std::enable_if<
-                         std::is_arithmetic<T>::value>::type >
+            /*!
+            @return true iff parsed successfully as number of type T
+
+            @param[in,out] val shall contain parsed value, or undefined value
+            if could not parse
+            */
+            template<typename T, typename = typename std::enable_if<std::is_arithmetic<T>::value>::type>
             bool to(T& val) const
             {
                 return parse(val, std::is_integral<T>());
             }
 
-            /// return true iff token matches ^[+-]\d+$
-            ///
-            /// this is a helper to determine whether to
-            /// parse the token into floating-point or
-            /// integral type. We wouldn't need it if
-            /// we had separate token types for integral
-            /// and floating-point cases.
+            /*!
+            This is a helper to determine whether to parse the token into
+            floating-point or integral type.
+
+            @note We wouldn't need it if we had separate token types for
+            integral and floating-point cases.
+
+            @return true iff token matches `^[+-]\d+$`
+            */
             bool is_integral() const
             {
                 const char* p = m_start;
 
-                if (!p)
+                if (p == nullptr)
                 {
                     return false; // LCOV_EXCL_LINE
                 }
 
-                if (*p == '-' or * p == '+')
+                if ((*p == '-') or (*p == '+'))
                 {
                     ++p;
                 }
@@ -10044,39 +10045,31 @@ class basic_json
                     return false; // LCOV_EXCL_LINE
                 }
 
-                while (p < m_end and* p >= '0'
-                        and * p <= '9')
+                while ((p < m_end) and (*p >= '0') and (*p <= '9'))
                 {
                     ++p;
                 }
 
-                return p == m_end;
+                return (p == m_end);
             }
 
           private:
             const char* const m_start = nullptr;
-            const char* const m_end  = nullptr;
+            const char* const m_end = nullptr;
 
             // overloaded wrappers for strtod/strtof/strtold
             // that will be called from parse<floating_point_t>
-
-            static void strtof(float& f,
-                               const char* str,
-                               char** endptr)
+            static void strtof(float& f, const char* str, char** endptr)
             {
                 f = std::strtof(str, endptr);
             }
 
-            static void strtof(double& f,
-                               const char* str,
-                               char** endptr)
+            static void strtof(double& f, const char* str, char** endptr)
             {
                 f = std::strtod(str, endptr);
             }
 
-            static void strtof(long double& f,
-                               const char* str,
-                               char** endptr)
+            static void strtof(long double& f, const char* str, char** endptr)
             {
                 f = std::strtold(str, endptr);
             }
@@ -10084,37 +10077,32 @@ class basic_json
             template<typename T>
             bool parse(T& value, /*is_integral=*/std::false_type) const
             {
-                // replace decimal separator with locale-specific
-                // version, when necessary; data will point to
-                // either the original string, or buf, or tempstr
-                // containing the fixed string.
+                // replace decimal separator with locale-specific version,
+                // when necessary; data will point to either the original
+                // string, or buf, or tempstr containing the fixed string.
                 std::string tempstr;
                 std::array<char, 64> buf;
                 const size_t len = static_cast<size_t>(m_end - m_start);
 
-                // Since dealing with strtod family of functions,
-                // we're getting the decimal point char from the
-                // C locale facilities instead of C++'s numpunct
-                // facet of the current std::locale;
+                // since dealing with strtod family of functions, we're
+                // getting the decimal point char from the C locale facilities
+                // instead of C++'s numpunct facet of the current std::locale
                 const auto loc = localeconv();
                 assert(loc != nullptr);
-                const char decimal_point_char = !loc->decimal_point ? '.'
-                                                : loc->decimal_point[0];
+                const char decimal_point_char = (loc->decimal_point == nullptr) ? '.' : loc->decimal_point[0];
 
                 const char* data = m_start;
 
                 if (decimal_point_char != '.')
                 {
-                    const size_t ds_pos = static_cast<size_t>(
-                                              std::find(m_start, m_end, '.') - m_start );
+                    const size_t ds_pos = static_cast<size_t>(std::find(m_start, m_end, '.') - m_start);
 
                     if (ds_pos != len)
                     {
-                        // copy the data into the local buffer or
-                        // tempstr, if buffer is too small;
-                        // replace decimal separator, and update
-                        // data to point to the modified bytes
-                        if (len + 1 < buf.size())
+                        // copy the data into the local buffer or tempstr, if
+                        // buffer is too small; replace decimal separator, and
+                        // update data to point to the modified bytes
+                        if ((len + 1) < buf.size())
                         {
                             std::copy(m_start, m_end, buf.data());
                             buf[len] = 0;
@@ -10135,13 +10123,12 @@ class basic_json
                 // this calls appropriate overload depending on T
                 strtof(value, data, &endptr);
 
-                // note that reading past the end is OK, the data may be,
-                // for example, "123.", where the parsed token only
-                // contains "123", but strtod will read the dot as well.
-                const bool ok = endptr >= data + len
-                                and len > 0;
+                // note that reading past the end is OK, the data may be, for
+                // example, "123.", where the parsed token only contains
+                // "123", but strtod will read the dot as well.
+                const bool ok = (endptr >= (data + len)) and (len > 0);
 
-                if (ok and value == 0.0 and * data == '-')
+                if (ok and (value == 0.0) and (*data == '-'))
                 {
                     // some implementations forget to negate the zero
                     value = -0.0;
@@ -10150,16 +10137,12 @@ class basic_json
                 return ok;
             }
 
-            signed long long parse_integral(
-                char** endptr,
-                /*is_signed*/std::true_type) const
+            signed long long parse_integral(char** endptr, /*is_signed*/std::true_type) const
             {
                 return std::strtoll(m_start, endptr, 10);
             }
 
-            unsigned long long parse_integral(
-                char** endptr,
-                /*is_signed*/std::false_type) const
+            unsigned long long parse_integral(char** endptr, /*is_signed*/std::false_type) const
             {
                 return std::strtoull(m_start, endptr, 10);
             }
@@ -10168,20 +10151,20 @@ class basic_json
             bool parse(T& value, /*is_integral=*/std::true_type) const
             {
                 char* endptr = nullptr;
-                errno        = 0; // these are thread-local
+                errno = 0; // these are thread-local
                 const auto x = parse_integral(&endptr, std::is_signed<T>());
 
-                static_assert(std::is_signed<T>() // called right overload?
-                              == std::is_signed<decltype(x)>(), "");
+                // called right overload?
+                static_assert(std::is_signed<T>() == std::is_signed<decltype(x)>(), "");
 
                 value = static_cast<T>(x);
 
-                return x == static_cast<decltype(x)>(value) // x fits into destination T
-                       and (x < 0) == (value < 0)               // preserved sign
-                       and (x != 0 or is_integral())            // strto[u]ll did nto fail
-                       and errno == 0                           // strto[u]ll did not overflow
-                       and m_start < m_end                      // token was not empty
-                       and endptr == m_end;                      // parsed entire token exactly
+                return (x == static_cast<decltype(x)>(value)) // x fits into destination T
+                       and (x < 0) == (value < 0)             // preserved sign
+                       and ((x != 0) or is_integral())        // strto[u]ll did nto fail
+                       and (errno == 0)                       // strto[u]ll did not overflow
+                       and (m_start < m_end)                  // token was not empty
+                       and (endptr == m_end);                 // parsed entire token exactly
             }
         };
 
@@ -10211,20 +10194,20 @@ class basic_json
             strtonum num(reinterpret_cast<const char*>(m_start),
                          reinterpret_cast<const char*>(m_cursor));
 
-            const bool is_negative = *m_start == '-';
+            const bool is_negative = (*m_start == '-');
 
             result.m_type = value_t::discarded;
 
             if (not num.is_integral())
             {
-                ; // will parse as float below
+                // will parse as float below
             }
             else if (is_negative)
             {
                 number_integer_t val{0};
                 if (num.to(val))
                 {
-                    result.m_type  = value_t::number_integer;
+                    result.m_type = value_t::number_integer;
                     result.m_value = val;
                 }
             }
@@ -10239,14 +10222,13 @@ class basic_json
             }
 
             number_float_t val{0};
-            if (result.m_type != value_t::discarded
-                    or !num.to(val))
+            if (result.m_type != value_t::discarded or (not num.to(val)))
             {
-                return; // already have a value from above
-                // or couldn't parse as float_t
+                // already have a value from above or couldn't parse as float_t
+                return;
             }
 
-            result.m_type  = value_t::number_float;
+            result.m_type = value_t::number_float;
             result.m_value = val;
 
             // replace infinity and NAN by null

From c2d55109c1f6b5b39902f52291dee28263b90fa1 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Sat, 11 Feb 2017 16:54:25 +0100
Subject: [PATCH 169/174] :hammer: make lexer distinguishes number types

---
 src/json.hpp                  | 318 ++++++++++++++++++++--------------
 src/json.hpp.re2c             | 136 +++++++--------
 test/src/unit-class_lexer.cpp |  36 ++--
 3 files changed, 275 insertions(+), 215 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 2d98db8c..b8cdc480 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9444,7 +9444,9 @@ class basic_json
             literal_false,   ///< the `false` literal
             literal_null,    ///< the `null` literal
             value_string,    ///< a string -- use get_string() for actual value
-            value_number,    ///< a number -- use get_number() for actual value
+            value_unsigned_integer, ///< an unsigned integer -- use get_number() for actual value
+            value_signed_integer,   ///< a signed integer -- use get_number() for actual value
+            value_float,     ///< an floating point number -- use get_number() for actual value
             begin_array,     ///< the character for array begin `[`
             begin_object,    ///< the character for object begin `{`
             end_array,       ///< the character for array end `]`
@@ -9596,7 +9598,9 @@ class basic_json
                     return "null literal";
                 case token_type::value_string:
                     return "string literal";
-                case token_type::value_number:
+                case lexer::token_type::value_unsigned_integer:
+                case lexer::token_type::value_signed_integer:
+                case lexer::token_type::value_float:
                     return "number literal";
                 case token_type::begin_array:
                     return "'['";
@@ -9869,11 +9873,11 @@ basic_json_parser_12:
                     }
                     if (yych <= '0')
                     {
-                        goto basic_json_parser_13;
+                        goto basic_json_parser_43;
                     }
                     if (yych <= '9')
                     {
-                        goto basic_json_parser_15;
+                        goto basic_json_parser_45;
                     }
                     goto basic_json_parser_5;
 basic_json_parser_13:
@@ -9883,23 +9887,23 @@ basic_json_parser_13:
                     {
                         if (yych == '.')
                         {
-                            goto basic_json_parser_43;
+                            goto basic_json_parser_47;
                         }
                     }
                     else
                     {
                         if (yych <= 'E')
                         {
-                            goto basic_json_parser_44;
+                            goto basic_json_parser_48;
                         }
                         if (yych == 'e')
                         {
-                            goto basic_json_parser_44;
+                            goto basic_json_parser_48;
                         }
                     }
 basic_json_parser_14:
                     {
-                        last_token_type = token_type::value_number;
+                        last_token_type = token_type::value_unsigned_integer;
                         break;
                     }
 basic_json_parser_15:
@@ -9918,7 +9922,7 @@ basic_json_parser_15:
                     {
                         if (yych == '.')
                         {
-                            goto basic_json_parser_43;
+                            goto basic_json_parser_47;
                         }
                         goto basic_json_parser_14;
                     }
@@ -9926,11 +9930,11 @@ basic_json_parser_15:
                     {
                         if (yych <= 'E')
                         {
-                            goto basic_json_parser_44;
+                            goto basic_json_parser_48;
                         }
                         if (yych == 'e')
                         {
-                            goto basic_json_parser_44;
+                            goto basic_json_parser_48;
                         }
                         goto basic_json_parser_14;
                     }
@@ -9957,7 +9961,7 @@ basic_json_parser_23:
                     yych = *(m_marker = ++m_cursor);
                     if (yych == 'a')
                     {
-                        goto basic_json_parser_45;
+                        goto basic_json_parser_49;
                     }
                     goto basic_json_parser_5;
 basic_json_parser_24:
@@ -9965,7 +9969,7 @@ basic_json_parser_24:
                     yych = *(m_marker = ++m_cursor);
                     if (yych == 'u')
                     {
-                        goto basic_json_parser_46;
+                        goto basic_json_parser_50;
                     }
                     goto basic_json_parser_5;
 basic_json_parser_25:
@@ -9973,7 +9977,7 @@ basic_json_parser_25:
                     yych = *(m_marker = ++m_cursor);
                     if (yych == 'r')
                     {
-                        goto basic_json_parser_47;
+                        goto basic_json_parser_51;
                     }
                     goto basic_json_parser_5;
 basic_json_parser_26:
@@ -10055,13 +10059,27 @@ basic_json_parser_31:
                     }
 basic_json_parser_32:
                     m_cursor = m_marker;
-                    if (yyaccept == 0)
+                    if (yyaccept <= 1)
                     {
-                        goto basic_json_parser_5;
+                        if (yyaccept == 0)
+                        {
+                            goto basic_json_parser_5;
+                        }
+                        else
+                        {
+                            goto basic_json_parser_14;
+                        }
                     }
                     else
                     {
-                        goto basic_json_parser_14;
+                        if (yyaccept == 2)
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        else
+                        {
+                            goto basic_json_parser_55;
+                        }
                     }
 basic_json_parser_33:
                     ++m_cursor;
@@ -10142,7 +10160,7 @@ basic_json_parser_35:
                                 }
                                 if (yych <= 'u')
                                 {
-                                    goto basic_json_parser_48;
+                                    goto basic_json_parser_52;
                                 }
                                 goto basic_json_parser_32;
                             }
@@ -10261,6 +10279,71 @@ basic_json_parser_42:
                     }
                     goto basic_json_parser_32;
 basic_json_parser_43:
+                    yyaccept = 2;
+                    yych = *(m_marker = ++m_cursor);
+                    if (yych <= 'D')
+                    {
+                        if (yych == '.')
+                        {
+                            goto basic_json_parser_47;
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            goto basic_json_parser_48;
+                        }
+                        if (yych == 'e')
+                        {
+                            goto basic_json_parser_48;
+                        }
+                    }
+basic_json_parser_44:
+                    {
+                        last_token_type = token_type::value_signed_integer;
+                        break;
+                    }
+basic_json_parser_45:
+                    yyaccept = 2;
+                    m_marker = ++m_cursor;
+                    if ((m_limit - m_cursor) < 3)
+                    {
+                        fill_line_buffer(3);    // LCOV_EXCL_LINE
+                    }
+                    yych = *m_cursor;
+                    if (yych <= '9')
+                    {
+                        if (yych == '.')
+                        {
+                            goto basic_json_parser_47;
+                        }
+                        if (yych <= '/')
+                        {
+                            goto basic_json_parser_44;
+                        }
+                        goto basic_json_parser_45;
+                    }
+                    else
+                    {
+                        if (yych <= 'E')
+                        {
+                            if (yych <= 'D')
+                            {
+                                goto basic_json_parser_44;
+                            }
+                            goto basic_json_parser_48;
+                        }
+                        else
+                        {
+                            if (yych == 'e')
+                            {
+                                goto basic_json_parser_48;
+                            }
+                            goto basic_json_parser_44;
+                        }
+                    }
+basic_json_parser_47:
                     yych = *++m_cursor;
                     if (yych <= '/')
                     {
@@ -10268,16 +10351,16 @@ basic_json_parser_43:
                     }
                     if (yych <= '9')
                     {
-                        goto basic_json_parser_49;
+                        goto basic_json_parser_53;
                     }
                     goto basic_json_parser_32;
-basic_json_parser_44:
+basic_json_parser_48:
                     yych = *++m_cursor;
                     if (yych <= ',')
                     {
                         if (yych == '+')
                         {
-                            goto basic_json_parser_51;
+                            goto basic_json_parser_56;
                         }
                         goto basic_json_parser_32;
                     }
@@ -10285,7 +10368,7 @@ basic_json_parser_44:
                     {
                         if (yych <= '-')
                         {
-                            goto basic_json_parser_51;
+                            goto basic_json_parser_56;
                         }
                         if (yych <= '/')
                         {
@@ -10293,32 +10376,32 @@ basic_json_parser_44:
                         }
                         if (yych <= '9')
                         {
-                            goto basic_json_parser_52;
+                            goto basic_json_parser_57;
                         }
                         goto basic_json_parser_32;
                     }
-basic_json_parser_45:
+basic_json_parser_49:
                     yych = *++m_cursor;
                     if (yych == 'l')
                     {
-                        goto basic_json_parser_54;
+                        goto basic_json_parser_59;
                     }
                     goto basic_json_parser_32;
-basic_json_parser_46:
+basic_json_parser_50:
                     yych = *++m_cursor;
                     if (yych == 'l')
                     {
-                        goto basic_json_parser_55;
+                        goto basic_json_parser_60;
                     }
                     goto basic_json_parser_32;
-basic_json_parser_47:
+basic_json_parser_51:
                     yych = *++m_cursor;
                     if (yych == 'u')
                     {
-                        goto basic_json_parser_56;
+                        goto basic_json_parser_61;
                     }
                     goto basic_json_parser_32;
-basic_json_parser_48:
+basic_json_parser_52:
                     ++m_cursor;
                     if (m_limit <= m_cursor)
                     {
@@ -10333,7 +10416,7 @@ basic_json_parser_48:
                         }
                         if (yych <= '9')
                         {
-                            goto basic_json_parser_57;
+                            goto basic_json_parser_62;
                         }
                         goto basic_json_parser_32;
                     }
@@ -10341,7 +10424,7 @@ basic_json_parser_48:
                     {
                         if (yych <= 'F')
                         {
-                            goto basic_json_parser_57;
+                            goto basic_json_parser_62;
                         }
                         if (yych <= '`')
                         {
@@ -10349,12 +10432,12 @@ basic_json_parser_48:
                         }
                         if (yych <= 'f')
                         {
-                            goto basic_json_parser_57;
+                            goto basic_json_parser_62;
                         }
                         goto basic_json_parser_32;
                     }
-basic_json_parser_49:
-                    yyaccept = 1;
+basic_json_parser_53:
+                    yyaccept = 3;
                     m_marker = ++m_cursor;
                     if ((m_limit - m_cursor) < 3)
                     {
@@ -10365,27 +10448,30 @@ basic_json_parser_49:
                     {
                         if (yych <= '/')
                         {
-                            goto basic_json_parser_14;
+                            goto basic_json_parser_55;
                         }
                         if (yych <= '9')
                         {
-                            goto basic_json_parser_49;
+                            goto basic_json_parser_53;
                         }
-                        goto basic_json_parser_14;
                     }
                     else
                     {
                         if (yych <= 'E')
                         {
-                            goto basic_json_parser_44;
+                            goto basic_json_parser_48;
                         }
                         if (yych == 'e')
                         {
-                            goto basic_json_parser_44;
+                            goto basic_json_parser_48;
                         }
-                        goto basic_json_parser_14;
                     }
-basic_json_parser_51:
+basic_json_parser_55:
+                    {
+                        last_token_type = token_type::value_float;
+                        break;
+                    }
+basic_json_parser_56:
                     yych = *++m_cursor;
                     if (yych <= '/')
                     {
@@ -10395,7 +10481,7 @@ basic_json_parser_51:
                     {
                         goto basic_json_parser_32;
                     }
-basic_json_parser_52:
+basic_json_parser_57:
                     ++m_cursor;
                     if (m_limit <= m_cursor)
                     {
@@ -10404,35 +10490,35 @@ basic_json_parser_52:
                     yych = *m_cursor;
                     if (yych <= '/')
                     {
-                        goto basic_json_parser_14;
+                        goto basic_json_parser_55;
                     }
                     if (yych <= '9')
                     {
-                        goto basic_json_parser_52;
+                        goto basic_json_parser_57;
                     }
-                    goto basic_json_parser_14;
-basic_json_parser_54:
+                    goto basic_json_parser_55;
+basic_json_parser_59:
                     yych = *++m_cursor;
                     if (yych == 's')
                     {
-                        goto basic_json_parser_58;
+                        goto basic_json_parser_63;
                     }
                     goto basic_json_parser_32;
-basic_json_parser_55:
+basic_json_parser_60:
                     yych = *++m_cursor;
                     if (yych == 'l')
                     {
-                        goto basic_json_parser_59;
+                        goto basic_json_parser_64;
                     }
                     goto basic_json_parser_32;
-basic_json_parser_56:
+basic_json_parser_61:
                     yych = *++m_cursor;
                     if (yych == 'e')
                     {
-                        goto basic_json_parser_61;
+                        goto basic_json_parser_66;
                     }
                     goto basic_json_parser_32;
-basic_json_parser_57:
+basic_json_parser_62:
                     ++m_cursor;
                     if (m_limit <= m_cursor)
                     {
@@ -10447,7 +10533,7 @@ basic_json_parser_57:
                         }
                         if (yych <= '9')
                         {
-                            goto basic_json_parser_63;
+                            goto basic_json_parser_68;
                         }
                         goto basic_json_parser_32;
                     }
@@ -10455,7 +10541,7 @@ basic_json_parser_57:
                     {
                         if (yych <= 'F')
                         {
-                            goto basic_json_parser_63;
+                            goto basic_json_parser_68;
                         }
                         if (yych <= '`')
                         {
@@ -10463,30 +10549,30 @@ basic_json_parser_57:
                         }
                         if (yych <= 'f')
                         {
-                            goto basic_json_parser_63;
+                            goto basic_json_parser_68;
                         }
                         goto basic_json_parser_32;
                     }
-basic_json_parser_58:
+basic_json_parser_63:
                     yych = *++m_cursor;
                     if (yych == 'e')
                     {
-                        goto basic_json_parser_64;
+                        goto basic_json_parser_69;
                     }
                     goto basic_json_parser_32;
-basic_json_parser_59:
+basic_json_parser_64:
                     ++m_cursor;
                     {
                         last_token_type = token_type::literal_null;
                         break;
                     }
-basic_json_parser_61:
+basic_json_parser_66:
                     ++m_cursor;
                     {
                         last_token_type = token_type::literal_true;
                         break;
                     }
-basic_json_parser_63:
+basic_json_parser_68:
                     ++m_cursor;
                     if (m_limit <= m_cursor)
                     {
@@ -10501,7 +10587,7 @@ basic_json_parser_63:
                         }
                         if (yych <= '9')
                         {
-                            goto basic_json_parser_66;
+                            goto basic_json_parser_71;
                         }
                         goto basic_json_parser_32;
                     }
@@ -10509,7 +10595,7 @@ basic_json_parser_63:
                     {
                         if (yych <= 'F')
                         {
-                            goto basic_json_parser_66;
+                            goto basic_json_parser_71;
                         }
                         if (yych <= '`')
                         {
@@ -10517,17 +10603,17 @@ basic_json_parser_63:
                         }
                         if (yych <= 'f')
                         {
-                            goto basic_json_parser_66;
+                            goto basic_json_parser_71;
                         }
                         goto basic_json_parser_32;
                     }
-basic_json_parser_64:
+basic_json_parser_69:
                     ++m_cursor;
                     {
                         last_token_type = token_type::literal_false;
                         break;
                     }
-basic_json_parser_66:
+basic_json_parser_71:
                     ++m_cursor;
                     if (m_limit <= m_cursor)
                     {
@@ -10867,42 +10953,6 @@ basic_json_parser_66:
                 return parse(val, std::is_integral<T>());
             }
 
-            /*!
-            This is a helper to determine whether to parse the token into
-            floating-point or integral type.
-
-            @note We wouldn't need it if we had separate token types for
-            integral and floating-point cases.
-
-            @return true iff token matches `^[+-]\d+$`
-            */
-            bool is_integral() const
-            {
-                const char* p = m_start;
-
-                if (p == nullptr)
-                {
-                    return false; // LCOV_EXCL_LINE
-                }
-
-                if ((*p == '-') or (*p == '+'))
-                {
-                    ++p;
-                }
-
-                if (p == m_end)
-                {
-                    return false; // LCOV_EXCL_LINE
-                }
-
-                while ((p < m_end) and (*p >= '0') and (*p <= '9'))
-                {
-                    ++p;
-                }
-
-                return (p == m_end);
-            }
-
           private:
             const char* const m_start = nullptr;
             const char* const m_end = nullptr;
@@ -11011,7 +11061,7 @@ basic_json_parser_66:
 
                 return (x == static_cast<decltype(x)>(value)) // x fits into destination T
                        and (x < 0) == (value < 0)             // preserved sign
-                       and ((x != 0) or is_integral())        // strto[u]ll did nto fail
+                       //and ((x != 0) or is_integral())        // strto[u]ll did nto fail
                        and (errno == 0)                       // strto[u]ll did not overflow
                        and (m_start < m_end)                  // token was not empty
                        and (endptr == m_end);                 // parsed entire token exactly
@@ -11035,46 +11085,56 @@ basic_json_parser_66:
         interpreted as a number
 
         @param[out] result  @ref basic_json object to receive the number.
+        @param[in]  token   the type of the number token
         */
-        void get_number(basic_json& result) const
+        void get_number(basic_json& result, const token_type token) const
         {
             assert(m_start != nullptr);
             assert(m_start < m_cursor);
+            assert((token == token_type::value_unsigned_integer) or
+                   (token == token_type::value_signed_integer) or
+                   (token == token_type::value_float));
 
             strtonum num(reinterpret_cast<const char*>(m_start),
                          reinterpret_cast<const char*>(m_cursor));
 
-            const bool is_negative = (*m_start == '-');
-
-            result.m_type = value_t::discarded;
-
-            if (not num.is_integral())
+            switch (token)
             {
-                // will parse as float below
-            }
-            else if (is_negative)
-            {
-                number_integer_t val{0};
-                if (num.to(val))
+                case lexer::token_type::value_unsigned_integer:
                 {
-                    result.m_type = value_t::number_integer;
-                    result.m_value = val;
+                    number_unsigned_t val{0};
+                    if (num.to(val))
+                    {
+                        result.m_type = value_t::number_unsigned;
+                        result.m_value = val;
+                        return;
+                    }
+                    break;
                 }
-            }
-            else
-            {
-                number_unsigned_t val{0};
-                if (num.to(val))
+
+                case lexer::token_type::value_signed_integer:
                 {
-                    result.m_type  = value_t::number_unsigned;
-                    result.m_value = val;
+                    number_integer_t val{0};
+                    if (num.to(val))
+                    {
+                        result.m_type = value_t::number_integer;
+                        result.m_value = val;
+                        return;
+                    }
+                    break;
+                }
+
+                default:
+                {
+                    break;
                 }
             }
 
             number_float_t val{0};
-            if (result.m_type != value_t::discarded or (not num.to(val)))
+            if (not num.to(val))
             {
-                // already have a value from above or couldn't parse as float_t
+                // couldn't parse as float_t
+                result.m_type = value_t::discarded;
                 return;
             }
 
@@ -11330,9 +11390,11 @@ basic_json_parser_66:
                     break;
                 }
 
-                case lexer::token_type::value_number:
+                case lexer::token_type::value_unsigned_integer:
+                case lexer::token_type::value_signed_integer:
+                case lexer::token_type::value_float:
                 {
-                    m_lexer.get_number(result);
+                    m_lexer.get_number(result, last_token);
                     get_token();
                     break;
                 }
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index b3f7af8d..51760eef 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -9444,7 +9444,9 @@ class basic_json
             literal_false,   ///< the `false` literal
             literal_null,    ///< the `null` literal
             value_string,    ///< a string -- use get_string() for actual value
-            value_number,    ///< a number -- use get_number() for actual value
+            value_unsigned_integer, ///< an unsigned integer -- use get_number() for actual value
+            value_signed_integer,   ///< a signed integer -- use get_number() for actual value
+            value_float,     ///< an floating point number -- use get_number() for actual value
             begin_array,     ///< the character for array begin `[`
             begin_object,    ///< the character for object begin `{`
             end_array,       ///< the character for array end `]`
@@ -9596,7 +9598,9 @@ class basic_json
                     return "null literal";
                 case token_type::value_string:
                     return "string literal";
-                case token_type::value_number:
+                case lexer::token_type::value_unsigned_integer:
+                case lexer::token_type::value_signed_integer:
+                case lexer::token_type::value_float:
                     return "number literal";
                 case token_type::begin_array:
                     return "'['";
@@ -9684,18 +9688,22 @@ class basic_json
                     "false" { last_token_type = token_type::literal_false; break; }
 
                     // number
-                    decimal_point = ".";
-                    digit         = [0-9];
-                    digit_1_9     = [1-9];
-                    e             = "e" | "E";
-                    minus         = "-";
-                    plus          = "+";
-                    zero          = "0";
-                    exp           = e (minus | plus)? digit+;
-                    frac          = decimal_point digit+;
-                    int           = (zero | digit_1_9 digit*);
-                    number        = minus? int frac? exp?;
-                    number        { last_token_type = token_type::value_number; break; }
+                    decimal_point   = ".";
+                    digit           = [0-9];
+                    digit_1_9       = [1-9];
+                    e               = "e" | "E";
+                    minus           = "-";
+                    plus            = "+";
+                    zero            = "0";
+                    exp             = e (minus | plus)? digit+;
+                    frac            = decimal_point digit+;
+                    int             = (zero | digit_1_9 digit*);
+                    number_unsigned = int;
+                    number_unsigned { last_token_type = token_type::value_unsigned_integer; break; }
+                    number_signed   = minus int;
+                    number_signed   { last_token_type = token_type::value_signed_integer; break; }
+                    number_float    = minus? int frac? exp?;
+                    number_float    { last_token_type = token_type::value_float; break; }
 
                     // string
                     quotation_mark  = "\"";
@@ -10017,42 +10025,6 @@ class basic_json
                 return parse(val, std::is_integral<T>());
             }
 
-            /*!
-            This is a helper to determine whether to parse the token into
-            floating-point or integral type.
-
-            @note We wouldn't need it if we had separate token types for
-            integral and floating-point cases.
-
-            @return true iff token matches `^[+-]\d+$`
-            */
-            bool is_integral() const
-            {
-                const char* p = m_start;
-
-                if (p == nullptr)
-                {
-                    return false; // LCOV_EXCL_LINE
-                }
-
-                if ((*p == '-') or (*p == '+'))
-                {
-                    ++p;
-                }
-
-                if (p == m_end)
-                {
-                    return false; // LCOV_EXCL_LINE
-                }
-
-                while ((p < m_end) and (*p >= '0') and (*p <= '9'))
-                {
-                    ++p;
-                }
-
-                return (p == m_end);
-            }
-
           private:
             const char* const m_start = nullptr;
             const char* const m_end = nullptr;
@@ -10161,7 +10133,7 @@ class basic_json
 
                 return (x == static_cast<decltype(x)>(value)) // x fits into destination T
                        and (x < 0) == (value < 0)             // preserved sign
-                       and ((x != 0) or is_integral())        // strto[u]ll did nto fail
+                       //and ((x != 0) or is_integral())        // strto[u]ll did nto fail
                        and (errno == 0)                       // strto[u]ll did not overflow
                        and (m_start < m_end)                  // token was not empty
                        and (endptr == m_end);                 // parsed entire token exactly
@@ -10185,46 +10157,56 @@ class basic_json
         interpreted as a number
 
         @param[out] result  @ref basic_json object to receive the number.
+        @param[in]  token   the type of the number token
         */
-        void get_number(basic_json& result) const
+        void get_number(basic_json& result, const token_type token) const
         {
             assert(m_start != nullptr);
             assert(m_start < m_cursor);
+            assert((token == token_type::value_unsigned_integer) or
+                   (token == token_type::value_signed_integer) or
+                   (token == token_type::value_float));
 
             strtonum num(reinterpret_cast<const char*>(m_start),
                          reinterpret_cast<const char*>(m_cursor));
 
-            const bool is_negative = (*m_start == '-');
-
-            result.m_type = value_t::discarded;
-
-            if (not num.is_integral())
+            switch (token)
             {
-                // will parse as float below
-            }
-            else if (is_negative)
-            {
-                number_integer_t val{0};
-                if (num.to(val))
+                case lexer::token_type::value_unsigned_integer:
                 {
-                    result.m_type = value_t::number_integer;
-                    result.m_value = val;
+                    number_unsigned_t val{0};
+                    if (num.to(val))
+                    {
+                        result.m_type = value_t::number_unsigned;
+                        result.m_value = val;
+                        return;
+                    }
+                    break;
                 }
-            }
-            else
-            {
-                number_unsigned_t val{0};
-                if (num.to(val))
+
+                case lexer::token_type::value_signed_integer:
                 {
-                    result.m_type  = value_t::number_unsigned;
-                    result.m_value = val;
+                    number_integer_t val{0};
+                    if (num.to(val))
+                    {
+                        result.m_type = value_t::number_integer;
+                        result.m_value = val;
+                        return;
+                    }
+                    break;
+                }
+
+                default:
+                {
+                    break;
                 }
             }
 
             number_float_t val{0};
-            if (result.m_type != value_t::discarded or (not num.to(val)))
+            if (not num.to(val))
             {
-                // already have a value from above or couldn't parse as float_t
+                // couldn't parse as float_t
+                result.m_type = value_t::discarded;
                 return;
             }
 
@@ -10480,9 +10462,11 @@ class basic_json
                     break;
                 }
 
-                case lexer::token_type::value_number:
+                case lexer::token_type::value_unsigned_integer:
+                case lexer::token_type::value_signed_integer:
+                case lexer::token_type::value_float:
                 {
-                    m_lexer.get_number(result);
+                    m_lexer.get_number(result, last_token);
                     get_token();
                     break;
                 }
diff --git a/test/src/unit-class_lexer.cpp b/test/src/unit-class_lexer.cpp
index ac43de8a..268f503a 100644
--- a/test/src/unit-class_lexer.cpp
+++ b/test/src/unit-class_lexer.cpp
@@ -65,25 +65,37 @@ TEST_CASE("lexer class")
         SECTION("numbers")
         {
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("0"),
-                               1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_unsigned_integer));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1"),
-                               1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_unsigned_integer));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("2"),
-                               1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_unsigned_integer));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("3"),
-                               1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_unsigned_integer));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("4"),
-                               1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_unsigned_integer));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("5"),
-                               1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_unsigned_integer));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("6"),
-                               1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_unsigned_integer));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("7"),
-                               1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_unsigned_integer));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("8"),
-                               1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_unsigned_integer));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("9"),
-                               1).scan() == json::lexer::token_type::value_number));
+                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("-0"),
+                               2).scan() == json::lexer::token_type::value_signed_integer));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("-1"),
+                               2).scan() == json::lexer::token_type::value_signed_integer));
+
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1.1"),
+                               3).scan() == json::lexer::token_type::value_float));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("-1.1"),
+                               4).scan() == json::lexer::token_type::value_float));
+            CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1E10"),
+                               4).scan() == json::lexer::token_type::value_float));
         }
 
         SECTION("whitespace")
@@ -109,7 +121,9 @@ TEST_CASE("lexer class")
         CHECK((json::lexer::token_type_name(json::lexer::token_type::literal_false) == "false literal"));
         CHECK((json::lexer::token_type_name(json::lexer::token_type::literal_null) == "null literal"));
         CHECK((json::lexer::token_type_name(json::lexer::token_type::value_string) == "string literal"));
-        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_number) == "number literal"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_unsigned_integer) == "number literal"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_signed_integer) == "number literal"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_float) == "number literal"));
         CHECK((json::lexer::token_type_name(json::lexer::token_type::begin_array) == "'['"));
         CHECK((json::lexer::token_type_name(json::lexer::token_type::begin_object) == "'{'"));
         CHECK((json::lexer::token_type_name(json::lexer::token_type::end_array) == "']'"));

From c8191c81728a389cc8869935575eae9cca8117dd Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Sun, 12 Feb 2017 18:50:17 +0100
Subject: [PATCH 170/174] :hammer: further cleanup

---
 Makefile                      |  2 +-
 src/json.hpp                  | 42 +++++++++++++++++----------------
 src/json.hpp.re2c             | 44 ++++++++++++++++++-----------------
 test/src/unit-class_lexer.cpp | 28 +++++++++++-----------
 test/src/unit-regression.cpp  |  2 +-
 5 files changed, 61 insertions(+), 57 deletions(-)

diff --git a/Makefile b/Makefile
index 56cbdb0c..8bd7a2dd 100644
--- a/Makefile
+++ b/Makefile
@@ -94,7 +94,7 @@ cppcheck:
 
 # run clang sanitize (we are overrding the CXXFLAGS provided by travis in order to use gcc's libstdc++)
 clang_sanitize: clean
-	CXX=clang++ CXXFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer" $(MAKE)
+	CXX=clang++ CXXFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer" $(MAKE) check
 
 
 ##########################################################################
diff --git a/src/json.hpp b/src/json.hpp
index b8cdc480..873b8252 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9444,8 +9444,8 @@ class basic_json
             literal_false,   ///< the `false` literal
             literal_null,    ///< the `null` literal
             value_string,    ///< a string -- use get_string() for actual value
-            value_unsigned_integer, ///< an unsigned integer -- use get_number() for actual value
-            value_signed_integer,   ///< a signed integer -- use get_number() for actual value
+            value_unsigned,  ///< an unsigned integer -- use get_number() for actual value
+            value_integer,   ///< a signed integer -- use get_number() for actual value
             value_float,     ///< an floating point number -- use get_number() for actual value
             begin_array,     ///< the character for array begin `[`
             begin_object,    ///< the character for object begin `{`
@@ -9598,8 +9598,8 @@ class basic_json
                     return "null literal";
                 case token_type::value_string:
                     return "string literal";
-                case lexer::token_type::value_unsigned_integer:
-                case lexer::token_type::value_signed_integer:
+                case lexer::token_type::value_unsigned:
+                case lexer::token_type::value_integer:
                 case lexer::token_type::value_float:
                     return "number literal";
                 case token_type::begin_array:
@@ -9903,7 +9903,7 @@ basic_json_parser_13:
                     }
 basic_json_parser_14:
                     {
-                        last_token_type = token_type::value_unsigned_integer;
+                        last_token_type = token_type::value_unsigned;
                         break;
                     }
 basic_json_parser_15:
@@ -10301,7 +10301,7 @@ basic_json_parser_43:
                     }
 basic_json_parser_44:
                     {
-                        last_token_type = token_type::value_signed_integer;
+                        last_token_type = token_type::value_integer;
                         break;
                     }
 basic_json_parser_45:
@@ -11091,19 +11091,19 @@ basic_json_parser_71:
         {
             assert(m_start != nullptr);
             assert(m_start < m_cursor);
-            assert((token == token_type::value_unsigned_integer) or
-                   (token == token_type::value_signed_integer) or
+            assert((token == token_type::value_unsigned) or
+                   (token == token_type::value_integer) or
                    (token == token_type::value_float));
 
-            strtonum num(reinterpret_cast<const char*>(m_start),
-                         reinterpret_cast<const char*>(m_cursor));
+            strtonum num_converter(reinterpret_cast<const char*>(m_start),
+                                   reinterpret_cast<const char*>(m_cursor));
 
             switch (token)
             {
-                case lexer::token_type::value_unsigned_integer:
+                case lexer::token_type::value_unsigned:
                 {
-                    number_unsigned_t val{0};
-                    if (num.to(val))
+                    number_unsigned_t val;
+                    if (num_converter.to(val))
                     {
                         result.m_type = value_t::number_unsigned;
                         result.m_value = val;
@@ -11112,10 +11112,10 @@ basic_json_parser_71:
                     break;
                 }
 
-                case lexer::token_type::value_signed_integer:
+                case lexer::token_type::value_integer:
                 {
-                    number_integer_t val{0};
-                    if (num.to(val))
+                    number_integer_t val;
+                    if (num_converter.to(val))
                     {
                         result.m_type = value_t::number_integer;
                         result.m_value = val;
@@ -11130,8 +11130,10 @@ basic_json_parser_71:
                 }
             }
 
-            number_float_t val{0};
-            if (not num.to(val))
+            // parse float (either explicitly or because a previous conversion
+            // failed)
+            number_float_t val;
+            if (not num_converter.to(val))
             {
                 // couldn't parse as float_t
                 result.m_type = value_t::discarded;
@@ -11390,8 +11392,8 @@ basic_json_parser_71:
                     break;
                 }
 
-                case lexer::token_type::value_unsigned_integer:
-                case lexer::token_type::value_signed_integer:
+                case lexer::token_type::value_unsigned:
+                case lexer::token_type::value_integer:
                 case lexer::token_type::value_float:
                 {
                     m_lexer.get_number(result, last_token);
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 51760eef..cf6ed432 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -9444,8 +9444,8 @@ class basic_json
             literal_false,   ///< the `false` literal
             literal_null,    ///< the `null` literal
             value_string,    ///< a string -- use get_string() for actual value
-            value_unsigned_integer, ///< an unsigned integer -- use get_number() for actual value
-            value_signed_integer,   ///< a signed integer -- use get_number() for actual value
+            value_unsigned,  ///< an unsigned integer -- use get_number() for actual value
+            value_integer,   ///< a signed integer -- use get_number() for actual value
             value_float,     ///< an floating point number -- use get_number() for actual value
             begin_array,     ///< the character for array begin `[`
             begin_object,    ///< the character for object begin `{`
@@ -9598,8 +9598,8 @@ class basic_json
                     return "null literal";
                 case token_type::value_string:
                     return "string literal";
-                case lexer::token_type::value_unsigned_integer:
-                case lexer::token_type::value_signed_integer:
+                case lexer::token_type::value_unsigned:
+                case lexer::token_type::value_integer:
                 case lexer::token_type::value_float:
                     return "number literal";
                 case token_type::begin_array:
@@ -9699,9 +9699,9 @@ class basic_json
                     frac            = decimal_point digit+;
                     int             = (zero | digit_1_9 digit*);
                     number_unsigned = int;
-                    number_unsigned { last_token_type = token_type::value_unsigned_integer; break; }
-                    number_signed   = minus int;
-                    number_signed   { last_token_type = token_type::value_signed_integer; break; }
+                    number_unsigned { last_token_type = token_type::value_unsigned; break; }
+                    number_integer  = minus int;
+                    number_integer  { last_token_type = token_type::value_integer; break; }
                     number_float    = minus? int frac? exp?;
                     number_float    { last_token_type = token_type::value_float; break; }
 
@@ -10163,19 +10163,19 @@ class basic_json
         {
             assert(m_start != nullptr);
             assert(m_start < m_cursor);
-            assert((token == token_type::value_unsigned_integer) or
-                   (token == token_type::value_signed_integer) or
+            assert((token == token_type::value_unsigned) or
+                   (token == token_type::value_integer) or
                    (token == token_type::value_float));
 
-            strtonum num(reinterpret_cast<const char*>(m_start),
-                         reinterpret_cast<const char*>(m_cursor));
+            strtonum num_converter(reinterpret_cast<const char*>(m_start),
+                                   reinterpret_cast<const char*>(m_cursor));
 
             switch (token)
             {
-                case lexer::token_type::value_unsigned_integer:
+                case lexer::token_type::value_unsigned:
                 {
-                    number_unsigned_t val{0};
-                    if (num.to(val))
+                    number_unsigned_t val;
+                    if (num_converter.to(val))
                     {
                         result.m_type = value_t::number_unsigned;
                         result.m_value = val;
@@ -10184,10 +10184,10 @@ class basic_json
                     break;
                 }
 
-                case lexer::token_type::value_signed_integer:
+                case lexer::token_type::value_integer:
                 {
-                    number_integer_t val{0};
-                    if (num.to(val))
+                    number_integer_t val;
+                    if (num_converter.to(val))
                     {
                         result.m_type = value_t::number_integer;
                         result.m_value = val;
@@ -10202,8 +10202,10 @@ class basic_json
                 }
             }
 
-            number_float_t val{0};
-            if (not num.to(val))
+            // parse float (either explicitly or because a previous conversion
+            // failed)
+            number_float_t val;
+            if (not num_converter.to(val))
             {
                 // couldn't parse as float_t
                 result.m_type = value_t::discarded;
@@ -10462,8 +10464,8 @@ class basic_json
                     break;
                 }
 
-                case lexer::token_type::value_unsigned_integer:
-                case lexer::token_type::value_signed_integer:
+                case lexer::token_type::value_unsigned:
+                case lexer::token_type::value_integer:
                 case lexer::token_type::value_float:
                 {
                     m_lexer.get_number(result, last_token);
diff --git a/test/src/unit-class_lexer.cpp b/test/src/unit-class_lexer.cpp
index 268f503a..79dbb766 100644
--- a/test/src/unit-class_lexer.cpp
+++ b/test/src/unit-class_lexer.cpp
@@ -65,30 +65,30 @@ TEST_CASE("lexer class")
         SECTION("numbers")
         {
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("0"),
-                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+                               1).scan() == json::lexer::token_type::value_unsigned));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1"),
-                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+                               1).scan() == json::lexer::token_type::value_unsigned));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("2"),
-                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+                               1).scan() == json::lexer::token_type::value_unsigned));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("3"),
-                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+                               1).scan() == json::lexer::token_type::value_unsigned));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("4"),
-                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+                               1).scan() == json::lexer::token_type::value_unsigned));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("5"),
-                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+                               1).scan() == json::lexer::token_type::value_unsigned));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("6"),
-                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+                               1).scan() == json::lexer::token_type::value_unsigned));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("7"),
-                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+                               1).scan() == json::lexer::token_type::value_unsigned));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("8"),
-                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+                               1).scan() == json::lexer::token_type::value_unsigned));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("9"),
-                               1).scan() == json::lexer::token_type::value_unsigned_integer));
+                               1).scan() == json::lexer::token_type::value_unsigned));
 
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("-0"),
-                               2).scan() == json::lexer::token_type::value_signed_integer));
+                               2).scan() == json::lexer::token_type::value_integer));
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("-1"),
-                               2).scan() == json::lexer::token_type::value_signed_integer));
+                               2).scan() == json::lexer::token_type::value_integer));
 
             CHECK((json::lexer(reinterpret_cast<const json::lexer::lexer_char_t*>("1.1"),
                                3).scan() == json::lexer::token_type::value_float));
@@ -121,8 +121,8 @@ TEST_CASE("lexer class")
         CHECK((json::lexer::token_type_name(json::lexer::token_type::literal_false) == "false literal"));
         CHECK((json::lexer::token_type_name(json::lexer::token_type::literal_null) == "null literal"));
         CHECK((json::lexer::token_type_name(json::lexer::token_type::value_string) == "string literal"));
-        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_unsigned_integer) == "number literal"));
-        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_signed_integer) == "number literal"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_unsigned) == "number literal"));
+        CHECK((json::lexer::token_type_name(json::lexer::token_type::value_integer) == "number literal"));
         CHECK((json::lexer::token_type_name(json::lexer::token_type::value_float) == "number literal"));
         CHECK((json::lexer::token_type_name(json::lexer::token_type::begin_array) == "'['"));
         CHECK((json::lexer::token_type_name(json::lexer::token_type::begin_object) == "'{'"));
diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 251c4cb8..dcfcf62b 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -417,7 +417,7 @@ TEST_CASE("regression tests")
 
         // disabled, because locale-specific beharivor is not
         // triggered in AppVeyor for some reason
-#if 0
+#ifndef _MSC_VER
         {
             // verify that strtod now uses commas as decimal-separator
             CHECK(std::strtod("3,14", nullptr) == 3.14);

From b84705d5577c8e44bbb9e3fde81886ade19fcb81 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Sun, 12 Feb 2017 20:14:43 +0100
Subject: [PATCH 171/174] :white_check_mark: improved test coverage

---
 test/src/unit-class_parser.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/test/src/unit-class_parser.cpp b/test/src/unit-class_parser.cpp
index 59ea3cef..caa672a1 100644
--- a/test/src/unit-class_parser.cpp
+++ b/test/src/unit-class_parser.cpp
@@ -101,6 +101,7 @@ TEST_CASE("parser class")
                 CHECK_THROWS_WITH(json::parser("\"\b\"").parse(), "parse error - unexpected '\"'");
                 // improve code coverage
                 CHECK_THROWS_AS(json::parser("\uFF01").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("[-4:1,]").parse(), std::invalid_argument);
                 // unescaped control characters
                 CHECK_THROWS_AS(json::parser("\"\x00\"").parse(), std::invalid_argument);
                 CHECK_THROWS_AS(json::parser("\"\x01\"").parse(), std::invalid_argument);

From 265c5b5207cec0327c9e4844a56bcecaaa1f9a8d Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Mon, 13 Feb 2017 18:51:23 +0100
Subject: [PATCH 172/174] :hammer: more work on the number parser

---
 src/json.hpp                   | 60 ++++++++++++++++++++++------------
 src/json.hpp.re2c              | 60 ++++++++++++++++++++++------------
 test/src/unit-class_parser.cpp |  7 +++-
 3 files changed, 84 insertions(+), 43 deletions(-)

diff --git a/src/json.hpp b/src/json.hpp
index 873b8252..bf9386b3 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -10957,6 +10957,8 @@ basic_json_parser_71:
             const char* const m_start = nullptr;
             const char* const m_end = nullptr;
 
+            // floating-point conversion
+
             // overloaded wrappers for strtod/strtof/strtold
             // that will be called from parse<floating_point_t>
             static void strtof(float& f, const char* str, char** endptr)
@@ -10984,6 +10986,9 @@ basic_json_parser_71:
                 std::array<char, 64> buf;
                 const size_t len = static_cast<size_t>(m_end - m_start);
 
+                // lexer will reject empty numbers
+                assert(len > 0);
+
                 // since dealing with strtod family of functions, we're
                 // getting the decimal point char from the C locale facilities
                 // instead of C++'s numpunct facet of the current std::locale
@@ -11023,10 +11028,9 @@ basic_json_parser_71:
                 // this calls appropriate overload depending on T
                 strtof(value, data, &endptr);
 
-                // note that reading past the end is OK, the data may be, for
-                // example, "123.", where the parsed token only contains
-                // "123", but strtod will read the dot as well.
-                const bool ok = (endptr >= (data + len)) and (len > 0);
+                // parsing was successful iff strtof parsed exactly the number
+                // of characters determined by the lexer (len)
+                const bool ok = (endptr == (data + len));
 
                 if (ok and (value == 0.0) and (*data == '-'))
                 {
@@ -11037,6 +11041,8 @@ basic_json_parser_71:
                 return ok;
             }
 
+            // integral conversion
+
             signed long long parse_integral(char** endptr, /*is_signed*/std::true_type) const
             {
                 return std::strtoll(m_start, endptr, 10);
@@ -11087,7 +11093,7 @@ basic_json_parser_71:
         @param[out] result  @ref basic_json object to receive the number.
         @param[in]  token   the type of the number token
         */
-        void get_number(basic_json& result, const token_type token) const
+        bool get_number(basic_json& result, const token_type token) const
         {
             assert(m_start != nullptr);
             assert(m_start < m_cursor);
@@ -11105,9 +11111,10 @@ basic_json_parser_71:
                     number_unsigned_t val;
                     if (num_converter.to(val))
                     {
+                        // parsing successful
                         result.m_type = value_t::number_unsigned;
                         result.m_value = val;
-                        return;
+                        return true;
                     }
                     break;
                 }
@@ -11117,9 +11124,10 @@ basic_json_parser_71:
                     number_integer_t val;
                     if (num_converter.to(val))
                     {
+                        // parsing successful
                         result.m_type = value_t::number_integer;
                         result.m_value = val;
-                        return;
+                        return true;
                     }
                     break;
                 }
@@ -11133,22 +11141,24 @@ basic_json_parser_71:
             // parse float (either explicitly or because a previous conversion
             // failed)
             number_float_t val;
-            if (not num_converter.to(val))
+            if (num_converter.to(val))
             {
-                // couldn't parse as float_t
-                result.m_type = value_t::discarded;
-                return;
+                // parsing successful
+                result.m_type = value_t::number_float;
+                result.m_value = val;
+
+                // replace infinity and NAN by null
+                if (not std::isfinite(result.m_value.number_float))
+                {
+                    result.m_type  = value_t::null;
+                    result.m_value = basic_json::json_value();
+                }
+
+                return true;
             }
 
-            result.m_type = value_t::number_float;
-            result.m_value = val;
-
-            // replace infinity and NAN by null
-            if (not std::isfinite(result.m_value.number_float))
-            {
-                result.m_type  = value_t::null;
-                result.m_value = basic_json::json_value();
-            }
+            // couldn't parse number in any format
+            return false;
         }
 
       private:
@@ -11396,8 +11406,16 @@ basic_json_parser_71:
                 case lexer::token_type::value_integer:
                 case lexer::token_type::value_float:
                 {
-                    m_lexer.get_number(result, last_token);
+                    const bool ok = m_lexer.get_number(result, last_token);
                     get_token();
+
+                    // if number conversion was unsuccessful, then is is
+                    // because the number was directly followed by an
+                    // unexpected character (e.g. "01" where "1" is unexpected)
+                    if (not ok)
+                    {
+                        unexpect(last_token);
+                    }
                     break;
                 }
 
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index cf6ed432..e15f7b1f 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -10029,6 +10029,8 @@ class basic_json
             const char* const m_start = nullptr;
             const char* const m_end = nullptr;
 
+            // floating-point conversion
+
             // overloaded wrappers for strtod/strtof/strtold
             // that will be called from parse<floating_point_t>
             static void strtof(float& f, const char* str, char** endptr)
@@ -10056,6 +10058,9 @@ class basic_json
                 std::array<char, 64> buf;
                 const size_t len = static_cast<size_t>(m_end - m_start);
 
+                // lexer will reject empty numbers
+                assert(len > 0);
+
                 // since dealing with strtod family of functions, we're
                 // getting the decimal point char from the C locale facilities
                 // instead of C++'s numpunct facet of the current std::locale
@@ -10095,10 +10100,9 @@ class basic_json
                 // this calls appropriate overload depending on T
                 strtof(value, data, &endptr);
 
-                // note that reading past the end is OK, the data may be, for
-                // example, "123.", where the parsed token only contains
-                // "123", but strtod will read the dot as well.
-                const bool ok = (endptr >= (data + len)) and (len > 0);
+                // parsing was successful iff strtof parsed exactly the number
+                // of characters determined by the lexer (len)
+                const bool ok = (endptr == (data + len));
 
                 if (ok and (value == 0.0) and (*data == '-'))
                 {
@@ -10109,6 +10113,8 @@ class basic_json
                 return ok;
             }
 
+            // integral conversion
+
             signed long long parse_integral(char** endptr, /*is_signed*/std::true_type) const
             {
                 return std::strtoll(m_start, endptr, 10);
@@ -10159,7 +10165,7 @@ class basic_json
         @param[out] result  @ref basic_json object to receive the number.
         @param[in]  token   the type of the number token
         */
-        void get_number(basic_json& result, const token_type token) const
+        bool get_number(basic_json& result, const token_type token) const
         {
             assert(m_start != nullptr);
             assert(m_start < m_cursor);
@@ -10177,9 +10183,10 @@ class basic_json
                     number_unsigned_t val;
                     if (num_converter.to(val))
                     {
+                        // parsing successful
                         result.m_type = value_t::number_unsigned;
                         result.m_value = val;
-                        return;
+                        return true;
                     }
                     break;
                 }
@@ -10189,9 +10196,10 @@ class basic_json
                     number_integer_t val;
                     if (num_converter.to(val))
                     {
+                        // parsing successful
                         result.m_type = value_t::number_integer;
                         result.m_value = val;
-                        return;
+                        return true;
                     }
                     break;
                 }
@@ -10205,22 +10213,24 @@ class basic_json
             // parse float (either explicitly or because a previous conversion
             // failed)
             number_float_t val;
-            if (not num_converter.to(val))
+            if (num_converter.to(val))
             {
-                // couldn't parse as float_t
-                result.m_type = value_t::discarded;
-                return;
+                // parsing successful
+                result.m_type = value_t::number_float;
+                result.m_value = val;
+
+                // replace infinity and NAN by null
+                if (not std::isfinite(result.m_value.number_float))
+                {
+                    result.m_type  = value_t::null;
+                    result.m_value = basic_json::json_value();
+                }
+
+                return true;
             }
 
-            result.m_type = value_t::number_float;
-            result.m_value = val;
-
-            // replace infinity and NAN by null
-            if (not std::isfinite(result.m_value.number_float))
-            {
-                result.m_type  = value_t::null;
-                result.m_value = basic_json::json_value();
-            }
+            // couldn't parse number in any format
+            return false;
         }
 
       private:
@@ -10468,8 +10478,16 @@ class basic_json
                 case lexer::token_type::value_integer:
                 case lexer::token_type::value_float:
                 {
-                    m_lexer.get_number(result, last_token);
+                    const bool ok = m_lexer.get_number(result, last_token);
                     get_token();
+
+                    // if number conversion was unsuccessful, then is is
+                    // because the number was directly followed by an
+                    // unexpected character (e.g. "01" where "1" is unexpected)
+                    if (not ok)
+                    {
+                        unexpect(last_token);
+                    }
                     break;
                 }
 
diff --git a/test/src/unit-class_parser.cpp b/test/src/unit-class_parser.cpp
index caa672a1..2fb0da2b 100644
--- a/test/src/unit-class_parser.cpp
+++ b/test/src/unit-class_parser.cpp
@@ -270,6 +270,11 @@ TEST_CASE("parser class")
                 }
             }
 
+            SECTION("overflow")
+            {
+                CHECK(json::parser("1.18973e+4932").parse() == json());
+            }
+
             SECTION("invalid numbers")
             {
                 CHECK_THROWS_AS(json::parser("01").parse(), std::invalid_argument);
@@ -294,7 +299,7 @@ TEST_CASE("parser class")
                 CHECK_THROWS_AS(json::parser("+0").parse(), std::invalid_argument);
 
                 CHECK_THROWS_WITH(json::parser("01").parse(),
-                                  "parse error - unexpected number literal; expected end of input");
+                                  "parse error - unexpected number literal");
                 CHECK_THROWS_WITH(json::parser("--1").parse(), "parse error - unexpected '-'");
                 CHECK_THROWS_WITH(json::parser("1.").parse(),
                                   "parse error - unexpected '.'; expected end of input");

From c95ff863bfcd08325ad3d8e6023b1264b070fdca Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Mon, 13 Feb 2017 18:55:11 +0100
Subject: [PATCH 173/174] :arrow_up: updated Catch to v1.7.2

---
 test/thirdparty/catch/catch.hpp | 22073 +++++++++++++++---------------
 1 file changed, 11069 insertions(+), 11004 deletions(-)

diff --git a/test/thirdparty/catch/catch.hpp b/test/thirdparty/catch/catch.hpp
index c1ef3ed6..2a09fd19 100644
--- a/test/thirdparty/catch/catch.hpp
+++ b/test/thirdparty/catch/catch.hpp
@@ -1,11004 +1,11069 @@
-/*
- *  Catch v1.7.0
- *  Generated: 2017-02-01 21:32:13.239291
- *  ----------------------------------------------------------
- *  This file has been merged from multiple headers. Please don't edit it directly
- *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
- *
- *  Distributed under the Boost Software License, Version 1.0. (See accompanying
- *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- */
-#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
-#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
-
-#define TWOBLUECUBES_CATCH_HPP_INCLUDED
-
-#ifdef __clang__
-#    pragma clang system_header
-#elif defined __GNUC__
-#    pragma GCC system_header
-#endif
-
-// #included from: internal/catch_suppress_warnings.h
-
-#ifdef __clang__
-#   ifdef __ICC // icpc defines the __clang__ macro
-#       pragma warning(push)
-#       pragma warning(disable: 161 1682)
-#   else // __ICC
-#       pragma clang diagnostic ignored "-Wglobal-constructors"
-#       pragma clang diagnostic ignored "-Wvariadic-macros"
-#       pragma clang diagnostic ignored "-Wc99-extensions"
-#       pragma clang diagnostic ignored "-Wunused-variable"
-#       pragma clang diagnostic push
-#       pragma clang diagnostic ignored "-Wpadded"
-#       pragma clang diagnostic ignored "-Wc++98-compat"
-#       pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
-#       pragma clang diagnostic ignored "-Wswitch-enum"
-#       pragma clang diagnostic ignored "-Wcovered-switch-default"
-#    endif
-#elif defined __GNUC__
-#    pragma GCC diagnostic ignored "-Wvariadic-macros"
-#    pragma GCC diagnostic ignored "-Wunused-variable"
-#    pragma GCC diagnostic push
-#    pragma GCC diagnostic ignored "-Wpadded"
-#endif
-#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER)
-#  define CATCH_IMPL
-#endif
-
-#ifdef CATCH_IMPL
-#  ifndef CLARA_CONFIG_MAIN
-#    define CLARA_CONFIG_MAIN_NOT_DEFINED
-#    define CLARA_CONFIG_MAIN
-#  endif
-#endif
-
-// #included from: internal/catch_notimplemented_exception.h
-#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
-
-// #included from: catch_common.h
-#define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
-
-// #included from: catch_compiler_capabilities.h
-#define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
-
-// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
-// The following features are defined:
-//
-// CATCH_CONFIG_CPP11_NULLPTR : is nullptr supported?
-// CATCH_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
-// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
-// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported?
-// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported
-// CATCH_CONFIG_CPP11_LONG_LONG : is long long supported?
-// CATCH_CONFIG_CPP11_OVERRIDE : is override supported?
-// CATCH_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
-// CATCH_CONFIG_CPP11_SHUFFLE : is std::shuffle supported?
-// CATCH_CONFIG_CPP11_TYPE_TRAITS : are type_traits and enable_if supported?
-
-// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
-
-// CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported?
-// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported?
-// ****************
-// Note to maintainers: if new toggles are added please document them
-// in configuration.md, too
-// ****************
-
-// In general each macro has a _NO_<feature name> form
-// (e.g. CATCH_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
-// Many features, at point of detection, define an _INTERNAL_ macro, so they
-// can be combined, en-mass, with the _NO_ forms later.
-
-// All the C++11 features can be disabled with CATCH_CONFIG_NO_CPP11
-
-#ifdef __cplusplus
-
-#  if __cplusplus >= 201103L
-#    define CATCH_CPP11_OR_GREATER
-#  endif
-
-#  if __cplusplus >= 201402L
-#    define CATCH_CPP14_OR_GREATER
-#  endif
-
-#endif
-
-#ifdef __clang__
-
-#  if __has_feature(cxx_nullptr)
-#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
-#  endif
-
-#  if __has_feature(cxx_noexcept)
-#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#  endif
-
-#   if defined(CATCH_CPP11_OR_GREATER)
-#       define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS _Pragma( "clang diagnostic ignored \"-Wparentheses\"" )
-#   endif
-
-#endif // __clang__
-
-////////////////////////////////////////////////////////////////////////////////
-// Borland
-#ifdef __BORLANDC__
-
-#endif // __BORLANDC__
-
-////////////////////////////////////////////////////////////////////////////////
-// EDG
-#ifdef __EDG_VERSION__
-
-#endif // __EDG_VERSION__
-
-////////////////////////////////////////////////////////////////////////////////
-// Digital Mars
-#ifdef __DMC__
-
-#endif // __DMC__
-
-////////////////////////////////////////////////////////////////////////////////
-// GCC
-#ifdef __GNUC__
-
-#   if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
-#       define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
-#   endif
-
-#   if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) && defined(CATCH_CPP11_OR_GREATER)
-#       define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS _Pragma( "GCC diagnostic ignored \"-Wparentheses\"" )
-#   endif
-
-// - otherwise more recent versions define __cplusplus >= 201103L
-// and will get picked up below
-
-#endif // __GNUC__
-
-////////////////////////////////////////////////////////////////////////////////
-// Visual C++
-#ifdef _MSC_VER
-
-#if (_MSC_VER >= 1600)
-#   define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
-#   define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
-#endif
-
-#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
-#define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
-#define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
-#endif
-
-#endif // _MSC_VER
-
-////////////////////////////////////////////////////////////////////////////////
-
-// Use variadic macros if the compiler supports them
-#if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \
-    ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \
-    ( defined __GNUC__ && __GNUC__ >= 3 ) || \
-    ( !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L )
-
-#define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
-
-#endif
-
-// Use __COUNTER__ if the compiler supports it
-#if ( defined _MSC_VER && _MSC_VER >= 1300 ) || \
-    ( defined __GNUC__  && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3 ) || \
-    ( defined __clang__ && __clang_major__ >= 3 )
-
-#define CATCH_INTERNAL_CONFIG_COUNTER
-
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// C++ language feature support
-
-// catch all support for C++11
-#if defined(CATCH_CPP11_OR_GREATER)
-
-#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR)
-#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
-#  endif
-
-#  ifndef CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#  endif
-
-#  ifndef CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#    define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#  endif
-
-#  ifndef CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
-#    define CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
-#  endif
-
-#  ifndef CATCH_INTERNAL_CONFIG_CPP11_TUPLE
-#    define CATCH_INTERNAL_CONFIG_CPP11_TUPLE
-#  endif
-
-#  ifndef CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
-#    define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
-#  endif
-
-#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG)
-#    define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG
-#  endif
-
-#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE)
-#    define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE
-#  endif
-#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
-#    define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
-#  endif
-# if !defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE)
-#   define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
-#  endif
-# if !defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS)
-#  define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
-# endif
-
-#endif // __cplusplus >= 201103L
-
-// Now set the actual defines based on the above + anything the user has configured
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NO_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_NULLPTR
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_NOEXCEPT
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_GENERATED_METHODS
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_NO_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_IS_ENUM
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_CPP11_NO_TUPLE) && !defined(CATCH_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_TUPLE
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS)
-#   define CATCH_CONFIG_VARIADIC_MACROS
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_LONG_LONG
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_OVERRIDE
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_UNIQUE_PTR
-#endif
-// Use of __COUNTER__ is suppressed if __JETBRAINS_IDE__ is #defined (meaning we're being parsed by a JetBrains IDE for
-// analytics) because, at time of writing, __COUNTER__ is not properly handled by it.
-// This does not affect compilation
-#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) && !defined(__JETBRAINS_IDE__)
-#   define CATCH_CONFIG_COUNTER
-#endif
-#if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11)
-#   define CATCH_CONFIG_CPP11_SHUFFLE
-#endif
-# if defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_NO_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_NO_CPP11)
-#  define CATCH_CONFIG_CPP11_TYPE_TRAITS
-# endif
-
-#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS)
-#   define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
-#endif
-
-// noexcept support:
-#if defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_NOEXCEPT)
-#  define CATCH_NOEXCEPT noexcept
-#  define CATCH_NOEXCEPT_IS(x) noexcept(x)
-#else
-#  define CATCH_NOEXCEPT throw()
-#  define CATCH_NOEXCEPT_IS(x)
-#endif
-
-// nullptr support
-#ifdef CATCH_CONFIG_CPP11_NULLPTR
-#   define CATCH_NULL nullptr
-#else
-#   define CATCH_NULL NULL
-#endif
-
-// override support
-#ifdef CATCH_CONFIG_CPP11_OVERRIDE
-#   define CATCH_OVERRIDE override
-#else
-#   define CATCH_OVERRIDE
-#endif
-
-// unique_ptr support
-#ifdef CATCH_CONFIG_CPP11_UNIQUE_PTR
-#   define CATCH_AUTO_PTR( T ) std::unique_ptr<T>
-#else
-#   define CATCH_AUTO_PTR( T ) std::auto_ptr<T>
-#endif
-
-#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
-#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
-#ifdef CATCH_CONFIG_COUNTER
-#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )
-#else
-#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
-#endif
-
-#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr
-#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr )
-
-#include <sstream>
-#include <stdexcept>
-#include <algorithm>
-
-namespace Catch {
-
-    struct IConfig;
-
-    struct CaseSensitive { enum Choice {
-        Yes,
-        No
-    }; };
-
-    class NonCopyable {
-#ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        NonCopyable( NonCopyable const& )              = delete;
-        NonCopyable( NonCopyable && )                  = delete;
-        NonCopyable& operator = ( NonCopyable const& ) = delete;
-        NonCopyable& operator = ( NonCopyable && )     = delete;
-#else
-        NonCopyable( NonCopyable const& info );
-        NonCopyable& operator = ( NonCopyable const& );
-#endif
-
-    protected:
-        NonCopyable() {}
-        virtual ~NonCopyable();
-    };
-
-    class SafeBool {
-    public:
-        typedef void (SafeBool::*type)() const;
-
-        static type makeSafe( bool value ) {
-            return value ? &SafeBool::trueValue : 0;
-        }
-    private:
-        void trueValue() const {}
-    };
-
-    template<typename ContainerT>
-    inline void deleteAll( ContainerT& container ) {
-        typename ContainerT::const_iterator it = container.begin();
-        typename ContainerT::const_iterator itEnd = container.end();
-        for(; it != itEnd; ++it )
-            delete *it;
-    }
-    template<typename AssociativeContainerT>
-    inline void deleteAllValues( AssociativeContainerT& container ) {
-        typename AssociativeContainerT::const_iterator it = container.begin();
-        typename AssociativeContainerT::const_iterator itEnd = container.end();
-        for(; it != itEnd; ++it )
-            delete it->second;
-    }
-
-    bool startsWith( std::string const& s, std::string const& prefix );
-    bool startsWith( std::string const& s, char prefix );
-    bool endsWith( std::string const& s, std::string const& suffix );
-    bool endsWith( std::string const& s, char suffix );
-    bool contains( std::string const& s, std::string const& infix );
-    bool contains( std::string const& s, std::string const& infix );
-    void toLowerInPlace( std::string& s );
-    std::string toLower( std::string const& s );
-    std::string trim( std::string const& str );
-    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis );
-
-    struct pluralise {
-        pluralise( std::size_t count, std::string const& label );
-
-        friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser );
-
-        std::size_t m_count;
-        std::string m_label;
-    };
-
-    struct SourceLineInfo {
-
-        SourceLineInfo();
-        SourceLineInfo( char const* _file, std::size_t _line );
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        SourceLineInfo(SourceLineInfo const& other)          = default;
-        SourceLineInfo( SourceLineInfo && )                  = default;
-        SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
-        SourceLineInfo& operator = ( SourceLineInfo && )     = default;
-#  endif
-        bool empty() const;
-        bool operator == ( SourceLineInfo const& other ) const;
-        bool operator < ( SourceLineInfo const& other ) const;
-
-        char const* file;
-        std::size_t line;
-    };
-
-    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info );
-
-    // This is just here to avoid compiler warnings with macro constants and boolean literals
-    inline bool isTrue( bool value ){ return value; }
-    inline bool alwaysTrue() { return true; }
-    inline bool alwaysFalse() { return false; }
-
-    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo );
-
-    void seedRng( IConfig const& config );
-    unsigned int rngSeed();
-
-    // Use this in variadic streaming macros to allow
-    //    >> +StreamEndStop
-    // as well as
-    //    >> stuff +StreamEndStop
-    struct StreamEndStop {
-        std::string operator+() {
-            return std::string();
-        }
-    };
-    template<typename T>
-    T const& operator + ( T const& value, StreamEndStop ) {
-        return value;
-    }
-}
-
-#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )
-#define CATCH_INTERNAL_ERROR( msg ) ::Catch::throwLogicError( msg, CATCH_INTERNAL_LINEINFO );
-
-#include <ostream>
-
-namespace Catch {
-
-    class NotImplementedException : public std::exception
-    {
-    public:
-        NotImplementedException( SourceLineInfo const& lineInfo );
-        NotImplementedException( NotImplementedException const& ) {}
-
-        virtual ~NotImplementedException() CATCH_NOEXCEPT {}
-
-        virtual const char* what() const CATCH_NOEXCEPT;
-
-    private:
-        std::string m_what;
-        SourceLineInfo m_lineInfo;
-    };
-
-} // end namespace Catch
-
-///////////////////////////////////////////////////////////////////////////////
-#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO )
-
-// #included from: internal/catch_context.h
-#define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
-
-// #included from: catch_interfaces_generators.h
-#define TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    struct IGeneratorInfo {
-        virtual ~IGeneratorInfo();
-        virtual bool moveNext() = 0;
-        virtual std::size_t getCurrentIndex() const = 0;
-    };
-
-    struct IGeneratorsForTest {
-        virtual ~IGeneratorsForTest();
-
-        virtual IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) = 0;
-        virtual bool moveNext() = 0;
-    };
-
-    IGeneratorsForTest* createGeneratorsForTest();
-
-} // end namespace Catch
-
-// #included from: catch_ptr.hpp
-#define TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-namespace Catch {
-
-    // An intrusive reference counting smart pointer.
-    // T must implement addRef() and release() methods
-    // typically implementing the IShared interface
-    template<typename T>
-    class Ptr {
-    public:
-        Ptr() : m_p( CATCH_NULL ){}
-        Ptr( T* p ) : m_p( p ){
-            if( m_p )
-                m_p->addRef();
-        }
-        Ptr( Ptr const& other ) : m_p( other.m_p ){
-            if( m_p )
-                m_p->addRef();
-        }
-        ~Ptr(){
-            if( m_p )
-                m_p->release();
-        }
-        void reset() {
-            if( m_p )
-                m_p->release();
-            m_p = CATCH_NULL;
-        }
-        Ptr& operator = ( T* p ){
-            Ptr temp( p );
-            swap( temp );
-            return *this;
-        }
-        Ptr& operator = ( Ptr const& other ){
-            Ptr temp( other );
-            swap( temp );
-            return *this;
-        }
-        void swap( Ptr& other ) { std::swap( m_p, other.m_p ); }
-        T* get() const{ return m_p; }
-        T& operator*() const { return *m_p; }
-        T* operator->() const { return m_p; }
-        bool operator !() const { return m_p == CATCH_NULL; }
-        operator SafeBool::type() const { return SafeBool::makeSafe( m_p != CATCH_NULL ); }
-
-    private:
-        T* m_p;
-    };
-
-    struct IShared : NonCopyable {
-        virtual ~IShared();
-        virtual void addRef() const = 0;
-        virtual void release() const = 0;
-    };
-
-    template<typename T = IShared>
-    struct SharedImpl : T {
-
-        SharedImpl() : m_rc( 0 ){}
-
-        virtual void addRef() const {
-            ++m_rc;
-        }
-        virtual void release() const {
-            if( --m_rc == 0 )
-                delete this;
-        }
-
-        mutable unsigned int m_rc;
-    };
-
-} // end namespace Catch
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-#include <memory>
-#include <vector>
-#include <stdlib.h>
-
-namespace Catch {
-
-    class TestCase;
-    class Stream;
-    struct IResultCapture;
-    struct IRunner;
-    struct IGeneratorsForTest;
-    struct IConfig;
-
-    struct IContext
-    {
-        virtual ~IContext();
-
-        virtual IResultCapture* getResultCapture() = 0;
-        virtual IRunner* getRunner() = 0;
-        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) = 0;
-        virtual bool advanceGeneratorsForCurrentTest() = 0;
-        virtual Ptr<IConfig const> getConfig() const = 0;
-    };
-
-    struct IMutableContext : IContext
-    {
-        virtual ~IMutableContext();
-        virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
-        virtual void setRunner( IRunner* runner ) = 0;
-        virtual void setConfig( Ptr<IConfig const> const& config ) = 0;
-    };
-
-    IContext& getCurrentContext();
-    IMutableContext& getCurrentMutableContext();
-    void cleanUpContext();
-    Stream createStream( std::string const& streamName );
-
-}
-
-// #included from: internal/catch_test_registry.hpp
-#define TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED
-
-// #included from: catch_interfaces_testcase.h
-#define TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED
-
-#include <vector>
-
-namespace Catch {
-
-    class TestSpec;
-
-    struct ITestCase : IShared {
-        virtual void invoke () const = 0;
-    protected:
-        virtual ~ITestCase();
-    };
-
-    class TestCase;
-    struct IConfig;
-
-    struct ITestCaseRegistry {
-        virtual ~ITestCaseRegistry();
-        virtual std::vector<TestCase> const& getAllTests() const = 0;
-        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const = 0;
-    };
-
-    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config );
-    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config );
-    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config );
-
-}
-
-namespace Catch {
-
-template<typename C>
-class MethodTestCase : public SharedImpl<ITestCase> {
-
-public:
-    MethodTestCase( void (C::*method)() ) : m_method( method ) {}
-
-    virtual void invoke() const {
-        C obj;
-        (obj.*m_method)();
-    }
-
-private:
-    virtual ~MethodTestCase() {}
-
-    void (C::*m_method)();
-};
-
-typedef void(*TestFunction)();
-
-struct NameAndDesc {
-    NameAndDesc( const char* _name = "", const char* _description= "" )
-    : name( _name ), description( _description )
-    {}
-
-    const char* name;
-    const char* description;
-};
-
-void registerTestCase
-    (   ITestCase* testCase,
-        char const* className,
-        NameAndDesc const& nameAndDesc,
-        SourceLineInfo const& lineInfo );
-
-struct AutoReg {
-
-    AutoReg
-        (   TestFunction function,
-            SourceLineInfo const& lineInfo,
-            NameAndDesc const& nameAndDesc );
-
-    template<typename C>
-    AutoReg
-        (   void (C::*method)(),
-            char const* className,
-            NameAndDesc const& nameAndDesc,
-            SourceLineInfo const& lineInfo ) {
-
-        registerTestCase
-            (   new MethodTestCase<C>( method ),
-                className,
-                nameAndDesc,
-                lineInfo );
-    }
-
-    ~AutoReg();
-
-private:
-    AutoReg( AutoReg const& );
-    void operator= ( AutoReg const& );
-};
-
-void registerTestCaseFunction
-    (   TestFunction function,
-        SourceLineInfo const& lineInfo,
-        NameAndDesc const& nameAndDesc );
-
-} // end namespace Catch
-
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_TESTCASE2( TestName, ... ) \
-        static void TestName(); \
-        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); }\
-        static void TestName()
-    #define INTERNAL_CATCH_TESTCASE( ... ) \
-        INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ )
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \
-        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); }
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\
-        namespace{ \
-            struct TestName : ClassName{ \
-                void test(); \
-            }; \
-            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestName::test, #ClassName, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); \
-        } \
-        void TestName::test()
-    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \
-        INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ )
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \
-        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) );
-
-#else
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_TESTCASE2( TestName, Name, Desc ) \
-        static void TestName(); \
-        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); }\
-        static void TestName()
-    #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \
-        INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), Name, Desc )
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, Name, Desc ) \
-        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( Name, Desc ), CATCH_INTERNAL_LINEINFO ); }
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestCaseName, ClassName, TestName, Desc )\
-        namespace{ \
-            struct TestCaseName : ClassName{ \
-                void test(); \
-            }; \
-            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestCaseName::test, #ClassName, Catch::NameAndDesc( TestName, Desc ), CATCH_INTERNAL_LINEINFO ); \
-        } \
-        void TestCaseName::test()
-    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, TestName, Desc )\
-        INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, TestName, Desc )
-
-    ///////////////////////////////////////////////////////////////////////////////
-    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \
-        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) );
-#endif
-
-// #included from: internal/catch_capture.hpp
-#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
-
-// #included from: catch_result_builder.h
-#define TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED
-
-// #included from: catch_result_type.h
-#define TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED
-
-namespace Catch {
-
-    // ResultWas::OfType enum
-    struct ResultWas { enum OfType {
-        Unknown = -1,
-        Ok = 0,
-        Info = 1,
-        Warning = 2,
-
-        FailureBit = 0x10,
-
-        ExpressionFailed = FailureBit | 1,
-        ExplicitFailure = FailureBit | 2,
-
-        Exception = 0x100 | FailureBit,
-
-        ThrewException = Exception | 1,
-        DidntThrowException = Exception | 2,
-
-        FatalErrorCondition = 0x200 | FailureBit
-
-    }; };
-
-    inline bool isOk( ResultWas::OfType resultType ) {
-        return ( resultType & ResultWas::FailureBit ) == 0;
-    }
-    inline bool isJustInfo( int flags ) {
-        return flags == ResultWas::Info;
-    }
-
-    // ResultDisposition::Flags enum
-    struct ResultDisposition { enum Flags {
-        Normal = 0x01,
-
-        ContinueOnFailure = 0x02,   // Failures fail test, but execution continues
-        FalseTest = 0x04,           // Prefix expression with !
-        SuppressFail = 0x08         // Failures are reported but do not fail the test
-    }; };
-
-    inline ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) {
-        return static_cast<ResultDisposition::Flags>( static_cast<int>( lhs ) | static_cast<int>( rhs ) );
-    }
-
-    inline bool shouldContinueOnFailure( int flags )    { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; }
-    inline bool isFalseTest( int flags )                { return ( flags & ResultDisposition::FalseTest ) != 0; }
-    inline bool shouldSuppressFailure( int flags )      { return ( flags & ResultDisposition::SuppressFail ) != 0; }
-
-} // end namespace Catch
-
-// #included from: catch_assertionresult.h
-#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison;
-
-    struct DecomposedExpression
-    {
-        virtual ~DecomposedExpression() {}
-        virtual bool isBinaryExpression() const {
-            return false;
-        }
-        virtual void reconstructExpression( std::string& dest ) const = 0;
-
-        // Only simple binary comparisons can be decomposed.
-        // If more complex check is required then wrap sub-expressions in parentheses.
-        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( T const& );
-        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( T const& );
-        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( T const& );
-        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( T const& );
-        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator % ( T const& );
-        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( T const& );
-        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( T const& );
-    };
-
-    struct AssertionInfo
-    {
-        AssertionInfo() {}
-        AssertionInfo(  std::string const& _macroName,
-                        SourceLineInfo const& _lineInfo,
-                        std::string const& _capturedExpression,
-                        ResultDisposition::Flags _resultDisposition );
-
-        std::string macroName;
-        SourceLineInfo lineInfo;
-        std::string capturedExpression;
-        ResultDisposition::Flags resultDisposition;
-    };
-
-    struct AssertionResultData
-    {
-        AssertionResultData() : decomposedExpression( CATCH_NULL )
-                              , resultType( ResultWas::Unknown )
-                              , negated( false )
-                              , parenthesized( false ) {}
-
-        void negate( bool parenthesize ) {
-            negated = !negated;
-            parenthesized = parenthesize;
-            if( resultType == ResultWas::Ok )
-                resultType = ResultWas::ExpressionFailed;
-            else if( resultType == ResultWas::ExpressionFailed )
-                resultType = ResultWas::Ok;
-        }
-
-        std::string const& reconstructExpression() const {
-            if( decomposedExpression != CATCH_NULL ) {
-                decomposedExpression->reconstructExpression( reconstructedExpression );
-                if( parenthesized ) {
-                    reconstructedExpression.insert( 0, 1, '(' );
-                    reconstructedExpression.append( 1, ')' );
-                }
-                if( negated ) {
-                    reconstructedExpression.insert( 0, 1, '!' );
-                }
-                decomposedExpression = CATCH_NULL;
-            }
-            return reconstructedExpression;
-        }
-
-        mutable DecomposedExpression const* decomposedExpression;
-        mutable std::string reconstructedExpression;
-        std::string message;
-        ResultWas::OfType resultType;
-        bool negated;
-        bool parenthesized;
-    };
-
-    class AssertionResult {
-    public:
-        AssertionResult();
-        AssertionResult( AssertionInfo const& info, AssertionResultData const& data );
-        ~AssertionResult();
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-         AssertionResult( AssertionResult const& )              = default;
-         AssertionResult( AssertionResult && )                  = default;
-         AssertionResult& operator = ( AssertionResult const& ) = default;
-         AssertionResult& operator = ( AssertionResult && )     = default;
-#  endif
-
-        bool isOk() const;
-        bool succeeded() const;
-        ResultWas::OfType getResultType() const;
-        bool hasExpression() const;
-        bool hasMessage() const;
-        std::string getExpression() const;
-        std::string getExpressionInMacro() const;
-        bool hasExpandedExpression() const;
-        std::string getExpandedExpression() const;
-        std::string getMessage() const;
-        SourceLineInfo getSourceInfo() const;
-        std::string getTestMacroName() const;
-        void discardDecomposedExpression() const;
-        void expandDecomposedExpression() const;
-
-    protected:
-        AssertionInfo m_info;
-        AssertionResultData m_resultData;
-    };
-
-} // end namespace Catch
-
-// #included from: catch_matchers.hpp
-#define TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED
-
-namespace Catch {
-namespace Matchers {
-    namespace Impl {
-
-    namespace Generic {
-        template<typename ExpressionT> class AllOf;
-        template<typename ExpressionT> class AnyOf;
-        template<typename ExpressionT> class Not;
-    }
-
-    template<typename ExpressionT>
-    struct Matcher : SharedImpl<IShared>
-    {
-        typedef ExpressionT ExpressionType;
-
-        virtual ~Matcher() {}
-        virtual Ptr<Matcher> clone() const = 0;
-        virtual bool match( ExpressionT const& expr ) const = 0;
-        virtual std::string toString() const = 0;
-
-        Generic::AllOf<ExpressionT> operator && ( Matcher<ExpressionT> const& other ) const;
-        Generic::AnyOf<ExpressionT> operator || ( Matcher<ExpressionT> const& other ) const;
-        Generic::Not<ExpressionT> operator ! () const;
-    };
-
-    template<typename DerivedT, typename ExpressionT>
-    struct MatcherImpl : Matcher<ExpressionT> {
-
-        virtual Ptr<Matcher<ExpressionT> > clone() const {
-            return Ptr<Matcher<ExpressionT> >( new DerivedT( static_cast<DerivedT const&>( *this ) ) );
-        }
-    };
-
-    namespace Generic {
-        template<typename ExpressionT>
-        class Not : public MatcherImpl<Not<ExpressionT>, ExpressionT> {
-        public:
-            explicit Not( Matcher<ExpressionT> const& matcher ) : m_matcher(matcher.clone()) {}
-            Not( Not const& other ) : m_matcher( other.m_matcher ) {}
-
-            virtual bool match( ExpressionT const& expr ) const CATCH_OVERRIDE {
-                return !m_matcher->match( expr );
-            }
-
-            virtual std::string toString() const CATCH_OVERRIDE {
-                return "not " + m_matcher->toString();
-            }
-        private:
-            Ptr< Matcher<ExpressionT> > m_matcher;
-        };
-
-        template<typename ExpressionT>
-        class AllOf : public MatcherImpl<AllOf<ExpressionT>, ExpressionT> {
-        public:
-
-            AllOf() {}
-            AllOf( AllOf const& other ) : m_matchers( other.m_matchers ) {}
-
-            AllOf& add( Matcher<ExpressionT> const& matcher ) {
-                m_matchers.push_back( matcher.clone() );
-                return *this;
-            }
-            virtual bool match( ExpressionT const& expr ) const
-            {
-                for( std::size_t i = 0; i < m_matchers.size(); ++i )
-                    if( !m_matchers[i]->match( expr ) )
-                        return false;
-                return true;
-            }
-            virtual std::string toString() const {
-                std::ostringstream oss;
-                oss << "( ";
-                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
-                    if( i != 0 )
-                        oss << " and ";
-                    oss << m_matchers[i]->toString();
-                }
-                oss << " )";
-                return oss.str();
-            }
-
-            AllOf operator && ( Matcher<ExpressionT> const& other ) const {
-                AllOf allOfExpr( *this );
-                allOfExpr.add( other );
-                return allOfExpr;
-            }
-
-        private:
-            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
-        };
-
-        template<typename ExpressionT>
-        class AnyOf : public MatcherImpl<AnyOf<ExpressionT>, ExpressionT> {
-        public:
-
-            AnyOf() {}
-            AnyOf( AnyOf const& other ) : m_matchers( other.m_matchers ) {}
-
-            AnyOf& add( Matcher<ExpressionT> const& matcher ) {
-                m_matchers.push_back( matcher.clone() );
-                return *this;
-            }
-            virtual bool match( ExpressionT const& expr ) const
-            {
-                for( std::size_t i = 0; i < m_matchers.size(); ++i )
-                    if( m_matchers[i]->match( expr ) )
-                        return true;
-                return false;
-            }
-            virtual std::string toString() const {
-                std::ostringstream oss;
-                oss << "( ";
-                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
-                    if( i != 0 )
-                        oss << " or ";
-                    oss << m_matchers[i]->toString();
-                }
-                oss << " )";
-                return oss.str();
-            }
-
-            AnyOf operator || ( Matcher<ExpressionT> const& other ) const {
-                AnyOf anyOfExpr( *this );
-                anyOfExpr.add( other );
-                return anyOfExpr;
-            }
-
-        private:
-            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
-        };
-
-    } // namespace Generic
-
-    template<typename ExpressionT>
-    Generic::AllOf<ExpressionT> Matcher<ExpressionT>::operator && ( Matcher<ExpressionT> const& other ) const {
-        Generic::AllOf<ExpressionT> allOfExpr;
-        allOfExpr.add( *this );
-        allOfExpr.add( other );
-        return allOfExpr;
-    }
-
-    template<typename ExpressionT>
-    Generic::AnyOf<ExpressionT> Matcher<ExpressionT>::operator || ( Matcher<ExpressionT> const& other ) const {
-        Generic::AnyOf<ExpressionT> anyOfExpr;
-        anyOfExpr.add( *this );
-        anyOfExpr.add( other );
-        return anyOfExpr;
-    }
-
-    template<typename ExpressionT>
-    Generic::Not<ExpressionT> Matcher<ExpressionT>::operator ! () const {
-        return Generic::Not<ExpressionT>( *this );
-    }
-
-    namespace StdString {
-
-        inline std::string makeString( std::string const& str ) { return str; }
-        inline std::string makeString( const char* str ) { return str ? std::string( str ) : std::string(); }
-
-        struct CasedString
-        {
-            CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity )
-            :   m_caseSensitivity( caseSensitivity ),
-                m_str( adjustString( str ) )
-            {}
-            std::string adjustString( std::string const& str ) const {
-                return m_caseSensitivity == CaseSensitive::No
-                    ? toLower( str )
-                    : str;
-
-            }
-            std::string toStringSuffix() const
-            {
-                return m_caseSensitivity == CaseSensitive::No
-                    ? " (case insensitive)"
-                    : std::string();
-            }
-            CaseSensitive::Choice m_caseSensitivity;
-            std::string m_str;
-        };
-
-        struct Equals : MatcherImpl<Equals, std::string> {
-            Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
-            :   m_data( str, caseSensitivity )
-            {}
-            Equals( Equals const& other ) : m_data( other.m_data ){}
-
-            virtual ~Equals();
-
-            virtual bool match( std::string const& expr ) const {
-                return m_data.m_str == m_data.adjustString( expr );;
-            }
-            virtual std::string toString() const {
-                return "equals: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
-            }
-
-            CasedString m_data;
-        };
-
-        struct Contains : MatcherImpl<Contains, std::string> {
-            Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
-            : m_data( substr, caseSensitivity ){}
-            Contains( Contains const& other ) : m_data( other.m_data ){}
-
-            virtual ~Contains();
-
-            virtual bool match( std::string const& expr ) const {
-                return m_data.adjustString( expr ).find( m_data.m_str ) != std::string::npos;
-            }
-            virtual std::string toString() const {
-                return "contains: \"" + m_data.m_str  + '"' + m_data.toStringSuffix();
-            }
-
-            CasedString m_data;
-        };
-
-        struct StartsWith : MatcherImpl<StartsWith, std::string> {
-            StartsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
-            : m_data( substr, caseSensitivity ){}
-
-            StartsWith( StartsWith const& other ) : m_data( other.m_data ){}
-
-            virtual ~StartsWith();
-
-            virtual bool match( std::string const& expr ) const {
-                return startsWith( m_data.adjustString( expr ), m_data.m_str );
-            }
-            virtual std::string toString() const {
-                return "starts with: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
-            }
-
-            CasedString m_data;
-        };
-
-        struct EndsWith : MatcherImpl<EndsWith, std::string> {
-            EndsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
-            : m_data( substr, caseSensitivity ){}
-            EndsWith( EndsWith const& other ) : m_data( other.m_data ){}
-
-            virtual ~EndsWith();
-
-            virtual bool match( std::string const& expr ) const {
-                return endsWith( m_data.adjustString( expr ), m_data.m_str );
-            }
-            virtual std::string toString() const {
-                return "ends with: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
-            }
-
-            CasedString m_data;
-        };
-    } // namespace StdString
-    } // namespace Impl
-
-    // The following functions create the actual matcher objects.
-    // This allows the types to be inferred
-    template<typename ExpressionT>
-    inline Impl::Generic::Not<ExpressionT> Not( Impl::Matcher<ExpressionT> const& m ) {
-        return Impl::Generic::Not<ExpressionT>( m );
-    }
-
-    template<typename ExpressionT>
-    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
-                                                    Impl::Matcher<ExpressionT> const& m2 ) {
-        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 );
-    }
-    template<typename ExpressionT>
-    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
-                                                    Impl::Matcher<ExpressionT> const& m2,
-                                                    Impl::Matcher<ExpressionT> const& m3 ) {
-        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
-    }
-    template<typename ExpressionT>
-    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
-                                                    Impl::Matcher<ExpressionT> const& m2 ) {
-        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 );
-    }
-    template<typename ExpressionT>
-    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
-                                                    Impl::Matcher<ExpressionT> const& m2,
-                                                    Impl::Matcher<ExpressionT> const& m3 ) {
-        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
-    }
-
-    inline Impl::StdString::Equals      Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
-        return Impl::StdString::Equals( str, caseSensitivity );
-    }
-    inline Impl::StdString::Equals      Equals( const char* str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
-        return Impl::StdString::Equals( Impl::StdString::makeString( str ), caseSensitivity );
-    }
-    inline Impl::StdString::Contains    Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
-        return Impl::StdString::Contains( substr, caseSensitivity );
-    }
-    inline Impl::StdString::Contains    Contains( const char* substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
-        return Impl::StdString::Contains( Impl::StdString::makeString( substr ), caseSensitivity );
-    }
-    inline Impl::StdString::StartsWith  StartsWith( std::string const& substr ) {
-        return Impl::StdString::StartsWith( substr );
-    }
-    inline Impl::StdString::StartsWith  StartsWith( const char* substr ) {
-        return Impl::StdString::StartsWith( Impl::StdString::makeString( substr ) );
-    }
-    inline Impl::StdString::EndsWith    EndsWith( std::string const& substr ) {
-        return Impl::StdString::EndsWith( substr );
-    }
-    inline Impl::StdString::EndsWith    EndsWith( const char* substr ) {
-        return Impl::StdString::EndsWith( Impl::StdString::makeString( substr ) );
-    }
-
-} // namespace Matchers
-
-using namespace Matchers;
-
-} // namespace Catch
-
-namespace Catch {
-
-    struct TestFailureException{};
-
-    template<typename T> class ExpressionLhs;
-
-    struct CopyableStream {
-        CopyableStream() {}
-        CopyableStream( CopyableStream const& other ) {
-            oss << other.oss.str();
-        }
-        CopyableStream& operator=( CopyableStream const& other ) {
-            oss.str(std::string());
-            oss << other.oss.str();
-            return *this;
-        }
-        std::ostringstream oss;
-    };
-
-    class ResultBuilder : public DecomposedExpression {
-    public:
-        ResultBuilder(  char const* macroName,
-                        SourceLineInfo const& lineInfo,
-                        char const* capturedExpression,
-                        ResultDisposition::Flags resultDisposition,
-                        char const* secondArg = "" );
-
-        template<typename T>
-        ExpressionLhs<T const&> operator <= ( T const& operand );
-        ExpressionLhs<bool> operator <= ( bool value );
-
-        template<typename T>
-        ResultBuilder& operator << ( T const& value ) {
-            m_stream.oss << value;
-            return *this;
-        }
-
-        ResultBuilder& setResultType( ResultWas::OfType result );
-        ResultBuilder& setResultType( bool result );
-
-        void endExpression( DecomposedExpression const& expr );
-
-        virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE;
-
-        AssertionResult build() const;
-        AssertionResult build( DecomposedExpression const& expr ) const;
-
-        void useActiveException( ResultDisposition::Flags resultDisposition = ResultDisposition::Normal );
-        void captureResult( ResultWas::OfType resultType );
-        void captureExpression();
-        void captureExpectedException( std::string const& expectedMessage );
-        void captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher );
-        void handleResult( AssertionResult const& result );
-        void react();
-        bool shouldDebugBreak() const;
-        bool allowThrows() const;
-
-        template<typename ArgT, typename MatcherT>
-        void captureMatch( ArgT const& arg, MatcherT const& matcher, char const* matcherString );
-
-    private:
-        AssertionInfo m_assertionInfo;
-        AssertionResultData m_data;
-        CopyableStream m_stream;
-
-        bool m_shouldDebugBreak;
-        bool m_shouldThrow;
-    };
-
-} // namespace Catch
-
-// Include after due to circular dependency:
-// #included from: catch_expression_lhs.hpp
-#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
-
-// #included from: catch_evaluate.hpp
-#define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED
-
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable:4389) // '==' : signed/unsigned mismatch
-#endif
-
-#include <cstddef>
-
-namespace Catch {
-namespace Internal {
-
-    enum Operator {
-        IsEqualTo,
-        IsNotEqualTo,
-        IsLessThan,
-        IsGreaterThan,
-        IsLessThanOrEqualTo,
-        IsGreaterThanOrEqualTo
-    };
-
-    template<Operator Op> struct OperatorTraits             { static const char* getName(){ return "*error*"; } };
-    template<> struct OperatorTraits<IsEqualTo>             { static const char* getName(){ return "=="; } };
-    template<> struct OperatorTraits<IsNotEqualTo>          { static const char* getName(){ return "!="; } };
-    template<> struct OperatorTraits<IsLessThan>            { static const char* getName(){ return "<"; } };
-    template<> struct OperatorTraits<IsGreaterThan>         { static const char* getName(){ return ">"; } };
-    template<> struct OperatorTraits<IsLessThanOrEqualTo>   { static const char* getName(){ return "<="; } };
-    template<> struct OperatorTraits<IsGreaterThanOrEqualTo>{ static const char* getName(){ return ">="; } };
-
-    template<typename T>
-    inline T& opCast(T const& t) { return const_cast<T&>(t); }
-
-// nullptr_t support based on pull request #154 from Konstantin Baumann
-#ifdef CATCH_CONFIG_CPP11_NULLPTR
-    inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; }
-#endif // CATCH_CONFIG_CPP11_NULLPTR
-
-    // So the compare overloads can be operator agnostic we convey the operator as a template
-    // enum, which is used to specialise an Evaluator for doing the comparison.
-    template<typename T1, typename T2, Operator Op>
-    class Evaluator{};
-
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsEqualTo> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs) {
-            return bool( opCast( lhs ) ==  opCast( rhs ) );
-        }
-    };
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsNotEqualTo> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
-            return bool( opCast( lhs ) != opCast( rhs ) );
-        }
-    };
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsLessThan> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
-            return bool( opCast( lhs ) < opCast( rhs ) );
-        }
-    };
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsGreaterThan> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
-            return bool( opCast( lhs ) > opCast( rhs ) );
-        }
-    };
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsGreaterThanOrEqualTo> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
-            return bool( opCast( lhs ) >= opCast( rhs ) );
-        }
-    };
-    template<typename T1, typename T2>
-    struct Evaluator<T1, T2, IsLessThanOrEqualTo> {
-        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
-            return bool( opCast( lhs ) <= opCast( rhs ) );
-        }
-    };
-
-    template<Operator Op, typename T1, typename T2>
-    bool applyEvaluator( T1 const& lhs, T2 const& rhs ) {
-        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
-    }
-
-    // This level of indirection allows us to specialise for integer types
-    // to avoid signed/ unsigned warnings
-
-    // "base" overload
-    template<Operator Op, typename T1, typename T2>
-    bool compare( T1 const& lhs, T2 const& rhs ) {
-        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
-    }
-
-    // unsigned X to int
-    template<Operator Op> bool compare( unsigned int lhs, int rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
-    }
-    template<Operator Op> bool compare( unsigned long lhs, int rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
-    }
-    template<Operator Op> bool compare( unsigned char lhs, int rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
-    }
-
-    // unsigned X to long
-    template<Operator Op> bool compare( unsigned int lhs, long rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
-    }
-    template<Operator Op> bool compare( unsigned long lhs, long rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
-    }
-    template<Operator Op> bool compare( unsigned char lhs, long rhs ) {
-        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
-    }
-
-    // int to unsigned X
-    template<Operator Op> bool compare( int lhs, unsigned int rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( int lhs, unsigned long rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( int lhs, unsigned char rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
-    }
-
-    // long to unsigned X
-    template<Operator Op> bool compare( long lhs, unsigned int rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( long lhs, unsigned long rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( long lhs, unsigned char rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-
-    // pointer to long (when comparing against NULL)
-    template<Operator Op, typename T> bool compare( long lhs, T* rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
-    }
-    template<Operator Op, typename T> bool compare( T* lhs, long rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
-    }
-
-    // pointer to int (when comparing against NULL)
-    template<Operator Op, typename T> bool compare( int lhs, T* rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
-    }
-    template<Operator Op, typename T> bool compare( T* lhs, int rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
-    }
-
-#ifdef CATCH_CONFIG_CPP11_LONG_LONG
-    // long long to unsigned X
-    template<Operator Op> bool compare( long long lhs, unsigned int rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( long long lhs, unsigned long rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( long long lhs, unsigned long long rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( long long lhs, unsigned char rhs ) {
-        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
-    }
-
-    // unsigned long long to X
-    template<Operator Op> bool compare( unsigned long long lhs, int rhs ) {
-        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( unsigned long long lhs, long rhs ) {
-        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( unsigned long long lhs, long long rhs ) {
-        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
-    }
-    template<Operator Op> bool compare( unsigned long long lhs, char rhs ) {
-        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
-    }
-
-    // pointer to long long (when comparing against NULL)
-    template<Operator Op, typename T> bool compare( long long lhs, T* rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
-    }
-    template<Operator Op, typename T> bool compare( T* lhs, long long rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
-    }
-#endif // CATCH_CONFIG_CPP11_LONG_LONG
-
-#ifdef CATCH_CONFIG_CPP11_NULLPTR
-    // pointer to nullptr_t (when comparing against nullptr)
-    template<Operator Op, typename T> bool compare( std::nullptr_t, T* rhs ) {
-        return Evaluator<T*, T*, Op>::evaluate( nullptr, rhs );
-    }
-    template<Operator Op, typename T> bool compare( T* lhs, std::nullptr_t ) {
-        return Evaluator<T*, T*, Op>::evaluate( lhs, nullptr );
-    }
-#endif // CATCH_CONFIG_CPP11_NULLPTR
-
-} // end of namespace Internal
-} // end of namespace Catch
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-// #included from: catch_tostring.h
-#define TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED
-
-#include <sstream>
-#include <iomanip>
-#include <limits>
-#include <vector>
-#include <cstddef>
-
-#ifdef __OBJC__
-// #included from: catch_objc_arc.hpp
-#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
-
-#import <Foundation/Foundation.h>
-
-#ifdef __has_feature
-#define CATCH_ARC_ENABLED __has_feature(objc_arc)
-#else
-#define CATCH_ARC_ENABLED 0
-#endif
-
-void arcSafeRelease( NSObject* obj );
-id performOptionalSelector( id obj, SEL sel );
-
-#if !CATCH_ARC_ENABLED
-inline void arcSafeRelease( NSObject* obj ) {
-    [obj release];
-}
-inline id performOptionalSelector( id obj, SEL sel ) {
-    if( [obj respondsToSelector: sel] )
-        return [obj performSelector: sel];
-    return nil;
-}
-#define CATCH_UNSAFE_UNRETAINED
-#define CATCH_ARC_STRONG
-#else
-inline void arcSafeRelease( NSObject* ){}
-inline id performOptionalSelector( id obj, SEL sel ) {
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
-#endif
-    if( [obj respondsToSelector: sel] )
-        return [obj performSelector: sel];
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-    return nil;
-}
-#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
-#define CATCH_ARC_STRONG __strong
-#endif
-
-#endif
-
-#ifdef CATCH_CONFIG_CPP11_TUPLE
-#include <tuple>
-#endif
-
-#ifdef CATCH_CONFIG_CPP11_IS_ENUM
-#include <type_traits>
-#endif
-
-namespace Catch {
-
-// Why we're here.
-template<typename T>
-std::string toString( T const& value );
-
-// Built in overloads
-
-std::string toString( std::string const& value );
-std::string toString( std::wstring const& value );
-std::string toString( const char* const value );
-std::string toString( char* const value );
-std::string toString( const wchar_t* const value );
-std::string toString( wchar_t* const value );
-std::string toString( int value );
-std::string toString( unsigned long value );
-std::string toString( unsigned int value );
-std::string toString( const double value );
-std::string toString( const float value );
-std::string toString( bool value );
-std::string toString( char value );
-std::string toString( signed char value );
-std::string toString( unsigned char value );
-
-#ifdef CATCH_CONFIG_CPP11_LONG_LONG
-std::string toString( long long value );
-std::string toString( unsigned long long value );
-#endif
-
-#ifdef CATCH_CONFIG_CPP11_NULLPTR
-std::string toString( std::nullptr_t );
-#endif
-
-#ifdef __OBJC__
-    std::string toString( NSString const * const& nsstring );
-    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring );
-    std::string toString( NSObject* const& nsObject );
-#endif
-
-namespace Detail {
-
-    extern const std::string unprintableString;
-
-    struct BorgType {
-        template<typename T> BorgType( T const& );
-    };
-
-    struct TrueType { char sizer[1]; };
-    struct FalseType { char sizer[2]; };
-
-    TrueType& testStreamable( std::ostream& );
-    FalseType testStreamable( FalseType );
-
-    FalseType operator<<( std::ostream const&, BorgType const& );
-
-    template<typename T>
-    struct IsStreamInsertable {
-        static std::ostream &s;
-        static T  const&t;
-        enum { value = sizeof( testStreamable(s << t) ) == sizeof( TrueType ) };
-    };
-
-#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
-    template<typename T,
-             bool IsEnum = std::is_enum<T>::value
-             >
-    struct EnumStringMaker
-    {
-        static std::string convert( T const& ) { return unprintableString; }
-    };
-
-    template<typename T>
-    struct EnumStringMaker<T,true>
-    {
-        static std::string convert( T const& v )
-        {
-            return ::Catch::toString(
-                static_cast<typename std::underlying_type<T>::type>(v)
-                );
-        }
-    };
-#endif
-    template<bool C>
-    struct StringMakerBase {
-#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
-        template<typename T>
-        static std::string convert( T const& v )
-        {
-            return EnumStringMaker<T>::convert( v );
-        }
-#else
-        template<typename T>
-        static std::string convert( T const& ) { return unprintableString; }
-#endif
-    };
-
-    template<>
-    struct StringMakerBase<true> {
-        template<typename T>
-        static std::string convert( T const& _value ) {
-            std::ostringstream oss;
-            oss << _value;
-            return oss.str();
-        }
-    };
-
-    std::string rawMemoryToString( const void *object, std::size_t size );
-
-    template<typename T>
-    inline std::string rawMemoryToString( const T& object ) {
-      return rawMemoryToString( &object, sizeof(object) );
-    }
-
-} // end namespace Detail
-
-template<typename T>
-struct StringMaker :
-    Detail::StringMakerBase<Detail::IsStreamInsertable<T>::value> {};
-
-template<typename T>
-struct StringMaker<T*> {
-    template<typename U>
-    static std::string convert( U* p ) {
-        if( !p )
-            return "NULL";
-        else
-            return Detail::rawMemoryToString( p );
-    }
-};
-
-template<typename R, typename C>
-struct StringMaker<R C::*> {
-    static std::string convert( R C::* p ) {
-        if( !p )
-            return "NULL";
-        else
-            return Detail::rawMemoryToString( p );
-    }
-};
-
-namespace Detail {
-    template<typename InputIterator>
-    std::string rangeToString( InputIterator first, InputIterator last );
-}
-
-//template<typename T, typename Allocator>
-//struct StringMaker<std::vector<T, Allocator> > {
-//    static std::string convert( std::vector<T,Allocator> const& v ) {
-//        return Detail::rangeToString( v.begin(), v.end() );
-//    }
-//};
-
-template<typename T, typename Allocator>
-std::string toString( std::vector<T,Allocator> const& v ) {
-    return Detail::rangeToString( v.begin(), v.end() );
-}
-
-#ifdef CATCH_CONFIG_CPP11_TUPLE
-
-// toString for tuples
-namespace TupleDetail {
-  template<
-      typename Tuple,
-      std::size_t N = 0,
-      bool = (N < std::tuple_size<Tuple>::value)
-      >
-  struct ElementPrinter {
-      static void print( const Tuple& tuple, std::ostream& os )
-      {
-          os << ( N ? ", " : " " )
-             << Catch::toString(std::get<N>(tuple));
-          ElementPrinter<Tuple,N+1>::print(tuple,os);
-      }
-  };
-
-  template<
-      typename Tuple,
-      std::size_t N
-      >
-  struct ElementPrinter<Tuple,N,false> {
-      static void print( const Tuple&, std::ostream& ) {}
-  };
-
-}
-
-template<typename ...Types>
-struct StringMaker<std::tuple<Types...>> {
-
-    static std::string convert( const std::tuple<Types...>& tuple )
-    {
-        std::ostringstream os;
-        os << '{';
-        TupleDetail::ElementPrinter<std::tuple<Types...>>::print( tuple, os );
-        os << " }";
-        return os.str();
-    }
-};
-#endif // CATCH_CONFIG_CPP11_TUPLE
-
-namespace Detail {
-    template<typename T>
-    std::string makeString( T const& value ) {
-        return StringMaker<T>::convert( value );
-    }
-} // end namespace Detail
-
-/// \brief converts any type to a string
-///
-/// The default template forwards on to ostringstream - except when an
-/// ostringstream overload does not exist - in which case it attempts to detect
-/// that and writes {?}.
-/// Overload (not specialise) this template for custom typs that you don't want
-/// to provide an ostream overload for.
-template<typename T>
-std::string toString( T const& value ) {
-    return StringMaker<T>::convert( value );
-}
-
-    namespace Detail {
-    template<typename InputIterator>
-    std::string rangeToString( InputIterator first, InputIterator last ) {
-        std::ostringstream oss;
-        oss << "{ ";
-        if( first != last ) {
-            oss << Catch::toString( *first );
-            for( ++first ; first != last ; ++first )
-                oss << ", " << Catch::toString( *first );
-        }
-        oss << " }";
-        return oss.str();
-    }
-}
-
-} // end namespace Catch
-
-namespace Catch {
-
-template<typename LhsT, Internal::Operator Op, typename RhsT>
-class BinaryExpression;
-
-template<typename ArgT, typename MatcherT>
-class MatchExpression;
-
-// Wraps the LHS of an expression and overloads comparison operators
-// for also capturing those and RHS (if any)
-template<typename T>
-class ExpressionLhs : public DecomposedExpression {
-public:
-    ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs ), m_truthy(false) {}
-
-    template<typename RhsT>
-    BinaryExpression<T, Internal::IsEqualTo, RhsT const&>
-    operator == ( RhsT const& rhs ) const {
-        return captureExpression<Internal::IsEqualTo>( rhs );
-    }
-
-    template<typename RhsT>
-    BinaryExpression<T, Internal::IsNotEqualTo, RhsT const&>
-    operator != ( RhsT const& rhs ) const {
-        return captureExpression<Internal::IsNotEqualTo>( rhs );
-    }
-
-    template<typename RhsT>
-    BinaryExpression<T, Internal::IsLessThan, RhsT const&>
-    operator < ( RhsT const& rhs ) const {
-        return captureExpression<Internal::IsLessThan>( rhs );
-    }
-
-    template<typename RhsT>
-    BinaryExpression<T, Internal::IsGreaterThan, RhsT const&>
-    operator > ( RhsT const& rhs ) const {
-        return captureExpression<Internal::IsGreaterThan>( rhs );
-    }
-
-    template<typename RhsT>
-    BinaryExpression<T, Internal::IsLessThanOrEqualTo, RhsT const&>
-    operator <= ( RhsT const& rhs ) const {
-        return captureExpression<Internal::IsLessThanOrEqualTo>( rhs );
-    }
-
-    template<typename RhsT>
-    BinaryExpression<T, Internal::IsGreaterThanOrEqualTo, RhsT const&>
-    operator >= ( RhsT const& rhs ) const {
-        return captureExpression<Internal::IsGreaterThanOrEqualTo>( rhs );
-    }
-
-    BinaryExpression<T, Internal::IsEqualTo, bool> operator == ( bool rhs ) const {
-        return captureExpression<Internal::IsEqualTo>( rhs );
-    }
-
-    BinaryExpression<T, Internal::IsNotEqualTo, bool> operator != ( bool rhs ) const {
-        return captureExpression<Internal::IsNotEqualTo>( rhs );
-    }
-
-    void endExpression() {
-        m_truthy = m_lhs ? true : false;
-        m_rb
-            .setResultType( m_truthy )
-            .endExpression( *this );
-    }
-
-    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
-        dest = Catch::toString( m_truthy );
-    }
-
-private:
-    template<Internal::Operator Op, typename RhsT>
-    BinaryExpression<T, Op, RhsT&> captureExpression( RhsT& rhs ) const {
-        return BinaryExpression<T, Op, RhsT&>( m_rb, m_lhs, rhs );
-    }
-
-    template<Internal::Operator Op>
-    BinaryExpression<T, Op, bool> captureExpression( bool rhs ) const {
-        return BinaryExpression<T, Op, bool>( m_rb, m_lhs, rhs );
-    }
-
-private:
-    ResultBuilder& m_rb;
-    T m_lhs;
-    bool m_truthy;
-};
-
-template<typename LhsT, Internal::Operator Op, typename RhsT>
-class BinaryExpression : public DecomposedExpression {
-public:
-    BinaryExpression( ResultBuilder& rb, LhsT lhs, RhsT rhs )
-        : m_rb( rb ), m_lhs( lhs ), m_rhs( rhs ) {}
-
-    void endExpression() const {
-        m_rb
-            .setResultType( Internal::compare<Op>( m_lhs, m_rhs ) )
-            .endExpression( *this );
-    }
-
-    virtual bool isBinaryExpression() const CATCH_OVERRIDE {
-        return true;
-    }
-
-    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
-        std::string lhs = Catch::toString( m_lhs );
-        std::string rhs = Catch::toString( m_rhs );
-        char delim = lhs.size() + rhs.size() < 40 &&
-                     lhs.find('\n') == std::string::npos &&
-                     rhs.find('\n') == std::string::npos ? ' ' : '\n';
-        dest.reserve( 7 + lhs.size() + rhs.size() );
-                   // 2 for spaces around operator
-                   // 2 for operator
-                   // 2 for parentheses (conditionally added later)
-                   // 1 for negation (conditionally added later)
-        dest = lhs;
-        dest += delim;
-        dest += Internal::OperatorTraits<Op>::getName();
-        dest += delim;
-        dest += rhs;
-    }
-
-private:
-    ResultBuilder& m_rb;
-    LhsT m_lhs;
-    RhsT m_rhs;
-};
-
-template<typename ArgT, typename MatcherT>
-class MatchExpression : public DecomposedExpression {
-public:
-    MatchExpression( ArgT arg, MatcherT matcher, char const* matcherString )
-        : m_arg( arg ), m_matcher( matcher ), m_matcherString( matcherString ) {}
-
-    virtual bool isBinaryExpression() const CATCH_OVERRIDE {
-        return true;
-    }
-
-    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
-        std::string matcherAsString = m_matcher.toString();
-        dest = Catch::toString( m_arg );
-        dest += ' ';
-        if( matcherAsString == Detail::unprintableString )
-            dest += m_matcherString;
-        else
-            dest += matcherAsString;
-    }
-
-private:
-    ArgT m_arg;
-    MatcherT m_matcher;
-    char const* m_matcherString;
-};
-
-} // end namespace Catch
-
-
-namespace Catch {
-
-    template<typename T>
-    inline ExpressionLhs<T const&> ResultBuilder::operator <= ( T const& operand ) {
-        return ExpressionLhs<T const&>( *this, operand );
-    }
-
-    inline ExpressionLhs<bool> ResultBuilder::operator <= ( bool value ) {
-        return ExpressionLhs<bool>( *this, value );
-    }
-
-    template<typename ArgT, typename MatcherT>
-    inline void ResultBuilder::captureMatch( ArgT const& arg, MatcherT const& matcher,
-                                             char const* matcherString ) {
-        MatchExpression<ArgT const&, MatcherT const&> expr( arg, matcher, matcherString );
-        setResultType( matcher.match( arg ) );
-        endExpression( expr );
-    }
-
-} // namespace Catch
-
-// #included from: catch_message.h
-#define TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    struct MessageInfo {
-        MessageInfo(    std::string const& _macroName,
-                        SourceLineInfo const& _lineInfo,
-                        ResultWas::OfType _type );
-
-        std::string macroName;
-        SourceLineInfo lineInfo;
-        ResultWas::OfType type;
-        std::string message;
-        unsigned int sequence;
-
-        bool operator == ( MessageInfo const& other ) const {
-            return sequence == other.sequence;
-        }
-        bool operator < ( MessageInfo const& other ) const {
-            return sequence < other.sequence;
-        }
-    private:
-        static unsigned int globalCount;
-    };
-
-    struct MessageBuilder {
-        MessageBuilder( std::string const& macroName,
-                        SourceLineInfo const& lineInfo,
-                        ResultWas::OfType type )
-        : m_info( macroName, lineInfo, type )
-        {}
-
-        template<typename T>
-        MessageBuilder& operator << ( T const& value ) {
-            m_stream << value;
-            return *this;
-        }
-
-        MessageInfo m_info;
-        std::ostringstream m_stream;
-    };
-
-    class ScopedMessage {
-    public:
-        ScopedMessage( MessageBuilder const& builder );
-        ScopedMessage( ScopedMessage const& other );
-        ~ScopedMessage();
-
-        MessageInfo m_info;
-    };
-
-} // end namespace Catch
-
-// #included from: catch_interfaces_capture.h
-#define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    class TestCase;
-    class AssertionResult;
-    struct AssertionInfo;
-    struct SectionInfo;
-    struct SectionEndInfo;
-    struct MessageInfo;
-    class ScopedMessageBuilder;
-    struct Counts;
-
-    struct IResultCapture {
-
-        virtual ~IResultCapture();
-
-        virtual void assertionEnded( AssertionResult const& result ) = 0;
-        virtual bool sectionStarted(    SectionInfo const& sectionInfo,
-                                        Counts& assertions ) = 0;
-        virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0;
-        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0;
-        virtual void pushScopedMessage( MessageInfo const& message ) = 0;
-        virtual void popScopedMessage( MessageInfo const& message ) = 0;
-
-        virtual std::string getCurrentTestName() const = 0;
-        virtual const AssertionResult* getLastResult() const = 0;
-
-        virtual void handleFatalErrorCondition( std::string const& message ) = 0;
-    };
-
-    IResultCapture& getResultCapture();
-}
-
-// #included from: catch_debugger.h
-#define TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED
-
-// #included from: catch_platform.h
-#define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED
-
-#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
-#  define CATCH_PLATFORM_MAC
-#elif  defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
-#  define CATCH_PLATFORM_IPHONE
-#elif defined(linux) || defined(__linux) || defined(__linux__)
-#  define CATCH_PLATFORM_LINUX
-#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
-#  define CATCH_PLATFORM_WINDOWS
-#  if !defined(NOMINMAX) && !defined(CATCH_CONFIG_NO_NOMINMAX)
-#    define CATCH_DEFINES_NOMINMAX
-#  endif
-#  if !defined(WIN32_LEAN_AND_MEAN) && !defined(CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN)
-#    define CATCH_DEFINES_WIN32_LEAN_AND_MEAN
-#  endif
-#endif
-
-#include <string>
-
-namespace Catch{
-
-    bool isDebuggerActive();
-    void writeToDebugConsole( std::string const& text );
-}
-
-#ifdef CATCH_PLATFORM_MAC
-
-    // The following code snippet based on:
-    // http://cocoawithlove.com/2008/03/break-into-debugger.html
-    #if defined(__ppc64__) || defined(__ppc__)
-        #define CATCH_TRAP() \
-                __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \
-                : : : "memory","r0","r3","r4" )
-    #else
-        #define CATCH_TRAP() __asm__("int $3\n" : : )
-    #endif
-
-#elif defined(CATCH_PLATFORM_LINUX)
-    // If we can use inline assembler, do it because this allows us to break
-    // directly at the location of the failing check instead of breaking inside
-    // raise() called from it, i.e. one stack frame below.
-    #if defined(__GNUC__) && (defined(__i386) || defined(__x86_64))
-        #define CATCH_TRAP() asm volatile ("int $3")
-    #else // Fall back to the generic way.
-        #include <signal.h>
-
-        #define CATCH_TRAP() raise(SIGTRAP)
-    #endif
-#elif defined(_MSC_VER)
-    #define CATCH_TRAP() __debugbreak()
-#elif defined(__MINGW32__)
-    extern "C" __declspec(dllimport) void __stdcall DebugBreak();
-    #define CATCH_TRAP() DebugBreak()
-#endif
-
-#ifdef CATCH_TRAP
-    #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { CATCH_TRAP(); }
-#else
-    #define CATCH_BREAK_INTO_DEBUGGER() Catch::alwaysTrue();
-#endif
-
-// #included from: catch_interfaces_runner.h
-#define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED
-
-namespace Catch {
-    class TestCase;
-
-    struct IRunner {
-        virtual ~IRunner();
-        virtual bool aborting() const = 0;
-    };
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// In the event of a failure works out if the debugger needs to be invoked
-// and/or an exception thrown and takes appropriate action.
-// This needs to be done as a macro so the debugger will stop in the user
-// source code rather than in Catch library code
-#define INTERNAL_CATCH_REACT( resultBuilder ) \
-    if( resultBuilder.shouldDebugBreak() ) CATCH_BREAK_INTO_DEBUGGER(); \
-    resultBuilder.react();
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ) \
-    do { \
-        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
-        try { \
-            CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \
-            ( __catchResult <= expr ).endExpression(); \
-        } \
-        catch( ... ) { \
-            __catchResult.useActiveException( resultDisposition ); \
-        } \
-        INTERNAL_CATCH_REACT( __catchResult ) \
-    } while( Catch::isTrue( false && static_cast<bool>( !!(expr) ) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look
-    // The double negation silences MSVC's C4800 warning, the static_cast forces short-circuit evaluation if the type has overloaded &&.
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_IF( expr, resultDisposition, macroName ) \
-    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
-    if( Catch::getResultCapture().getLastResult()->succeeded() )
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_ELSE( expr, resultDisposition, macroName ) \
-    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
-    if( !Catch::getResultCapture().getLastResult()->succeeded() )
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_NO_THROW( expr, resultDisposition, macroName ) \
-    do { \
-        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
-        try { \
-            static_cast<void>(expr); \
-            __catchResult.captureResult( Catch::ResultWas::Ok ); \
-        } \
-        catch( ... ) { \
-            __catchResult.useActiveException( resultDisposition ); \
-        } \
-        INTERNAL_CATCH_REACT( __catchResult ) \
-    } while( Catch::alwaysFalse() )
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_THROWS( expr, resultDisposition, matcher, macroName ) \
-    do { \
-        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition, #matcher ); \
-        if( __catchResult.allowThrows() ) \
-            try { \
-                static_cast<void>(expr); \
-                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
-            } \
-            catch( ... ) { \
-                __catchResult.captureExpectedException( matcher ); \
-            } \
-        else \
-            __catchResult.captureResult( Catch::ResultWas::Ok ); \
-        INTERNAL_CATCH_REACT( __catchResult ) \
-    } while( Catch::alwaysFalse() )
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, resultDisposition, macroName ) \
-    do { \
-        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
-        if( __catchResult.allowThrows() ) \
-            try { \
-                static_cast<void>(expr); \
-                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
-            } \
-            catch( exceptionType ) { \
-                __catchResult.captureResult( Catch::ResultWas::Ok ); \
-            } \
-            catch( ... ) { \
-                __catchResult.useActiveException( resultDisposition ); \
-            } \
-        else \
-            __catchResult.captureResult( Catch::ResultWas::Ok ); \
-        INTERNAL_CATCH_REACT( __catchResult ) \
-    } while( Catch::alwaysFalse() )
-
-///////////////////////////////////////////////////////////////////////////////
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, ... ) \
-        do { \
-            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
-            __catchResult << __VA_ARGS__ + ::Catch::StreamEndStop(); \
-            __catchResult.captureResult( messageType ); \
-            INTERNAL_CATCH_REACT( __catchResult ) \
-        } while( Catch::alwaysFalse() )
-#else
-    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \
-        do { \
-            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
-            __catchResult << log + ::Catch::StreamEndStop(); \
-            __catchResult.captureResult( messageType ); \
-            INTERNAL_CATCH_REACT( __catchResult ) \
-        } while( Catch::alwaysFalse() )
-#endif
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_INFO( log, macroName ) \
-    Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage ) = Catch::MessageBuilder( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log;
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CHECK_THAT( arg, matcher, resultDisposition, macroName ) \
-    do { \
-        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \
-        try { \
-            __catchResult.captureMatch( arg, matcher, #matcher ); \
-        } catch( ... ) { \
-            __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \
-        } \
-        INTERNAL_CATCH_REACT( __catchResult ) \
-    } while( Catch::alwaysFalse() )
-
-// #included from: internal/catch_section.h
-#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED
-
-// #included from: catch_section_info.h
-#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED
-
-// #included from: catch_totals.hpp
-#define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED
-
-#include <cstddef>
-
-namespace Catch {
-
-    struct Counts {
-        Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {}
-
-        Counts operator - ( Counts const& other ) const {
-            Counts diff;
-            diff.passed = passed - other.passed;
-            diff.failed = failed - other.failed;
-            diff.failedButOk = failedButOk - other.failedButOk;
-            return diff;
-        }
-        Counts& operator += ( Counts const& other ) {
-            passed += other.passed;
-            failed += other.failed;
-            failedButOk += other.failedButOk;
-            return *this;
-        }
-
-        std::size_t total() const {
-            return passed + failed + failedButOk;
-        }
-        bool allPassed() const {
-            return failed == 0 && failedButOk == 0;
-        }
-        bool allOk() const {
-            return failed == 0;
-        }
-
-        std::size_t passed;
-        std::size_t failed;
-        std::size_t failedButOk;
-    };
-
-    struct Totals {
-
-        Totals operator - ( Totals const& other ) const {
-            Totals diff;
-            diff.assertions = assertions - other.assertions;
-            diff.testCases = testCases - other.testCases;
-            return diff;
-        }
-
-        Totals delta( Totals const& prevTotals ) const {
-            Totals diff = *this - prevTotals;
-            if( diff.assertions.failed > 0 )
-                ++diff.testCases.failed;
-            else if( diff.assertions.failedButOk > 0 )
-                ++diff.testCases.failedButOk;
-            else
-                ++diff.testCases.passed;
-            return diff;
-        }
-
-        Totals& operator += ( Totals const& other ) {
-            assertions += other.assertions;
-            testCases += other.testCases;
-            return *this;
-        }
-
-        Counts assertions;
-        Counts testCases;
-    };
-}
-
-namespace Catch {
-
-    struct SectionInfo {
-        SectionInfo
-            (   SourceLineInfo const& _lineInfo,
-                std::string const& _name,
-                std::string const& _description = std::string() );
-
-        std::string name;
-        std::string description;
-        SourceLineInfo lineInfo;
-    };
-
-    struct SectionEndInfo {
-        SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prevAssertions, double _durationInSeconds )
-        : sectionInfo( _sectionInfo ), prevAssertions( _prevAssertions ), durationInSeconds( _durationInSeconds )
-        {}
-
-        SectionInfo sectionInfo;
-        Counts prevAssertions;
-        double durationInSeconds;
-    };
-
-} // end namespace Catch
-
-// #included from: catch_timer.h
-#define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED
-
-#ifdef CATCH_PLATFORM_WINDOWS
-typedef unsigned long long uint64_t;
-#else
-#include <stdint.h>
-#endif
-
-namespace Catch {
-
-    class Timer {
-    public:
-        Timer() : m_ticks( 0 ) {}
-        void start();
-        unsigned int getElapsedMicroseconds() const;
-        unsigned int getElapsedMilliseconds() const;
-        double getElapsedSeconds() const;
-
-    private:
-        uint64_t m_ticks;
-    };
-
-} // namespace Catch
-
-#include <string>
-
-namespace Catch {
-
-    class Section : NonCopyable {
-    public:
-        Section( SectionInfo const& info );
-        ~Section();
-
-        // This indicates whether the section should be executed or not
-        operator bool() const;
-
-    private:
-        SectionInfo m_info;
-
-        std::string m_name;
-        Counts m_assertions;
-        bool m_sectionIncluded;
-        Timer m_timer;
-    };
-
-} // end namespace Catch
-
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-    #define INTERNAL_CATCH_SECTION( ... ) \
-        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
-#else
-    #define INTERNAL_CATCH_SECTION( name, desc ) \
-        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) )
-#endif
-
-// #included from: internal/catch_generators.hpp
-#define TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED
-
-#include <iterator>
-#include <vector>
-#include <string>
-#include <stdlib.h>
-
-namespace Catch {
-
-template<typename T>
-struct IGenerator {
-    virtual ~IGenerator() {}
-    virtual T getValue( std::size_t index ) const = 0;
-    virtual std::size_t size () const = 0;
-};
-
-template<typename T>
-class BetweenGenerator : public IGenerator<T> {
-public:
-    BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){}
-
-    virtual T getValue( std::size_t index ) const {
-        return m_from+static_cast<int>( index );
-    }
-
-    virtual std::size_t size() const {
-        return static_cast<std::size_t>( 1+m_to-m_from );
-    }
-
-private:
-
-    T m_from;
-    T m_to;
-};
-
-template<typename T>
-class ValuesGenerator : public IGenerator<T> {
-public:
-    ValuesGenerator(){}
-
-    void add( T value ) {
-        m_values.push_back( value );
-    }
-
-    virtual T getValue( std::size_t index ) const {
-        return m_values[index];
-    }
-
-    virtual std::size_t size() const {
-        return m_values.size();
-    }
-
-private:
-    std::vector<T> m_values;
-};
-
-template<typename T>
-class CompositeGenerator {
-public:
-    CompositeGenerator() : m_totalSize( 0 ) {}
-
-    // *** Move semantics, similar to auto_ptr ***
-    CompositeGenerator( CompositeGenerator& other )
-    :   m_fileInfo( other.m_fileInfo ),
-        m_totalSize( 0 )
-    {
-        move( other );
-    }
-
-    CompositeGenerator& setFileInfo( const char* fileInfo ) {
-        m_fileInfo = fileInfo;
-        return *this;
-    }
-
-    ~CompositeGenerator() {
-        deleteAll( m_composed );
-    }
-
-    operator T () const {
-        size_t overallIndex = getCurrentContext().getGeneratorIndex( m_fileInfo, m_totalSize );
-
-        typename std::vector<const IGenerator<T>*>::const_iterator it = m_composed.begin();
-        typename std::vector<const IGenerator<T>*>::const_iterator itEnd = m_composed.end();
-        for( size_t index = 0; it != itEnd; ++it )
-        {
-            const IGenerator<T>* generator = *it;
-            if( overallIndex >= index && overallIndex < index + generator->size() )
-            {
-                return generator->getValue( overallIndex-index );
-            }
-            index += generator->size();
-        }
-        CATCH_INTERNAL_ERROR( "Indexed past end of generated range" );
-        return T(); // Suppress spurious "not all control paths return a value" warning in Visual Studio - if you know how to fix this please do so
-    }
-
-    void add( const IGenerator<T>* generator ) {
-        m_totalSize += generator->size();
-        m_composed.push_back( generator );
-    }
-
-    CompositeGenerator& then( CompositeGenerator& other ) {
-        move( other );
-        return *this;
-    }
-
-    CompositeGenerator& then( T value ) {
-        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
-        valuesGen->add( value );
-        add( valuesGen );
-        return *this;
-    }
-
-private:
-
-    void move( CompositeGenerator& other ) {
-        std::copy( other.m_composed.begin(), other.m_composed.end(), std::back_inserter( m_composed ) );
-        m_totalSize += other.m_totalSize;
-        other.m_composed.clear();
-    }
-
-    std::vector<const IGenerator<T>*> m_composed;
-    std::string m_fileInfo;
-    size_t m_totalSize;
-};
-
-namespace Generators
-{
-    template<typename T>
-    CompositeGenerator<T> between( T from, T to ) {
-        CompositeGenerator<T> generators;
-        generators.add( new BetweenGenerator<T>( from, to ) );
-        return generators;
-    }
-
-    template<typename T>
-    CompositeGenerator<T> values( T val1, T val2 ) {
-        CompositeGenerator<T> generators;
-        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
-        valuesGen->add( val1 );
-        valuesGen->add( val2 );
-        generators.add( valuesGen );
-        return generators;
-    }
-
-    template<typename T>
-    CompositeGenerator<T> values( T val1, T val2, T val3 ){
-        CompositeGenerator<T> generators;
-        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
-        valuesGen->add( val1 );
-        valuesGen->add( val2 );
-        valuesGen->add( val3 );
-        generators.add( valuesGen );
-        return generators;
-    }
-
-    template<typename T>
-    CompositeGenerator<T> values( T val1, T val2, T val3, T val4 ) {
-        CompositeGenerator<T> generators;
-        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
-        valuesGen->add( val1 );
-        valuesGen->add( val2 );
-        valuesGen->add( val3 );
-        valuesGen->add( val4 );
-        generators.add( valuesGen );
-        return generators;
-    }
-
-} // end namespace Generators
-
-using namespace Generators;
-
-} // end namespace Catch
-
-#define INTERNAL_CATCH_LINESTR2( line ) #line
-#define INTERNAL_CATCH_LINESTR( line ) INTERNAL_CATCH_LINESTR2( line )
-
-#define INTERNAL_CATCH_GENERATE( expr ) expr.setFileInfo( __FILE__ "(" INTERNAL_CATCH_LINESTR( __LINE__ ) ")" )
-
-// #included from: internal/catch_interfaces_exception.h
-#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED
-
-#include <string>
-#include <vector>
-
-// #included from: catch_interfaces_registry_hub.h
-#define TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    class TestCase;
-    struct ITestCaseRegistry;
-    struct IExceptionTranslatorRegistry;
-    struct IExceptionTranslator;
-    struct IReporterRegistry;
-    struct IReporterFactory;
-
-    struct IRegistryHub {
-        virtual ~IRegistryHub();
-
-        virtual IReporterRegistry const& getReporterRegistry() const = 0;
-        virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0;
-        virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0;
-    };
-
-    struct IMutableRegistryHub {
-        virtual ~IMutableRegistryHub();
-        virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) = 0;
-        virtual void registerListener( Ptr<IReporterFactory> const& factory ) = 0;
-        virtual void registerTest( TestCase const& testInfo ) = 0;
-        virtual void registerTranslator( const IExceptionTranslator* translator ) = 0;
-    };
-
-    IRegistryHub& getRegistryHub();
-    IMutableRegistryHub& getMutableRegistryHub();
-    void cleanUp();
-    std::string translateActiveException();
-
-}
-
-namespace Catch {
-
-    typedef std::string(*exceptionTranslateFunction)();
-
-    struct IExceptionTranslator;
-    typedef std::vector<const IExceptionTranslator*> ExceptionTranslators;
-
-    struct IExceptionTranslator {
-        virtual ~IExceptionTranslator();
-        virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0;
-    };
-
-    struct IExceptionTranslatorRegistry {
-        virtual ~IExceptionTranslatorRegistry();
-
-        virtual std::string translateActiveException() const = 0;
-    };
-
-    class ExceptionTranslatorRegistrar {
-        template<typename T>
-        class ExceptionTranslator : public IExceptionTranslator {
-        public:
-
-            ExceptionTranslator( std::string(*translateFunction)( T& ) )
-            : m_translateFunction( translateFunction )
-            {}
-
-            virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const CATCH_OVERRIDE {
-                try {
-                    if( it == itEnd )
-                        throw;
-                    else
-                        return (*it)->translate( it+1, itEnd );
-                }
-                catch( T& ex ) {
-                    return m_translateFunction( ex );
-                }
-            }
-
-        protected:
-            std::string(*m_translateFunction)( T& );
-        };
-
-    public:
-        template<typename T>
-        ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
-            getMutableRegistryHub().registerTranslator
-                ( new ExceptionTranslator<T>( translateFunction ) );
-        }
-    };
-}
-
-///////////////////////////////////////////////////////////////////////////////
-#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2( translatorName, signature ) \
-    static std::string translatorName( signature ); \
-    namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &translatorName ); }\
-    static std::string translatorName( signature )
-
-#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )
-
-// #included from: internal/catch_approx.hpp
-#define TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED
-
-#include <cmath>
-#include <limits>
-
-#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
-#include <type_traits>
-#endif
-
-namespace Catch {
-namespace Detail {
-
-    class Approx {
-    public:
-        explicit Approx ( double value )
-        :   m_epsilon( std::numeric_limits<float>::epsilon()*100 ),
-            m_scale( 1.0 ),
-            m_value( value )
-        {}
-
-        Approx( Approx const& other )
-        :   m_epsilon( other.m_epsilon ),
-            m_scale( other.m_scale ),
-            m_value( other.m_value )
-        {}
-
-        static Approx custom() {
-            return Approx( 0 );
-        }
-
-        Approx operator()( double value ) {
-            Approx approx( value );
-            approx.epsilon( m_epsilon );
-            approx.scale( m_scale );
-            return approx;
-        }
-
-#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
-        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-        friend bool operator == ( const T& lhs, Approx const& rhs ) {
-            // Thanks to Richard Harris for his help refining this formula
-            auto lhs_v = double(lhs);
-            return fabs( lhs_v - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( fabs(lhs_v), fabs(rhs.m_value) ) );
-        }
-
-        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-        friend bool operator == ( Approx const& lhs, const T& rhs ) {
-            return operator==( rhs, lhs );
-        }
-
-        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-        friend bool operator != ( T lhs, Approx const& rhs ) {
-            return !operator==( lhs, rhs );
-        }
-
-        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-        friend bool operator != ( Approx const& lhs, T rhs ) {
-            return !operator==( rhs, lhs );
-        }
-
-        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-        friend bool operator <= ( T lhs, Approx const& rhs )
-        {
-          return double(lhs) < rhs.m_value || lhs == rhs;
-        }
-
-        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-        friend bool operator <= ( Approx const& lhs, T rhs )
-        {
-          return lhs.m_value < double(rhs) || lhs == rhs;
-        }
-
-        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-        friend bool operator >= ( T lhs, Approx const& rhs )
-        {
-          return double(lhs) > rhs.m_value || lhs == rhs;
-        }
-
-        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
-        friend bool operator >= ( Approx const& lhs, T rhs )
-        {
-          return lhs.m_value > double(rhs) || lhs == rhs;
-        }
-#else
-        friend bool operator == ( double lhs, Approx const& rhs ) {
-            // Thanks to Richard Harris for his help refining this formula
-            return fabs( lhs - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( fabs(lhs), fabs(rhs.m_value) ) );
-        }
-
-        friend bool operator == ( Approx const& lhs, double rhs ) {
-            return operator==( rhs, lhs );
-        }
-
-        friend bool operator != ( double lhs, Approx const& rhs ) {
-            return !operator==( lhs, rhs );
-        }
-
-        friend bool operator != ( Approx const& lhs, double rhs ) {
-            return !operator==( rhs, lhs );
-        }
-
-        friend bool operator <= ( double lhs, Approx const& rhs )
-        {
-          return lhs < rhs.m_value || lhs == rhs;
-        }
-
-        friend bool operator <= ( Approx const& lhs, double rhs )
-        {
-          return lhs.m_value < rhs || lhs == rhs;
-        }
-
-        friend bool operator >= ( double lhs, Approx const& rhs )
-        {
-          return lhs > rhs.m_value || lhs == rhs;
-        }
-
-        friend bool operator >= ( Approx const& lhs, double rhs )
-        {
-          return lhs.m_value > rhs || lhs == rhs;
-        }
-#endif
-
-        Approx& epsilon( double newEpsilon ) {
-            m_epsilon = newEpsilon;
-            return *this;
-        }
-
-        Approx& scale( double newScale ) {
-            m_scale = newScale;
-            return *this;
-        }
-
-        std::string toString() const {
-            std::ostringstream oss;
-            oss << "Approx( " << Catch::toString( m_value ) << " )";
-            return oss.str();
-        }
-
-    private:
-        double m_epsilon;
-        double m_scale;
-        double m_value;
-    };
-}
-
-template<>
-inline std::string toString<Detail::Approx>( Detail::Approx const& value ) {
-    return value.toString();
-}
-
-} // end namespace Catch
-
-// #included from: internal/catch_interfaces_tag_alias_registry.h
-#define TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED
-
-// #included from: catch_tag_alias.h
-#define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED
-
-#include <string>
-
-namespace Catch {
-
-    struct TagAlias {
-        TagAlias( std::string _tag, SourceLineInfo _lineInfo ) : tag( _tag ), lineInfo( _lineInfo ) {}
-
-        std::string tag;
-        SourceLineInfo lineInfo;
-    };
-
-    struct RegistrarForTagAliases {
-        RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
-    };
-
-} // end namespace Catch
-
-#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); }
-// #included from: catch_option.hpp
-#define TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED
-
-namespace Catch {
-
-    // An optional type
-    template<typename T>
-    class Option {
-    public:
-        Option() : nullableValue( CATCH_NULL ) {}
-        Option( T const& _value )
-        : nullableValue( new( storage ) T( _value ) )
-        {}
-        Option( Option const& _other )
-        : nullableValue( _other ? new( storage ) T( *_other ) : CATCH_NULL )
-        {}
-
-        ~Option() {
-            reset();
-        }
-
-        Option& operator= ( Option const& _other ) {
-            if( &_other != this ) {
-                reset();
-                if( _other )
-                    nullableValue = new( storage ) T( *_other );
-            }
-            return *this;
-        }
-        Option& operator = ( T const& _value ) {
-            reset();
-            nullableValue = new( storage ) T( _value );
-            return *this;
-        }
-
-        void reset() {
-            if( nullableValue )
-                nullableValue->~T();
-            nullableValue = CATCH_NULL;
-        }
-
-        T& operator*() { return *nullableValue; }
-        T const& operator*() const { return *nullableValue; }
-        T* operator->() { return nullableValue; }
-        const T* operator->() const { return nullableValue; }
-
-        T valueOr( T const& defaultValue ) const {
-            return nullableValue ? *nullableValue : defaultValue;
-        }
-
-        bool some() const { return nullableValue != CATCH_NULL; }
-        bool none() const { return nullableValue == CATCH_NULL; }
-
-        bool operator !() const { return nullableValue == CATCH_NULL; }
-        operator SafeBool::type() const {
-            return SafeBool::makeSafe( some() );
-        }
-
-    private:
-        T* nullableValue;
-        char storage[sizeof(T)];
-    };
-
-} // end namespace Catch
-
-namespace Catch {
-
-    struct ITagAliasRegistry {
-        virtual ~ITagAliasRegistry();
-        virtual Option<TagAlias> find( std::string const& alias ) const = 0;
-        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0;
-
-        static ITagAliasRegistry const& get();
-    };
-
-} // end namespace Catch
-
-// These files are included here so the single_include script doesn't put them
-// in the conditionally compiled sections
-// #included from: internal/catch_test_case_info.h
-#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
-
-#include <string>
-#include <set>
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-namespace Catch {
-
-    struct ITestCase;
-
-    struct TestCaseInfo {
-        enum SpecialProperties{
-            None = 0,
-            IsHidden = 1 << 1,
-            ShouldFail = 1 << 2,
-            MayFail = 1 << 3,
-            Throws = 1 << 4,
-            NonPortable = 1 << 5
-        };
-
-        TestCaseInfo(   std::string const& _name,
-                        std::string const& _className,
-                        std::string const& _description,
-                        std::set<std::string> const& _tags,
-                        SourceLineInfo const& _lineInfo );
-
-        TestCaseInfo( TestCaseInfo const& other );
-
-        friend void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags );
-
-        bool isHidden() const;
-        bool throws() const;
-        bool okToFail() const;
-        bool expectedToFail() const;
-
-        std::string name;
-        std::string className;
-        std::string description;
-        std::set<std::string> tags;
-        std::set<std::string> lcaseTags;
-        std::string tagsAsString;
-        SourceLineInfo lineInfo;
-        SpecialProperties properties;
-    };
-
-    class TestCase : public TestCaseInfo {
-    public:
-
-        TestCase( ITestCase* testCase, TestCaseInfo const& info );
-        TestCase( TestCase const& other );
-
-        TestCase withName( std::string const& _newName ) const;
-
-        void invoke() const;
-
-        TestCaseInfo const& getTestCaseInfo() const;
-
-        void swap( TestCase& other );
-        bool operator == ( TestCase const& other ) const;
-        bool operator < ( TestCase const& other ) const;
-        TestCase& operator = ( TestCase const& other );
-
-    private:
-        Ptr<ITestCase> test;
-    };
-
-    TestCase makeTestCase(  ITestCase* testCase,
-                            std::string const& className,
-                            std::string const& name,
-                            std::string const& description,
-                            SourceLineInfo const& lineInfo );
-}
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-
-#ifdef __OBJC__
-// #included from: internal/catch_objc.hpp
-#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
-
-#import <objc/runtime.h>
-
-#include <string>
-
-// NB. Any general catch headers included here must be included
-// in catch.hpp first to make sure they are included by the single
-// header for non obj-usage
-
-///////////////////////////////////////////////////////////////////////////////
-// This protocol is really only here for (self) documenting purposes, since
-// all its methods are optional.
-@protocol OcFixture
-
-@optional
-
--(void) setUp;
--(void) tearDown;
-
-@end
-
-namespace Catch {
-
-    class OcMethod : public SharedImpl<ITestCase> {
-
-    public:
-        OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {}
-
-        virtual void invoke() const {
-            id obj = [[m_cls alloc] init];
-
-            performOptionalSelector( obj, @selector(setUp)  );
-            performOptionalSelector( obj, m_sel );
-            performOptionalSelector( obj, @selector(tearDown)  );
-
-            arcSafeRelease( obj );
-        }
-    private:
-        virtual ~OcMethod() {}
-
-        Class m_cls;
-        SEL m_sel;
-    };
-
-    namespace Detail{
-
-        inline std::string getAnnotation(   Class cls,
-                                            std::string const& annotationName,
-                                            std::string const& testCaseName ) {
-            NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()];
-            SEL sel = NSSelectorFromString( selStr );
-            arcSafeRelease( selStr );
-            id value = performOptionalSelector( cls, sel );
-            if( value )
-                return [(NSString*)value UTF8String];
-            return "";
-        }
-    }
-
-    inline size_t registerTestMethods() {
-        size_t noTestMethods = 0;
-        int noClasses = objc_getClassList( CATCH_NULL, 0 );
-
-        Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses);
-        objc_getClassList( classes, noClasses );
-
-        for( int c = 0; c < noClasses; c++ ) {
-            Class cls = classes[c];
-            {
-                u_int count;
-                Method* methods = class_copyMethodList( cls, &count );
-                for( u_int m = 0; m < count ; m++ ) {
-                    SEL selector = method_getName(methods[m]);
-                    std::string methodName = sel_getName(selector);
-                    if( startsWith( methodName, "Catch_TestCase_" ) ) {
-                        std::string testCaseName = methodName.substr( 15 );
-                        std::string name = Detail::getAnnotation( cls, "Name", testCaseName );
-                        std::string desc = Detail::getAnnotation( cls, "Description", testCaseName );
-                        const char* className = class_getName( cls );
-
-                        getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, name.c_str(), desc.c_str(), SourceLineInfo() ) );
-                        noTestMethods++;
-                    }
-                }
-                free(methods);
-            }
-        }
-        return noTestMethods;
-    }
-
-    namespace Matchers {
-        namespace Impl {
-        namespace NSStringMatchers {
-
-            template<typename MatcherT>
-            struct StringHolder : MatcherImpl<MatcherT, NSString*>{
-                StringHolder( NSString* substr ) : m_substr( [substr copy] ){}
-                StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){}
-                StringHolder() {
-                    arcSafeRelease( m_substr );
-                }
-
-                NSString* m_substr;
-            };
-
-            struct Equals : StringHolder<Equals> {
-                Equals( NSString* substr ) : StringHolder( substr ){}
-
-                virtual bool match( ExpressionType const& str ) const {
-                    return  (str != nil || m_substr == nil ) &&
-                            [str isEqualToString:m_substr];
-                }
-
-                virtual std::string toString() const {
-                    return "equals string: " + Catch::toString( m_substr );
-                }
-            };
-
-            struct Contains : StringHolder<Contains> {
-                Contains( NSString* substr ) : StringHolder( substr ){}
-
-                virtual bool match( ExpressionType const& str ) const {
-                    return  (str != nil || m_substr == nil ) &&
-                            [str rangeOfString:m_substr].location != NSNotFound;
-                }
-
-                virtual std::string toString() const {
-                    return "contains string: " + Catch::toString( m_substr );
-                }
-            };
-
-            struct StartsWith : StringHolder<StartsWith> {
-                StartsWith( NSString* substr ) : StringHolder( substr ){}
-
-                virtual bool match( ExpressionType const& str ) const {
-                    return  (str != nil || m_substr == nil ) &&
-                            [str rangeOfString:m_substr].location == 0;
-                }
-
-                virtual std::string toString() const {
-                    return "starts with: " + Catch::toString( m_substr );
-                }
-            };
-            struct EndsWith : StringHolder<EndsWith> {
-                EndsWith( NSString* substr ) : StringHolder( substr ){}
-
-                virtual bool match( ExpressionType const& str ) const {
-                    return  (str != nil || m_substr == nil ) &&
-                            [str rangeOfString:m_substr].location == [str length] - [m_substr length];
-                }
-
-                virtual std::string toString() const {
-                    return "ends with: " + Catch::toString( m_substr );
-                }
-            };
-
-        } // namespace NSStringMatchers
-        } // namespace Impl
-
-        inline Impl::NSStringMatchers::Equals
-            Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); }
-
-        inline Impl::NSStringMatchers::Contains
-            Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); }
-
-        inline Impl::NSStringMatchers::StartsWith
-            StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); }
-
-        inline Impl::NSStringMatchers::EndsWith
-            EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); }
-
-    } // namespace Matchers
-
-    using namespace Matchers;
-
-} // namespace Catch
-
-///////////////////////////////////////////////////////////////////////////////
-#define OC_TEST_CASE( name, desc )\
-+(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Name_test ) \
-{\
-return @ name; \
-}\
-+(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Description_test ) \
-{ \
-return @ desc; \
-} \
--(void) INTERNAL_CATCH_UNIQUE_NAME( Catch_TestCase_test )
-
-#endif
-
-#ifdef CATCH_IMPL
-// #included from: internal/catch_impl.hpp
-#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
-
-// Collect all the implementation files together here
-// These are the equivalent of what would usually be cpp files
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wweak-vtables"
-#endif
-
-// #included from: ../catch_session.hpp
-#define TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED
-
-// #included from: internal/catch_commandline.hpp
-#define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED
-
-// #included from: catch_config.hpp
-#define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED
-
-// #included from: catch_test_spec_parser.hpp
-#define TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-// #included from: catch_test_spec.hpp
-#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wpadded"
-#endif
-
-// #included from: catch_wildcard_pattern.hpp
-#define TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED
-
-namespace Catch
-{
-    class WildcardPattern {
-        enum WildcardPosition {
-            NoWildcard = 0,
-            WildcardAtStart = 1,
-            WildcardAtEnd = 2,
-            WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd
-        };
-
-    public:
-
-        WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity )
-        :   m_caseSensitivity( caseSensitivity ),
-            m_wildcard( NoWildcard ),
-            m_pattern( adjustCase( pattern ) )
-        {
-            if( startsWith( m_pattern, '*' ) ) {
-                m_pattern = m_pattern.substr( 1 );
-                m_wildcard = WildcardAtStart;
-            }
-            if( endsWith( m_pattern, '*' ) ) {
-                m_pattern = m_pattern.substr( 0, m_pattern.size()-1 );
-                m_wildcard = static_cast<WildcardPosition>( m_wildcard | WildcardAtEnd );
-            }
-        }
-        virtual ~WildcardPattern();
-        virtual bool matches( std::string const& str ) const {
-            switch( m_wildcard ) {
-                case NoWildcard:
-                    return m_pattern == adjustCase( str );
-                case WildcardAtStart:
-                    return endsWith( adjustCase( str ), m_pattern );
-                case WildcardAtEnd:
-                    return startsWith( adjustCase( str ), m_pattern );
-                case WildcardAtBothEnds:
-                    return contains( adjustCase( str ), m_pattern );
-            }
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunreachable-code"
-#endif
-            throw std::logic_error( "Unknown enum" );
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-        }
-    private:
-        std::string adjustCase( std::string const& str ) const {
-            return m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str;
-        }
-        CaseSensitive::Choice m_caseSensitivity;
-        WildcardPosition m_wildcard;
-        std::string m_pattern;
-    };
-}
-
-#include <string>
-#include <vector>
-
-namespace Catch {
-
-    class TestSpec {
-        struct Pattern : SharedImpl<> {
-            virtual ~Pattern();
-            virtual bool matches( TestCaseInfo const& testCase ) const = 0;
-        };
-        class NamePattern : public Pattern {
-        public:
-            NamePattern( std::string const& name )
-            : m_wildcardPattern( toLower( name ), CaseSensitive::No )
-            {}
-            virtual ~NamePattern();
-            virtual bool matches( TestCaseInfo const& testCase ) const {
-                return m_wildcardPattern.matches( toLower( testCase.name ) );
-            }
-        private:
-            WildcardPattern m_wildcardPattern;
-        };
-
-        class TagPattern : public Pattern {
-        public:
-            TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
-            virtual ~TagPattern();
-            virtual bool matches( TestCaseInfo const& testCase ) const {
-                return testCase.lcaseTags.find( m_tag ) != testCase.lcaseTags.end();
-            }
-        private:
-            std::string m_tag;
-        };
-
-        class ExcludedPattern : public Pattern {
-        public:
-            ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_underlyingPattern( underlyingPattern ) {}
-            virtual ~ExcludedPattern();
-            virtual bool matches( TestCaseInfo const& testCase ) const { return !m_underlyingPattern->matches( testCase ); }
-        private:
-            Ptr<Pattern> m_underlyingPattern;
-        };
-
-        struct Filter {
-            std::vector<Ptr<Pattern> > m_patterns;
-
-            bool matches( TestCaseInfo const& testCase ) const {
-                // All patterns in a filter must match for the filter to be a match
-                for( std::vector<Ptr<Pattern> >::const_iterator it = m_patterns.begin(), itEnd = m_patterns.end(); it != itEnd; ++it ) {
-                    if( !(*it)->matches( testCase ) )
-                        return false;
-                }
-                return true;
-            }
-        };
-
-    public:
-        bool hasFilters() const {
-            return !m_filters.empty();
-        }
-        bool matches( TestCaseInfo const& testCase ) const {
-            // A TestSpec matches if any filter matches
-            for( std::vector<Filter>::const_iterator it = m_filters.begin(), itEnd = m_filters.end(); it != itEnd; ++it )
-                if( it->matches( testCase ) )
-                    return true;
-            return false;
-        }
-
-    private:
-        std::vector<Filter> m_filters;
-
-        friend class TestSpecParser;
-    };
-}
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-namespace Catch {
-
-    class TestSpecParser {
-        enum Mode{ None, Name, QuotedName, Tag, EscapedName };
-        Mode m_mode;
-        bool m_exclusion;
-        std::size_t m_start, m_pos;
-        std::string m_arg;
-        std::vector<std::size_t> m_escapeChars;
-        TestSpec::Filter m_currentFilter;
-        TestSpec m_testSpec;
-        ITagAliasRegistry const* m_tagAliases;
-
-    public:
-        TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {}
-
-        TestSpecParser& parse( std::string const& arg ) {
-            m_mode = None;
-            m_exclusion = false;
-            m_start = std::string::npos;
-            m_arg = m_tagAliases->expandAliases( arg );
-            m_escapeChars.clear();
-            for( m_pos = 0; m_pos < m_arg.size(); ++m_pos )
-                visitChar( m_arg[m_pos] );
-            if( m_mode == Name )
-                addPattern<TestSpec::NamePattern>();
-            return *this;
-        }
-        TestSpec testSpec() {
-            addFilter();
-            return m_testSpec;
-        }
-    private:
-        void visitChar( char c ) {
-            if( m_mode == None ) {
-                switch( c ) {
-                case ' ': return;
-                case '~': m_exclusion = true; return;
-                case '[': return startNewMode( Tag, ++m_pos );
-                case '"': return startNewMode( QuotedName, ++m_pos );
-                case '\\': return escape();
-                default: startNewMode( Name, m_pos ); break;
-                }
-            }
-            if( m_mode == Name ) {
-                if( c == ',' ) {
-                    addPattern<TestSpec::NamePattern>();
-                    addFilter();
-                }
-                else if( c == '[' ) {
-                    if( subString() == "exclude:" )
-                        m_exclusion = true;
-                    else
-                        addPattern<TestSpec::NamePattern>();
-                    startNewMode( Tag, ++m_pos );
-                }
-                else if( c == '\\' )
-                    escape();
-            }
-            else if( m_mode == EscapedName )
-                m_mode = Name;
-            else if( m_mode == QuotedName && c == '"' )
-                addPattern<TestSpec::NamePattern>();
-            else if( m_mode == Tag && c == ']' )
-                addPattern<TestSpec::TagPattern>();
-        }
-        void startNewMode( Mode mode, std::size_t start ) {
-            m_mode = mode;
-            m_start = start;
-        }
-        void escape() {
-            if( m_mode == None )
-                m_start = m_pos;
-            m_mode = EscapedName;
-            m_escapeChars.push_back( m_pos );
-        }
-        std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); }
-        template<typename T>
-        void addPattern() {
-            std::string token = subString();
-            for( size_t i = 0; i < m_escapeChars.size(); ++i )
-                token = token.substr( 0, m_escapeChars[i]-i ) + token.substr( m_escapeChars[i]+1-i );
-            m_escapeChars.clear();
-            if( startsWith( token, "exclude:" ) ) {
-                m_exclusion = true;
-                token = token.substr( 8 );
-            }
-            if( !token.empty() ) {
-                Ptr<TestSpec::Pattern> pattern = new T( token );
-                if( m_exclusion )
-                    pattern = new TestSpec::ExcludedPattern( pattern );
-                m_currentFilter.m_patterns.push_back( pattern );
-            }
-            m_exclusion = false;
-            m_mode = None;
-        }
-        void addFilter() {
-            if( !m_currentFilter.m_patterns.empty() ) {
-                m_testSpec.m_filters.push_back( m_currentFilter );
-                m_currentFilter = TestSpec::Filter();
-            }
-        }
-    };
-    inline TestSpec parseTestSpec( std::string const& arg ) {
-        return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec();
-    }
-
-} // namespace Catch
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-// #included from: catch_interfaces_config.h
-#define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED
-
-#include <iostream>
-#include <string>
-#include <vector>
-
-namespace Catch {
-
-    struct Verbosity { enum Level {
-        NoOutput = 0,
-        Quiet,
-        Normal
-    }; };
-
-    struct WarnAbout { enum What {
-        Nothing = 0x00,
-        NoAssertions = 0x01
-    }; };
-
-    struct ShowDurations { enum OrNot {
-        DefaultForReporter,
-        Always,
-        Never
-    }; };
-    struct RunTests { enum InWhatOrder {
-        InDeclarationOrder,
-        InLexicographicalOrder,
-        InRandomOrder
-    }; };
-    struct UseColour { enum YesOrNo {
-        Auto,
-        Yes,
-        No
-    }; };
-
-    class TestSpec;
-
-    struct IConfig : IShared {
-
-        virtual ~IConfig();
-
-        virtual bool allowThrows() const = 0;
-        virtual std::ostream& stream() const = 0;
-        virtual std::string name() const = 0;
-        virtual bool includeSuccessfulResults() const = 0;
-        virtual bool shouldDebugBreak() const = 0;
-        virtual bool warnAboutMissingAssertions() const = 0;
-        virtual int abortAfter() const = 0;
-        virtual bool showInvisibles() const = 0;
-        virtual ShowDurations::OrNot showDurations() const = 0;
-        virtual TestSpec const& testSpec() const = 0;
-        virtual RunTests::InWhatOrder runOrder() const = 0;
-        virtual unsigned int rngSeed() const = 0;
-        virtual UseColour::YesOrNo useColour() const = 0;
-        virtual std::vector<std::string> const& getSectionsToRun() const = 0;
-
-    };
-}
-
-// #included from: catch_stream.h
-#define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
-
-// #included from: catch_streambuf.h
-#define TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED
-
-#include <streambuf>
-
-namespace Catch {
-
-    class StreamBufBase : public std::streambuf {
-    public:
-        virtual ~StreamBufBase() CATCH_NOEXCEPT;
-    };
-}
-
-#include <streambuf>
-#include <ostream>
-#include <fstream>
-#include <memory>
-
-namespace Catch {
-
-    std::ostream& cout();
-    std::ostream& cerr();
-
-    struct IStream {
-        virtual ~IStream() CATCH_NOEXCEPT;
-        virtual std::ostream& stream() const = 0;
-    };
-
-    class FileStream : public IStream {
-        mutable std::ofstream m_ofs;
-    public:
-        FileStream( std::string const& filename );
-        virtual ~FileStream() CATCH_NOEXCEPT;
-    public: // IStream
-        virtual std::ostream& stream() const CATCH_OVERRIDE;
-    };
-
-    class CoutStream : public IStream {
-        mutable std::ostream m_os;
-    public:
-        CoutStream();
-        virtual ~CoutStream() CATCH_NOEXCEPT;
-
-    public: // IStream
-        virtual std::ostream& stream() const CATCH_OVERRIDE;
-    };
-
-    class DebugOutStream : public IStream {
-        CATCH_AUTO_PTR( StreamBufBase ) m_streamBuf;
-        mutable std::ostream m_os;
-    public:
-        DebugOutStream();
-        virtual ~DebugOutStream() CATCH_NOEXCEPT;
-
-    public: // IStream
-        virtual std::ostream& stream() const CATCH_OVERRIDE;
-    };
-}
-
-#include <memory>
-#include <vector>
-#include <string>
-#include <iostream>
-#include <ctime>
-
-#ifndef CATCH_CONFIG_CONSOLE_WIDTH
-#define CATCH_CONFIG_CONSOLE_WIDTH 80
-#endif
-
-namespace Catch {
-
-    struct ConfigData {
-
-        ConfigData()
-        :   listTests( false ),
-            listTags( false ),
-            listReporters( false ),
-            listTestNamesOnly( false ),
-            showSuccessfulTests( false ),
-            shouldDebugBreak( false ),
-            noThrow( false ),
-            showHelp( false ),
-            showInvisibles( false ),
-            filenamesAsTags( false ),
-            abortAfter( -1 ),
-            rngSeed( 0 ),
-            verbosity( Verbosity::Normal ),
-            warnings( WarnAbout::Nothing ),
-            showDurations( ShowDurations::DefaultForReporter ),
-            runOrder( RunTests::InDeclarationOrder ),
-            useColour( UseColour::Auto )
-        {}
-
-        bool listTests;
-        bool listTags;
-        bool listReporters;
-        bool listTestNamesOnly;
-
-        bool showSuccessfulTests;
-        bool shouldDebugBreak;
-        bool noThrow;
-        bool showHelp;
-        bool showInvisibles;
-        bool filenamesAsTags;
-
-        int abortAfter;
-        unsigned int rngSeed;
-
-        Verbosity::Level verbosity;
-        WarnAbout::What warnings;
-        ShowDurations::OrNot showDurations;
-        RunTests::InWhatOrder runOrder;
-        UseColour::YesOrNo useColour;
-
-        std::string outputFilename;
-        std::string name;
-        std::string processName;
-
-        std::vector<std::string> reporterNames;
-        std::vector<std::string> testsOrTags;
-        std::vector<std::string> sectionsToRun;
-    };
-
-    class Config : public SharedImpl<IConfig> {
-    private:
-        Config( Config const& other );
-        Config& operator = ( Config const& other );
-        virtual void dummy();
-    public:
-
-        Config()
-        {}
-
-        Config( ConfigData const& data )
-        :   m_data( data ),
-            m_stream( openStream() )
-        {
-            if( !data.testsOrTags.empty() ) {
-                TestSpecParser parser( ITagAliasRegistry::get() );
-                for( std::size_t i = 0; i < data.testsOrTags.size(); ++i )
-                    parser.parse( data.testsOrTags[i] );
-                m_testSpec = parser.testSpec();
-            }
-        }
-
-        virtual ~Config() {
-        }
-
-        std::string const& getFilename() const {
-            return m_data.outputFilename ;
-        }
-
-        bool listTests() const { return m_data.listTests; }
-        bool listTestNamesOnly() const { return m_data.listTestNamesOnly; }
-        bool listTags() const { return m_data.listTags; }
-        bool listReporters() const { return m_data.listReporters; }
-
-        std::string getProcessName() const { return m_data.processName; }
-
-        bool shouldDebugBreak() const { return m_data.shouldDebugBreak; }
-
-        std::vector<std::string> const& getReporterNames() const { return m_data.reporterNames; }
-        std::vector<std::string> const& getSectionsToRun() const CATCH_OVERRIDE { return m_data.sectionsToRun; }
-
-        int abortAfter() const { return m_data.abortAfter; }
-
-        TestSpec const& testSpec() const { return m_testSpec; }
-
-        bool showHelp() const { return m_data.showHelp; }
-        bool showInvisibles() const { return m_data.showInvisibles; }
-
-        // IConfig interface
-        virtual bool allowThrows() const        { return !m_data.noThrow; }
-        virtual std::ostream& stream() const    { return m_stream->stream(); }
-        virtual std::string name() const        { return m_data.name.empty() ? m_data.processName : m_data.name; }
-        virtual bool includeSuccessfulResults() const   { return m_data.showSuccessfulTests; }
-        virtual bool warnAboutMissingAssertions() const { return m_data.warnings & WarnAbout::NoAssertions; }
-        virtual ShowDurations::OrNot showDurations() const { return m_data.showDurations; }
-        virtual RunTests::InWhatOrder runOrder() const  { return m_data.runOrder; }
-        virtual unsigned int rngSeed() const    { return m_data.rngSeed; }
-        virtual UseColour::YesOrNo useColour() const { return m_data.useColour; }
-
-    private:
-
-        IStream const* openStream() {
-            if( m_data.outputFilename.empty() )
-                return new CoutStream();
-            else if( m_data.outputFilename[0] == '%' ) {
-                if( m_data.outputFilename == "%debug" )
-                    return new DebugOutStream();
-                else
-                    throw std::domain_error( "Unrecognised stream: " + m_data.outputFilename );
-            }
-            else
-                return new FileStream( m_data.outputFilename );
-        }
-        ConfigData m_data;
-
-        CATCH_AUTO_PTR( IStream const ) m_stream;
-        TestSpec m_testSpec;
-    };
-
-} // end namespace Catch
-
-// #included from: catch_clara.h
-#define TWOBLUECUBES_CATCH_CLARA_H_INCLUDED
-
-// Use Catch's value for console width (store Clara's off to the side, if present)
-#ifdef CLARA_CONFIG_CONSOLE_WIDTH
-#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CLARA_CONFIG_CONSOLE_WIDTH
-#undef CLARA_CONFIG_CONSOLE_WIDTH
-#endif
-#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
-
-// Declare Clara inside the Catch namespace
-#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch {
-// #included from: ../external/clara.h
-
-// Version 0.0.2.4
-
-// Only use header guard if we are not using an outer namespace
-#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE)
-
-#ifndef STITCH_CLARA_OPEN_NAMESPACE
-#define TWOBLUECUBES_CLARA_H_INCLUDED
-#define STITCH_CLARA_OPEN_NAMESPACE
-#define STITCH_CLARA_CLOSE_NAMESPACE
-#else
-#define STITCH_CLARA_CLOSE_NAMESPACE }
-#endif
-
-#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE
-
-// ----------- #included from tbc_text_format.h -----------
-
-// Only use header guard if we are not using an outer namespace
-#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE)
-#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-#define TBC_TEXT_FORMAT_H_INCLUDED
-#endif
-
-#include <string>
-#include <vector>
-#include <sstream>
-#include <algorithm>
-
-// Use optional outer namespace
-#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
-#endif
-
-namespace Tbc {
-
-#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
-    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
-#else
-    const unsigned int consoleWidth = 80;
-#endif
-
-    struct TextAttributes {
-        TextAttributes()
-        :   initialIndent( std::string::npos ),
-            indent( 0 ),
-            width( consoleWidth-1 ),
-            tabChar( '\t' )
-        {}
-
-        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
-        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
-        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
-        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
-
-        std::size_t initialIndent;  // indent of first line, or npos
-        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
-        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
-        char tabChar;               // If this char is seen the indent is changed to current pos
-    };
-
-    class Text {
-    public:
-        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
-        : attr( _attr )
-        {
-            std::string wrappableChars = " [({.,/|\\-";
-            std::size_t indent = _attr.initialIndent != std::string::npos
-                ? _attr.initialIndent
-                : _attr.indent;
-            std::string remainder = _str;
-
-            while( !remainder.empty() ) {
-                if( lines.size() >= 1000 ) {
-                    lines.push_back( "... message truncated due to excessive size" );
-                    return;
-                }
-                std::size_t tabPos = std::string::npos;
-                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
-                std::size_t pos = remainder.find_first_of( '\n' );
-                if( pos <= width ) {
-                    width = pos;
-                }
-                pos = remainder.find_last_of( _attr.tabChar, width );
-                if( pos != std::string::npos ) {
-                    tabPos = pos;
-                    if( remainder[width] == '\n' )
-                        width--;
-                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
-                }
-
-                if( width == remainder.size() ) {
-                    spliceLine( indent, remainder, width );
-                }
-                else if( remainder[width] == '\n' ) {
-                    spliceLine( indent, remainder, width );
-                    if( width <= 1 || remainder.size() != 1 )
-                        remainder = remainder.substr( 1 );
-                    indent = _attr.indent;
-                }
-                else {
-                    pos = remainder.find_last_of( wrappableChars, width );
-                    if( pos != std::string::npos && pos > 0 ) {
-                        spliceLine( indent, remainder, pos );
-                        if( remainder[0] == ' ' )
-                            remainder = remainder.substr( 1 );
-                    }
-                    else {
-                        spliceLine( indent, remainder, width-1 );
-                        lines.back() += "-";
-                    }
-                    if( lines.size() == 1 )
-                        indent = _attr.indent;
-                    if( tabPos != std::string::npos )
-                        indent += tabPos;
-                }
-            }
-        }
-
-        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
-            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
-            _remainder = _remainder.substr( _pos );
-        }
-
-        typedef std::vector<std::string>::const_iterator const_iterator;
-
-        const_iterator begin() const { return lines.begin(); }
-        const_iterator end() const { return lines.end(); }
-        std::string const& last() const { return lines.back(); }
-        std::size_t size() const { return lines.size(); }
-        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
-        std::string toString() const {
-            std::ostringstream oss;
-            oss << *this;
-            return oss.str();
-        }
-
-        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
-            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
-                it != itEnd; ++it ) {
-                if( it != _text.begin() )
-                    _stream << "\n";
-                _stream << *it;
-            }
-            return _stream;
-        }
-
-    private:
-        std::string str;
-        TextAttributes attr;
-        std::vector<std::string> lines;
-    };
-
-} // end namespace Tbc
-
-#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-} // end outer namespace
-#endif
-
-#endif // TBC_TEXT_FORMAT_H_INCLUDED
-
-// ----------- end of #include from tbc_text_format.h -----------
-// ........... back in clara.h
-
-#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE
-
-// ----------- #included from clara_compilers.h -----------
-
-#ifndef TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
-#define TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
-
-// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
-// The following features are defined:
-//
-// CLARA_CONFIG_CPP11_NULLPTR : is nullptr supported?
-// CLARA_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
-// CLARA_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
-// CLARA_CONFIG_CPP11_OVERRIDE : is override supported?
-// CLARA_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
-
-// CLARA_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
-
-// CLARA_CONFIG_VARIADIC_MACROS : are variadic macros supported?
-
-// In general each macro has a _NO_<feature name> form
-// (e.g. CLARA_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
-// Many features, at point of detection, define an _INTERNAL_ macro, so they
-// can be combined, en-mass, with the _NO_ forms later.
-
-// All the C++11 features can be disabled with CLARA_CONFIG_NO_CPP11
-
-#ifdef __clang__
-
-#if __has_feature(cxx_nullptr)
-#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
-#endif
-
-#if __has_feature(cxx_noexcept)
-#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#endif
-
-#endif // __clang__
-
-////////////////////////////////////////////////////////////////////////////////
-// GCC
-#ifdef __GNUC__
-
-#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
-#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
-#endif
-
-// - otherwise more recent versions define __cplusplus >= 201103L
-// and will get picked up below
-
-#endif // __GNUC__
-
-////////////////////////////////////////////////////////////////////////////////
-// Visual C++
-#ifdef _MSC_VER
-
-#if (_MSC_VER >= 1600)
-#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
-#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
-#endif
-
-#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
-#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#endif
-
-#endif // _MSC_VER
-
-////////////////////////////////////////////////////////////////////////////////
-// C++ language feature support
-
-// catch all support for C++11
-#if defined(__cplusplus) && __cplusplus >= 201103L
-
-#define CLARA_CPP11_OR_GREATER
-
-#if !defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR)
-#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
-#endif
-
-#ifndef CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
-#endif
-
-#ifndef CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
-#endif
-
-#if !defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE)
-#define CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE
-#endif
-#if !defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
-#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
-#endif
-
-#endif // __cplusplus >= 201103L
-
-// Now set the actual defines based on the above + anything the user has configured
-#if defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NO_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_NO_CPP11)
-#define CLARA_CONFIG_CPP11_NULLPTR
-#endif
-#if defined(CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_NO_CPP11)
-#define CLARA_CONFIG_CPP11_NOEXCEPT
-#endif
-#if defined(CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_NO_CPP11)
-#define CLARA_CONFIG_CPP11_GENERATED_METHODS
-#endif
-#if defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_OVERRIDE) && !defined(CLARA_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_CPP11)
-#define CLARA_CONFIG_CPP11_OVERRIDE
-#endif
-#if defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_UNIQUE_PTR) && !defined(CLARA_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_CPP11)
-#define CLARA_CONFIG_CPP11_UNIQUE_PTR
-#endif
-
-// noexcept support:
-#if defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_NOEXCEPT)
-#define CLARA_NOEXCEPT noexcept
-#  define CLARA_NOEXCEPT_IS(x) noexcept(x)
-#else
-#define CLARA_NOEXCEPT throw()
-#  define CLARA_NOEXCEPT_IS(x)
-#endif
-
-// nullptr support
-#ifdef CLARA_CONFIG_CPP11_NULLPTR
-#define CLARA_NULL nullptr
-#else
-#define CLARA_NULL NULL
-#endif
-
-// override support
-#ifdef CLARA_CONFIG_CPP11_OVERRIDE
-#define CLARA_OVERRIDE override
-#else
-#define CLARA_OVERRIDE
-#endif
-
-// unique_ptr support
-#ifdef CLARA_CONFIG_CPP11_UNIQUE_PTR
-#   define CLARA_AUTO_PTR( T ) std::unique_ptr<T>
-#else
-#   define CLARA_AUTO_PTR( T ) std::auto_ptr<T>
-#endif
-
-#endif // TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
-
-// ----------- end of #include from clara_compilers.h -----------
-// ........... back in clara.h
-
-#include <map>
-#include <stdexcept>
-#include <memory>
-
-#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
-#define CLARA_PLATFORM_WINDOWS
-#endif
-
-// Use optional outer namespace
-#ifdef STITCH_CLARA_OPEN_NAMESPACE
-STITCH_CLARA_OPEN_NAMESPACE
-#endif
-
-namespace Clara {
-
-    struct UnpositionalTag {};
-
-    extern UnpositionalTag _;
-
-#ifdef CLARA_CONFIG_MAIN
-    UnpositionalTag _;
-#endif
-
-    namespace Detail {
-
-#ifdef CLARA_CONSOLE_WIDTH
-    const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH;
-#else
-    const unsigned int consoleWidth = 80;
-#endif
-
-        using namespace Tbc;
-
-        inline bool startsWith( std::string const& str, std::string const& prefix ) {
-            return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix;
-        }
-
-        template<typename T> struct RemoveConstRef{ typedef T type; };
-        template<typename T> struct RemoveConstRef<T&>{ typedef T type; };
-        template<typename T> struct RemoveConstRef<T const&>{ typedef T type; };
-        template<typename T> struct RemoveConstRef<T const>{ typedef T type; };
-
-        template<typename T>    struct IsBool       { static const bool value = false; };
-        template<>              struct IsBool<bool> { static const bool value = true; };
-
-        template<typename T>
-        void convertInto( std::string const& _source, T& _dest ) {
-            std::stringstream ss;
-            ss << _source;
-            ss >> _dest;
-            if( ss.fail() )
-                throw std::runtime_error( "Unable to convert " + _source + " to destination type" );
-        }
-        inline void convertInto( std::string const& _source, std::string& _dest ) {
-            _dest = _source;
-        }
-        char toLowerCh(char c) {
-            return static_cast<char>( ::tolower( c ) );
-        }
-        inline void convertInto( std::string const& _source, bool& _dest ) {
-            std::string sourceLC = _source;
-            std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), toLowerCh );
-            if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" )
-                _dest = true;
-            else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" )
-                _dest = false;
-            else
-                throw std::runtime_error( "Expected a boolean value but did not recognise:\n  '" + _source + "'" );
-        }
-
-        template<typename ConfigT>
-        struct IArgFunction {
-            virtual ~IArgFunction() {}
-#ifdef CLARA_CONFIG_CPP11_GENERATED_METHODS
-            IArgFunction()                      = default;
-            IArgFunction( IArgFunction const& ) = default;
-#endif
-            virtual void set( ConfigT& config, std::string const& value ) const = 0;
-            virtual bool takesArg() const = 0;
-            virtual IArgFunction* clone() const = 0;
-        };
-
-        template<typename ConfigT>
-        class BoundArgFunction {
-        public:
-            BoundArgFunction() : functionObj( CLARA_NULL ) {}
-            BoundArgFunction( IArgFunction<ConfigT>* _functionObj ) : functionObj( _functionObj ) {}
-            BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : CLARA_NULL ) {}
-            BoundArgFunction& operator = ( BoundArgFunction const& other ) {
-                IArgFunction<ConfigT>* newFunctionObj = other.functionObj ? other.functionObj->clone() : CLARA_NULL;
-                delete functionObj;
-                functionObj = newFunctionObj;
-                return *this;
-            }
-            ~BoundArgFunction() { delete functionObj; }
-
-            void set( ConfigT& config, std::string const& value ) const {
-                functionObj->set( config, value );
-            }
-            bool takesArg() const { return functionObj->takesArg(); }
-
-            bool isSet() const {
-                return functionObj != CLARA_NULL;
-            }
-        private:
-            IArgFunction<ConfigT>* functionObj;
-        };
-
-        template<typename C>
-        struct NullBinder : IArgFunction<C>{
-            virtual void set( C&, std::string const& ) const {}
-            virtual bool takesArg() const { return true; }
-            virtual IArgFunction<C>* clone() const { return new NullBinder( *this ); }
-        };
-
-        template<typename C, typename M>
-        struct BoundDataMember : IArgFunction<C>{
-            BoundDataMember( M C::* _member ) : member( _member ) {}
-            virtual void set( C& p, std::string const& stringValue ) const {
-                convertInto( stringValue, p.*member );
-            }
-            virtual bool takesArg() const { return !IsBool<M>::value; }
-            virtual IArgFunction<C>* clone() const { return new BoundDataMember( *this ); }
-            M C::* member;
-        };
-        template<typename C, typename M>
-        struct BoundUnaryMethod : IArgFunction<C>{
-            BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {}
-            virtual void set( C& p, std::string const& stringValue ) const {
-                typename RemoveConstRef<M>::type value;
-                convertInto( stringValue, value );
-                (p.*member)( value );
-            }
-            virtual bool takesArg() const { return !IsBool<M>::value; }
-            virtual IArgFunction<C>* clone() const { return new BoundUnaryMethod( *this ); }
-            void (C::*member)( M );
-        };
-        template<typename C>
-        struct BoundNullaryMethod : IArgFunction<C>{
-            BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {}
-            virtual void set( C& p, std::string const& stringValue ) const {
-                bool value;
-                convertInto( stringValue, value );
-                if( value )
-                    (p.*member)();
-            }
-            virtual bool takesArg() const { return false; }
-            virtual IArgFunction<C>* clone() const { return new BoundNullaryMethod( *this ); }
-            void (C::*member)();
-        };
-
-        template<typename C>
-        struct BoundUnaryFunction : IArgFunction<C>{
-            BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {}
-            virtual void set( C& obj, std::string const& stringValue ) const {
-                bool value;
-                convertInto( stringValue, value );
-                if( value )
-                    function( obj );
-            }
-            virtual bool takesArg() const { return false; }
-            virtual IArgFunction<C>* clone() const { return new BoundUnaryFunction( *this ); }
-            void (*function)( C& );
-        };
-
-        template<typename C, typename T>
-        struct BoundBinaryFunction : IArgFunction<C>{
-            BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {}
-            virtual void set( C& obj, std::string const& stringValue ) const {
-                typename RemoveConstRef<T>::type value;
-                convertInto( stringValue, value );
-                function( obj, value );
-            }
-            virtual bool takesArg() const { return !IsBool<T>::value; }
-            virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }
-            void (*function)( C&, T );
-        };
-
-    } // namespace Detail
-
-    inline std::vector<std::string> argsToVector( int argc, char const* const* const argv ) {
-        std::vector<std::string> args( static_cast<std::size_t>( argc ) );
-        for( std::size_t i = 0; i < static_cast<std::size_t>( argc ); ++i )
-            args[i] = argv[i];
-
-        return args;
-    }
-
-    class Parser {
-        enum Mode { None, MaybeShortOpt, SlashOpt, ShortOpt, LongOpt, Positional };
-        Mode mode;
-        std::size_t from;
-        bool inQuotes;
-    public:
-
-        struct Token {
-            enum Type { Positional, ShortOpt, LongOpt };
-            Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {}
-            Type type;
-            std::string data;
-        };
-
-        Parser() : mode( None ), from( 0 ), inQuotes( false ){}
-
-        void parseIntoTokens( std::vector<std::string> const& args, std::vector<Token>& tokens ) {
-            const std::string doubleDash = "--";
-            for( std::size_t i = 1; i < args.size() && args[i] != doubleDash; ++i )
-                parseIntoTokens( args[i], tokens);
-        }
-
-        void parseIntoTokens( std::string const& arg, std::vector<Token>& tokens ) {
-            for( std::size_t i = 0; i <= arg.size(); ++i ) {
-                char c = arg[i];
-                if( c == '"' )
-                    inQuotes = !inQuotes;
-                mode = handleMode( i, c, arg, tokens );
-            }
-        }
-        Mode handleMode( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
-            switch( mode ) {
-                case None: return handleNone( i, c );
-                case MaybeShortOpt: return handleMaybeShortOpt( i, c );
-                case ShortOpt:
-                case LongOpt:
-                case SlashOpt: return handleOpt( i, c, arg, tokens );
-                case Positional: return handlePositional( i, c, arg, tokens );
-                default: throw std::logic_error( "Unknown mode" );
-            }
-        }
-
-        Mode handleNone( std::size_t i, char c ) {
-            if( inQuotes ) {
-                from = i;
-                return Positional;
-            }
-            switch( c ) {
-                case '-': return MaybeShortOpt;
-#ifdef CLARA_PLATFORM_WINDOWS
-                case '/': from = i+1; return SlashOpt;
-#endif
-                default: from = i; return Positional;
-            }
-        }
-        Mode handleMaybeShortOpt( std::size_t i, char c ) {
-            switch( c ) {
-                case '-': from = i+1; return LongOpt;
-                default: from = i; return ShortOpt;
-            }
-        }
-        Mode handleOpt( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
-            if( std::string( ":=\0", 3 ).find( c ) == std::string::npos )
-                return mode;
-
-            std::string optName = arg.substr( from, i-from );
-            if( mode == ShortOpt )
-                for( std::size_t j = 0; j < optName.size(); ++j )
-                    tokens.push_back( Token( Token::ShortOpt, optName.substr( j, 1 ) ) );
-            else if( mode == SlashOpt && optName.size() == 1 )
-                tokens.push_back( Token( Token::ShortOpt, optName ) );
-            else
-                tokens.push_back( Token( Token::LongOpt, optName ) );
-            return None;
-        }
-        Mode handlePositional( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
-            if( inQuotes || std::string( "\0", 1 ).find( c ) == std::string::npos )
-                return mode;
-
-            std::string data = arg.substr( from, i-from );
-            tokens.push_back( Token( Token::Positional, data ) );
-            return None;
-        }
-    };
-
-    template<typename ConfigT>
-    struct CommonArgProperties {
-        CommonArgProperties() {}
-        CommonArgProperties( Detail::BoundArgFunction<ConfigT> const& _boundField ) : boundField( _boundField ) {}
-
-        Detail::BoundArgFunction<ConfigT> boundField;
-        std::string description;
-        std::string detail;
-        std::string placeholder; // Only value if boundField takes an arg
-
-        bool takesArg() const {
-            return !placeholder.empty();
-        }
-        void validate() const {
-            if( !boundField.isSet() )
-                throw std::logic_error( "option not bound" );
-        }
-    };
-    struct OptionArgProperties {
-        std::vector<std::string> shortNames;
-        std::string longName;
-
-        bool hasShortName( std::string const& shortName ) const {
-            return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end();
-        }
-        bool hasLongName( std::string const& _longName ) const {
-            return _longName == longName;
-        }
-    };
-    struct PositionalArgProperties {
-        PositionalArgProperties() : position( -1 ) {}
-        int position; // -1 means non-positional (floating)
-
-        bool isFixedPositional() const {
-            return position != -1;
-        }
-    };
-
-    template<typename ConfigT>
-    class CommandLine {
-
-        struct Arg : CommonArgProperties<ConfigT>, OptionArgProperties, PositionalArgProperties {
-            Arg() {}
-            Arg( Detail::BoundArgFunction<ConfigT> const& _boundField ) : CommonArgProperties<ConfigT>( _boundField ) {}
-
-            using CommonArgProperties<ConfigT>::placeholder; // !TBD
-
-            std::string dbgName() const {
-                if( !longName.empty() )
-                    return "--" + longName;
-                if( !shortNames.empty() )
-                    return "-" + shortNames[0];
-                return "positional args";
-            }
-            std::string commands() const {
-                std::ostringstream oss;
-                bool first = true;
-                std::vector<std::string>::const_iterator it = shortNames.begin(), itEnd = shortNames.end();
-                for(; it != itEnd; ++it ) {
-                    if( first )
-                        first = false;
-                    else
-                        oss << ", ";
-                    oss << "-" << *it;
-                }
-                if( !longName.empty() ) {
-                    if( !first )
-                        oss << ", ";
-                    oss << "--" << longName;
-                }
-                if( !placeholder.empty() )
-                    oss << " <" << placeholder << ">";
-                return oss.str();
-            }
-        };
-
-        typedef CLARA_AUTO_PTR( Arg ) ArgAutoPtr;
-
-        friend void addOptName( Arg& arg, std::string const& optName )
-        {
-            if( optName.empty() )
-                return;
-            if( Detail::startsWith( optName, "--" ) ) {
-                if( !arg.longName.empty() )
-                    throw std::logic_error( "Only one long opt may be specified. '"
-                        + arg.longName
-                        + "' already specified, now attempting to add '"
-                        + optName + "'" );
-                arg.longName = optName.substr( 2 );
-            }
-            else if( Detail::startsWith( optName, "-" ) )
-                arg.shortNames.push_back( optName.substr( 1 ) );
-            else
-                throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" );
-        }
-        friend void setPositionalArg( Arg& arg, int position )
-        {
-            arg.position = position;
-        }
-
-        class ArgBuilder {
-        public:
-            ArgBuilder( Arg* arg ) : m_arg( arg ) {}
-
-            // Bind a non-boolean data member (requires placeholder string)
-            template<typename C, typename M>
-            void bind( M C::* field, std::string const& placeholder ) {
-                m_arg->boundField = new Detail::BoundDataMember<C,M>( field );
-                m_arg->placeholder = placeholder;
-            }
-            // Bind a boolean data member (no placeholder required)
-            template<typename C>
-            void bind( bool C::* field ) {
-                m_arg->boundField = new Detail::BoundDataMember<C,bool>( field );
-            }
-
-            // Bind a method taking a single, non-boolean argument (requires a placeholder string)
-            template<typename C, typename M>
-            void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) {
-                m_arg->boundField = new Detail::BoundUnaryMethod<C,M>( unaryMethod );
-                m_arg->placeholder = placeholder;
-            }
-
-            // Bind a method taking a single, boolean argument (no placeholder string required)
-            template<typename C>
-            void bind( void (C::* unaryMethod)( bool ) ) {
-                m_arg->boundField = new Detail::BoundUnaryMethod<C,bool>( unaryMethod );
-            }
-
-            // Bind a method that takes no arguments (will be called if opt is present)
-            template<typename C>
-            void bind( void (C::* nullaryMethod)() ) {
-                m_arg->boundField = new Detail::BoundNullaryMethod<C>( nullaryMethod );
-            }
-
-            // Bind a free function taking a single argument - the object to operate on (no placeholder string required)
-            template<typename C>
-            void bind( void (* unaryFunction)( C& ) ) {
-                m_arg->boundField = new Detail::BoundUnaryFunction<C>( unaryFunction );
-            }
-
-            // Bind a free function taking a single argument - the object to operate on (requires a placeholder string)
-            template<typename C, typename T>
-            void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) {
-                m_arg->boundField = new Detail::BoundBinaryFunction<C, T>( binaryFunction );
-                m_arg->placeholder = placeholder;
-            }
-
-            ArgBuilder& describe( std::string const& description ) {
-                m_arg->description = description;
-                return *this;
-            }
-            ArgBuilder& detail( std::string const& detail ) {
-                m_arg->detail = detail;
-                return *this;
-            }
-
-        protected:
-            Arg* m_arg;
-        };
-
-        class OptBuilder : public ArgBuilder {
-        public:
-            OptBuilder( Arg* arg ) : ArgBuilder( arg ) {}
-            OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {}
-
-            OptBuilder& operator[]( std::string const& optName ) {
-                addOptName( *ArgBuilder::m_arg, optName );
-                return *this;
-            }
-        };
-
-    public:
-
-        CommandLine()
-        :   m_boundProcessName( new Detail::NullBinder<ConfigT>() ),
-            m_highestSpecifiedArgPosition( 0 ),
-            m_throwOnUnrecognisedTokens( false )
-        {}
-        CommandLine( CommandLine const& other )
-        :   m_boundProcessName( other.m_boundProcessName ),
-            m_options ( other.m_options ),
-            m_positionalArgs( other.m_positionalArgs ),
-            m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ),
-            m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens )
-        {
-            if( other.m_floatingArg.get() )
-                m_floatingArg.reset( new Arg( *other.m_floatingArg ) );
-        }
-
-        CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) {
-            m_throwOnUnrecognisedTokens = shouldThrow;
-            return *this;
-        }
-
-        OptBuilder operator[]( std::string const& optName ) {
-            m_options.push_back( Arg() );
-            addOptName( m_options.back(), optName );
-            OptBuilder builder( &m_options.back() );
-            return builder;
-        }
-
-        ArgBuilder operator[]( int position ) {
-            m_positionalArgs.insert( std::make_pair( position, Arg() ) );
-            if( position > m_highestSpecifiedArgPosition )
-                m_highestSpecifiedArgPosition = position;
-            setPositionalArg( m_positionalArgs[position], position );
-            ArgBuilder builder( &m_positionalArgs[position] );
-            return builder;
-        }
-
-        // Invoke this with the _ instance
-        ArgBuilder operator[]( UnpositionalTag ) {
-            if( m_floatingArg.get() )
-                throw std::logic_error( "Only one unpositional argument can be added" );
-            m_floatingArg.reset( new Arg() );
-            ArgBuilder builder( m_floatingArg.get() );
-            return builder;
-        }
-
-        template<typename C, typename M>
-        void bindProcessName( M C::* field ) {
-            m_boundProcessName = new Detail::BoundDataMember<C,M>( field );
-        }
-        template<typename C, typename M>
-        void bindProcessName( void (C::*_unaryMethod)( M ) ) {
-            m_boundProcessName = new Detail::BoundUnaryMethod<C,M>( _unaryMethod );
-        }
-
-        void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const {
-            typename std::vector<Arg>::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it;
-            std::size_t maxWidth = 0;
-            for( it = itBegin; it != itEnd; ++it )
-                maxWidth = (std::max)( maxWidth, it->commands().size() );
-
-            for( it = itBegin; it != itEnd; ++it ) {
-                Detail::Text usage( it->commands(), Detail::TextAttributes()
-                                                        .setWidth( maxWidth+indent )
-                                                        .setIndent( indent ) );
-                Detail::Text desc( it->description, Detail::TextAttributes()
-                                                        .setWidth( width - maxWidth - 3 ) );
-
-                for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) {
-                    std::string usageCol = i < usage.size() ? usage[i] : "";
-                    os << usageCol;
-
-                    if( i < desc.size() && !desc[i].empty() )
-                        os  << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' )
-                            << desc[i];
-                    os << "\n";
-                }
-            }
-        }
-        std::string optUsage() const {
-            std::ostringstream oss;
-            optUsage( oss );
-            return oss.str();
-        }
-
-        void argSynopsis( std::ostream& os ) const {
-            for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) {
-                if( i > 1 )
-                    os << " ";
-                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( i );
-                if( it != m_positionalArgs.end() )
-                    os << "<" << it->second.placeholder << ">";
-                else if( m_floatingArg.get() )
-                    os << "<" << m_floatingArg->placeholder << ">";
-                else
-                    throw std::logic_error( "non consecutive positional arguments with no floating args" );
-            }
-            // !TBD No indication of mandatory args
-            if( m_floatingArg.get() ) {
-                if( m_highestSpecifiedArgPosition > 1 )
-                    os << " ";
-                os << "[<" << m_floatingArg->placeholder << "> ...]";
-            }
-        }
-        std::string argSynopsis() const {
-            std::ostringstream oss;
-            argSynopsis( oss );
-            return oss.str();
-        }
-
-        void usage( std::ostream& os, std::string const& procName ) const {
-            validate();
-            os << "usage:\n  " << procName << " ";
-            argSynopsis( os );
-            if( !m_options.empty() ) {
-                os << " [options]\n\nwhere options are: \n";
-                optUsage( os, 2 );
-            }
-            os << "\n";
-        }
-        std::string usage( std::string const& procName ) const {
-            std::ostringstream oss;
-            usage( oss, procName );
-            return oss.str();
-        }
-
-        ConfigT parse( std::vector<std::string> const& args ) const {
-            ConfigT config;
-            parseInto( args, config );
-            return config;
-        }
-
-        std::vector<Parser::Token> parseInto( std::vector<std::string> const& args, ConfigT& config ) const {
-            std::string processName = args[0];
-            std::size_t lastSlash = processName.find_last_of( "/\\" );
-            if( lastSlash != std::string::npos )
-                processName = processName.substr( lastSlash+1 );
-            m_boundProcessName.set( config, processName );
-            std::vector<Parser::Token> tokens;
-            Parser parser;
-            parser.parseIntoTokens( args, tokens );
-            return populate( tokens, config );
-        }
-
-        std::vector<Parser::Token> populate( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
-            validate();
-            std::vector<Parser::Token> unusedTokens = populateOptions( tokens, config );
-            unusedTokens = populateFixedArgs( unusedTokens, config );
-            unusedTokens = populateFloatingArgs( unusedTokens, config );
-            return unusedTokens;
-        }
-
-        std::vector<Parser::Token> populateOptions( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
-            std::vector<Parser::Token> unusedTokens;
-            std::vector<std::string> errors;
-            for( std::size_t i = 0; i < tokens.size(); ++i ) {
-                Parser::Token const& token = tokens[i];
-                typename std::vector<Arg>::const_iterator it = m_options.begin(), itEnd = m_options.end();
-                for(; it != itEnd; ++it ) {
-                    Arg const& arg = *it;
-
-                    try {
-                        if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) ||
-                            ( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) {
-                            if( arg.takesArg() ) {
-                                if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional )
-                                    errors.push_back( "Expected argument to option: " + token.data );
-                                else
-                                    arg.boundField.set( config, tokens[++i].data );
-                            }
-                            else {
-                                arg.boundField.set( config, "true" );
-                            }
-                            break;
-                        }
-                    }
-                    catch( std::exception& ex ) {
-                        errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" );
-                    }
-                }
-                if( it == itEnd ) {
-                    if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens )
-                        unusedTokens.push_back( token );
-                    else if( errors.empty() && m_throwOnUnrecognisedTokens )
-                        errors.push_back( "unrecognised option: " + token.data );
-                }
-            }
-            if( !errors.empty() ) {
-                std::ostringstream oss;
-                for( std::vector<std::string>::const_iterator it = errors.begin(), itEnd = errors.end();
-                        it != itEnd;
-                        ++it ) {
-                    if( it != errors.begin() )
-                        oss << "\n";
-                    oss << *it;
-                }
-                throw std::runtime_error( oss.str() );
-            }
-            return unusedTokens;
-        }
-        std::vector<Parser::Token> populateFixedArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
-            std::vector<Parser::Token> unusedTokens;
-            int position = 1;
-            for( std::size_t i = 0; i < tokens.size(); ++i ) {
-                Parser::Token const& token = tokens[i];
-                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( position );
-                if( it != m_positionalArgs.end() )
-                    it->second.boundField.set( config, token.data );
-                else
-                    unusedTokens.push_back( token );
-                if( token.type == Parser::Token::Positional )
-                    position++;
-            }
-            return unusedTokens;
-        }
-        std::vector<Parser::Token> populateFloatingArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
-            if( !m_floatingArg.get() )
-                return tokens;
-            std::vector<Parser::Token> unusedTokens;
-            for( std::size_t i = 0; i < tokens.size(); ++i ) {
-                Parser::Token const& token = tokens[i];
-                if( token.type == Parser::Token::Positional )
-                    m_floatingArg->boundField.set( config, token.data );
-                else
-                    unusedTokens.push_back( token );
-            }
-            return unusedTokens;
-        }
-
-        void validate() const
-        {
-            if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() )
-                throw std::logic_error( "No options or arguments specified" );
-
-            for( typename std::vector<Arg>::const_iterator  it = m_options.begin(),
-                                                            itEnd = m_options.end();
-                    it != itEnd; ++it )
-                it->validate();
-        }
-
-    private:
-        Detail::BoundArgFunction<ConfigT> m_boundProcessName;
-        std::vector<Arg> m_options;
-        std::map<int, Arg> m_positionalArgs;
-        ArgAutoPtr m_floatingArg;
-        int m_highestSpecifiedArgPosition;
-        bool m_throwOnUnrecognisedTokens;
-    };
-
-} // end namespace Clara
-
-STITCH_CLARA_CLOSE_NAMESPACE
-#undef STITCH_CLARA_OPEN_NAMESPACE
-#undef STITCH_CLARA_CLOSE_NAMESPACE
-
-#endif // TWOBLUECUBES_CLARA_H_INCLUDED
-#undef STITCH_CLARA_OPEN_NAMESPACE
-
-// Restore Clara's value for console width, if present
-#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
-#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
-#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
-#endif
-
-#include <fstream>
-
-namespace Catch {
-
-    inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; }
-    inline void abortAfterX( ConfigData& config, int x ) {
-        if( x < 1 )
-            throw std::runtime_error( "Value after -x or --abortAfter must be greater than zero" );
-        config.abortAfter = x;
-    }
-    inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); }
-    inline void addSectionToRun( ConfigData& config, std::string const& sectionName ) { config.sectionsToRun.push_back( sectionName ); }
-    inline void addReporterName( ConfigData& config, std::string const& _reporterName ) { config.reporterNames.push_back( _reporterName ); }
-
-    inline void addWarning( ConfigData& config, std::string const& _warning ) {
-        if( _warning == "NoAssertions" )
-            config.warnings = static_cast<WarnAbout::What>( config.warnings | WarnAbout::NoAssertions );
-        else
-            throw std::runtime_error( "Unrecognised warning: '" + _warning + '\'' );
-    }
-    inline void setOrder( ConfigData& config, std::string const& order ) {
-        if( startsWith( "declared", order ) )
-            config.runOrder = RunTests::InDeclarationOrder;
-        else if( startsWith( "lexical", order ) )
-            config.runOrder = RunTests::InLexicographicalOrder;
-        else if( startsWith( "random", order ) )
-            config.runOrder = RunTests::InRandomOrder;
-        else
-            throw std::runtime_error( "Unrecognised ordering: '" + order + '\'' );
-    }
-    inline void setRngSeed( ConfigData& config, std::string const& seed ) {
-        if( seed == "time" ) {
-            config.rngSeed = static_cast<unsigned int>( std::time(0) );
-        }
-        else {
-            std::stringstream ss;
-            ss << seed;
-            ss >> config.rngSeed;
-            if( ss.fail() )
-                throw std::runtime_error( "Argment to --rng-seed should be the word 'time' or a number" );
-        }
-    }
-    inline void setVerbosity( ConfigData& config, int level ) {
-        // !TBD: accept strings?
-        config.verbosity = static_cast<Verbosity::Level>( level );
-    }
-    inline void setShowDurations( ConfigData& config, bool _showDurations ) {
-        config.showDurations = _showDurations
-            ? ShowDurations::Always
-            : ShowDurations::Never;
-    }
-    inline void setUseColour( ConfigData& config, std::string const& value ) {
-        std::string mode = toLower( value );
-
-        if( mode == "yes" )
-            config.useColour = UseColour::Yes;
-        else if( mode == "no" )
-            config.useColour = UseColour::No;
-        else if( mode == "auto" )
-            config.useColour = UseColour::Auto;
-        else
-            throw std::runtime_error( "colour mode must be one of: auto, yes or no" );
-    }
-    inline void forceColour( ConfigData& config ) {
-        config.useColour = UseColour::Yes;
-    }
-    inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) {
-        std::ifstream f( _filename.c_str() );
-        if( !f.is_open() )
-            throw std::domain_error( "Unable to load input file: " + _filename );
-
-        std::string line;
-        while( std::getline( f, line ) ) {
-            line = trim(line);
-            if( !line.empty() && !startsWith( line, '#' ) ) {
-                if( !startsWith( line, '"' ) )
-                    line = '"' + line + '"';
-                addTestOrTags( config, line + ',' );
-            }
-        }
-    }
-
-    inline Clara::CommandLine<ConfigData> makeCommandLineParser() {
-
-        using namespace Clara;
-        CommandLine<ConfigData> cli;
-
-        cli.bindProcessName( &ConfigData::processName );
-
-        cli["-?"]["-h"]["--help"]
-            .describe( "display usage information" )
-            .bind( &ConfigData::showHelp );
-
-        cli["-l"]["--list-tests"]
-            .describe( "list all/matching test cases" )
-            .bind( &ConfigData::listTests );
-
-        cli["-t"]["--list-tags"]
-            .describe( "list all/matching tags" )
-            .bind( &ConfigData::listTags );
-
-        cli["-s"]["--success"]
-            .describe( "include successful tests in output" )
-            .bind( &ConfigData::showSuccessfulTests );
-
-        cli["-b"]["--break"]
-            .describe( "break into debugger on failure" )
-            .bind( &ConfigData::shouldDebugBreak );
-
-        cli["-e"]["--nothrow"]
-            .describe( "skip exception tests" )
-            .bind( &ConfigData::noThrow );
-
-        cli["-i"]["--invisibles"]
-            .describe( "show invisibles (tabs, newlines)" )
-            .bind( &ConfigData::showInvisibles );
-
-        cli["-o"]["--out"]
-            .describe( "output filename" )
-            .bind( &ConfigData::outputFilename, "filename" );
-
-        cli["-r"]["--reporter"]
-//            .placeholder( "name[:filename]" )
-            .describe( "reporter to use (defaults to console)" )
-            .bind( &addReporterName, "name" );
-
-        cli["-n"]["--name"]
-            .describe( "suite name" )
-            .bind( &ConfigData::name, "name" );
-
-        cli["-a"]["--abort"]
-            .describe( "abort at first failure" )
-            .bind( &abortAfterFirst );
-
-        cli["-x"]["--abortx"]
-            .describe( "abort after x failures" )
-            .bind( &abortAfterX, "no. failures" );
-
-        cli["-w"]["--warn"]
-            .describe( "enable warnings" )
-            .bind( &addWarning, "warning name" );
-
-// - needs updating if reinstated
-//        cli.into( &setVerbosity )
-//            .describe( "level of verbosity (0=no output)" )
-//            .shortOpt( "v")
-//            .longOpt( "verbosity" )
-//            .placeholder( "level" );
-
-        cli[_]
-            .describe( "which test or tests to use" )
-            .bind( &addTestOrTags, "test name, pattern or tags" );
-
-        cli["-d"]["--durations"]
-            .describe( "show test durations" )
-            .bind( &setShowDurations, "yes|no" );
-
-        cli["-f"]["--input-file"]
-            .describe( "load test names to run from a file" )
-            .bind( &loadTestNamesFromFile, "filename" );
-
-        cli["-#"]["--filenames-as-tags"]
-            .describe( "adds a tag for the filename" )
-            .bind( &ConfigData::filenamesAsTags );
-
-        cli["-c"]["--section"]
-                .describe( "specify section to run" )
-                .bind( &addSectionToRun, "section name" );
-
-        // Less common commands which don't have a short form
-        cli["--list-test-names-only"]
-            .describe( "list all/matching test cases names only" )
-            .bind( &ConfigData::listTestNamesOnly );
-
-        cli["--list-reporters"]
-            .describe( "list all reporters" )
-            .bind( &ConfigData::listReporters );
-
-        cli["--order"]
-            .describe( "test case order (defaults to decl)" )
-            .bind( &setOrder, "decl|lex|rand" );
-
-        cli["--rng-seed"]
-            .describe( "set a specific seed for random numbers" )
-            .bind( &setRngSeed, "'time'|number" );
-
-        cli["--force-colour"]
-            .describe( "force colourised output (deprecated)" )
-            .bind( &forceColour );
-
-        cli["--use-colour"]
-            .describe( "should output be colourised" )
-            .bind( &setUseColour, "yes|no" );
-
-        return cli;
-    }
-
-} // end namespace Catch
-
-// #included from: internal/catch_list.hpp
-#define TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED
-
-// #included from: catch_text.h
-#define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED
-
-#define TBC_TEXT_FORMAT_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
-
-#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Catch
-// #included from: ../external/tbc_text_format.h
-// Only use header guard if we are not using an outer namespace
-#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
-#  ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
-#   define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
-#  endif
-# else
-#  define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
-# endif
-#endif
-#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
-#include <string>
-#include <vector>
-#include <sstream>
-
-// Use optional outer namespace
-#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
-#endif
-
-namespace Tbc {
-
-#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
-    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
-#else
-    const unsigned int consoleWidth = 80;
-#endif
-
-    struct TextAttributes {
-        TextAttributes()
-        :   initialIndent( std::string::npos ),
-            indent( 0 ),
-            width( consoleWidth-1 )
-        {}
-
-        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
-        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
-        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
-
-        std::size_t initialIndent;  // indent of first line, or npos
-        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
-        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
-    };
-
-    class Text {
-    public:
-        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
-        : attr( _attr )
-        {
-            const std::string wrappableBeforeChars = "[({<\t";
-            const std::string wrappableAfterChars = "])}>-,./|\\";
-            const std::string wrappableInsteadOfChars = " \n\r";
-            std::string indent = _attr.initialIndent != std::string::npos
-                ? std::string( _attr.initialIndent, ' ' )
-                : std::string( _attr.indent, ' ' );
-
-            typedef std::string::const_iterator iterator;
-            iterator it = _str.begin();
-            const iterator strEnd = _str.end();
-
-            while( it != strEnd ) {
-
-                if( lines.size() >= 1000 ) {
-                    lines.push_back( "... message truncated due to excessive size" );
-                    return;
-                }
-
-                std::string suffix;
-                std::size_t width = (std::min)( static_cast<size_t>( strEnd-it ), _attr.width-static_cast<size_t>( indent.size() ) );
-                iterator itEnd = it+width;
-                iterator itNext = _str.end();
-
-                iterator itNewLine = std::find( it, itEnd, '\n' );
-                if( itNewLine != itEnd )
-                    itEnd = itNewLine;
-
-                if( itEnd != strEnd  ) {
-                    bool foundWrapPoint = false;
-                    iterator findIt = itEnd;
-                    do {
-                        if( wrappableAfterChars.find( *findIt ) != std::string::npos && findIt != itEnd ) {
-                            itEnd = findIt+1;
-                            itNext = findIt+1;
-                            foundWrapPoint = true;
-                        }
-                        else if( findIt > it && wrappableBeforeChars.find( *findIt ) != std::string::npos ) {
-                            itEnd = findIt;
-                            itNext = findIt;
-                            foundWrapPoint = true;
-                        }
-                        else if( wrappableInsteadOfChars.find( *findIt ) != std::string::npos ) {
-                            itNext = findIt+1;
-                            itEnd = findIt;
-                            foundWrapPoint = true;
-                        }
-                        if( findIt == it )
-                            break;
-                        else
-                            --findIt;
-                    }
-                    while( !foundWrapPoint );
-
-                    if( !foundWrapPoint ) {
-                        // No good wrap char, so we'll break mid word and add a hyphen
-                        --itEnd;
-                        itNext = itEnd;
-                        suffix = "-";
-                    }
-                    else {
-                        while( itEnd > it && wrappableInsteadOfChars.find( *(itEnd-1) ) != std::string::npos )
-                            --itEnd;
-                    }
-                }
-                lines.push_back( indent + std::string( it, itEnd ) + suffix );
-
-                if( indent.size() != _attr.indent )
-                    indent = std::string( _attr.indent, ' ' );
-                it = itNext;
-            }
-        }
-
-        typedef std::vector<std::string>::const_iterator const_iterator;
-
-        const_iterator begin() const { return lines.begin(); }
-        const_iterator end() const { return lines.end(); }
-        std::string const& last() const { return lines.back(); }
-        std::size_t size() const { return lines.size(); }
-        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
-        std::string toString() const {
-            std::ostringstream oss;
-            oss << *this;
-            return oss.str();
-        }
-
-        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
-            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
-                it != itEnd; ++it ) {
-                if( it != _text.begin() )
-                    _stream << "\n";
-                _stream << *it;
-            }
-            return _stream;
-        }
-
-    private:
-        std::string str;
-        TextAttributes attr;
-        std::vector<std::string> lines;
-    };
-
-} // end namespace Tbc
-
-#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-} // end outer namespace
-#endif
-
-#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
-#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
-
-namespace Catch {
-    using Tbc::Text;
-    using Tbc::TextAttributes;
-}
-
-// #included from: catch_console_colour.hpp
-#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED
-
-namespace Catch {
-
-    struct Colour {
-        enum Code {
-            None = 0,
-
-            White,
-            Red,
-            Green,
-            Blue,
-            Cyan,
-            Yellow,
-            Grey,
-
-            Bright = 0x10,
-
-            BrightRed = Bright | Red,
-            BrightGreen = Bright | Green,
-            LightGrey = Bright | Grey,
-            BrightWhite = Bright | White,
-
-            // By intention
-            FileName = LightGrey,
-            Warning = Yellow,
-            ResultError = BrightRed,
-            ResultSuccess = BrightGreen,
-            ResultExpectedFailure = Warning,
-
-            Error = BrightRed,
-            Success = Green,
-
-            OriginalExpression = Cyan,
-            ReconstructedExpression = Yellow,
-
-            SecondaryText = LightGrey,
-            Headers = White
-        };
-
-        // Use constructed object for RAII guard
-        Colour( Code _colourCode );
-        Colour( Colour const& other );
-        ~Colour();
-
-        // Use static method for one-shot changes
-        static void use( Code _colourCode );
-
-    private:
-        bool m_moved;
-    };
-
-    inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; }
-
-} // end namespace Catch
-
-// #included from: catch_interfaces_reporter.h
-#define TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED
-
-#include <string>
-#include <ostream>
-#include <map>
-#include <assert.h>
-
-namespace Catch
-{
-    struct ReporterConfig {
-        explicit ReporterConfig( Ptr<IConfig const> const& _fullConfig )
-        :   m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {}
-
-        ReporterConfig( Ptr<IConfig const> const& _fullConfig, std::ostream& _stream )
-        :   m_stream( &_stream ), m_fullConfig( _fullConfig ) {}
-
-        std::ostream& stream() const    { return *m_stream; }
-        Ptr<IConfig const> fullConfig() const { return m_fullConfig; }
-
-    private:
-        std::ostream* m_stream;
-        Ptr<IConfig const> m_fullConfig;
-    };
-
-    struct ReporterPreferences {
-        ReporterPreferences()
-        : shouldRedirectStdOut( false )
-        {}
-
-        bool shouldRedirectStdOut;
-    };
-
-    template<typename T>
-    struct LazyStat : Option<T> {
-        LazyStat() : used( false ) {}
-        LazyStat& operator=( T const& _value ) {
-            Option<T>::operator=( _value );
-            used = false;
-            return *this;
-        }
-        void reset() {
-            Option<T>::reset();
-            used = false;
-        }
-        bool used;
-    };
-
-    struct TestRunInfo {
-        TestRunInfo( std::string const& _name ) : name( _name ) {}
-        std::string name;
-    };
-    struct GroupInfo {
-        GroupInfo(  std::string const& _name,
-                    std::size_t _groupIndex,
-                    std::size_t _groupsCount )
-        :   name( _name ),
-            groupIndex( _groupIndex ),
-            groupsCounts( _groupsCount )
-        {}
-
-        std::string name;
-        std::size_t groupIndex;
-        std::size_t groupsCounts;
-    };
-
-    struct AssertionStats {
-        AssertionStats( AssertionResult const& _assertionResult,
-                        std::vector<MessageInfo> const& _infoMessages,
-                        Totals const& _totals )
-        :   assertionResult( _assertionResult ),
-            infoMessages( _infoMessages ),
-            totals( _totals )
-        {
-            if( assertionResult.hasMessage() ) {
-                // Copy message into messages list.
-                // !TBD This should have been done earlier, somewhere
-                MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() );
-                builder << assertionResult.getMessage();
-                builder.m_info.message = builder.m_stream.str();
-
-                infoMessages.push_back( builder.m_info );
-            }
-        }
-        virtual ~AssertionStats();
-
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        AssertionStats( AssertionStats const& )              = default;
-        AssertionStats( AssertionStats && )                  = default;
-        AssertionStats& operator = ( AssertionStats const& ) = default;
-        AssertionStats& operator = ( AssertionStats && )     = default;
-#  endif
-
-        AssertionResult assertionResult;
-        std::vector<MessageInfo> infoMessages;
-        Totals totals;
-    };
-
-    struct SectionStats {
-        SectionStats(   SectionInfo const& _sectionInfo,
-                        Counts const& _assertions,
-                        double _durationInSeconds,
-                        bool _missingAssertions )
-        :   sectionInfo( _sectionInfo ),
-            assertions( _assertions ),
-            durationInSeconds( _durationInSeconds ),
-            missingAssertions( _missingAssertions )
-        {}
-        virtual ~SectionStats();
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        SectionStats( SectionStats const& )              = default;
-        SectionStats( SectionStats && )                  = default;
-        SectionStats& operator = ( SectionStats const& ) = default;
-        SectionStats& operator = ( SectionStats && )     = default;
-#  endif
-
-        SectionInfo sectionInfo;
-        Counts assertions;
-        double durationInSeconds;
-        bool missingAssertions;
-    };
-
-    struct TestCaseStats {
-        TestCaseStats(  TestCaseInfo const& _testInfo,
-                        Totals const& _totals,
-                        std::string const& _stdOut,
-                        std::string const& _stdErr,
-                        bool _aborting )
-        : testInfo( _testInfo ),
-            totals( _totals ),
-            stdOut( _stdOut ),
-            stdErr( _stdErr ),
-            aborting( _aborting )
-        {}
-        virtual ~TestCaseStats();
-
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        TestCaseStats( TestCaseStats const& )              = default;
-        TestCaseStats( TestCaseStats && )                  = default;
-        TestCaseStats& operator = ( TestCaseStats const& ) = default;
-        TestCaseStats& operator = ( TestCaseStats && )     = default;
-#  endif
-
-        TestCaseInfo testInfo;
-        Totals totals;
-        std::string stdOut;
-        std::string stdErr;
-        bool aborting;
-    };
-
-    struct TestGroupStats {
-        TestGroupStats( GroupInfo const& _groupInfo,
-                        Totals const& _totals,
-                        bool _aborting )
-        :   groupInfo( _groupInfo ),
-            totals( _totals ),
-            aborting( _aborting )
-        {}
-        TestGroupStats( GroupInfo const& _groupInfo )
-        :   groupInfo( _groupInfo ),
-            aborting( false )
-        {}
-        virtual ~TestGroupStats();
-
-#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        TestGroupStats( TestGroupStats const& )              = default;
-        TestGroupStats( TestGroupStats && )                  = default;
-        TestGroupStats& operator = ( TestGroupStats const& ) = default;
-        TestGroupStats& operator = ( TestGroupStats && )     = default;
-#  endif
-
-        GroupInfo groupInfo;
-        Totals totals;
-        bool aborting;
-    };
-
-    struct TestRunStats {
-        TestRunStats(   TestRunInfo const& _runInfo,
-                        Totals const& _totals,
-                        bool _aborting )
-        :   runInfo( _runInfo ),
-            totals( _totals ),
-            aborting( _aborting )
-        {}
-        virtual ~TestRunStats();
-
-#  ifndef CATCH_CONFIG_CPP11_GENERATED_METHODS
-        TestRunStats( TestRunStats const& _other )
-        :   runInfo( _other.runInfo ),
-            totals( _other.totals ),
-            aborting( _other.aborting )
-        {}
-#  else
-        TestRunStats( TestRunStats const& )              = default;
-        TestRunStats( TestRunStats && )                  = default;
-        TestRunStats& operator = ( TestRunStats const& ) = default;
-        TestRunStats& operator = ( TestRunStats && )     = default;
-#  endif
-
-        TestRunInfo runInfo;
-        Totals totals;
-        bool aborting;
-    };
-
-    class MultipleReporters;
-
-    struct IStreamingReporter : IShared {
-        virtual ~IStreamingReporter();
-
-        // Implementing class must also provide the following static method:
-        // static std::string getDescription();
-
-        virtual ReporterPreferences getPreferences() const = 0;
-
-        virtual void noMatchingTestCases( std::string const& spec ) = 0;
-
-        virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0;
-        virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0;
-
-        virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0;
-        virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0;
-
-        virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0;
-
-        // The return value indicates if the messages buffer should be cleared:
-        virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0;
-
-        virtual void sectionEnded( SectionStats const& sectionStats ) = 0;
-        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0;
-        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0;
-        virtual void testRunEnded( TestRunStats const& testRunStats ) = 0;
-
-        virtual void skipTest( TestCaseInfo const& testInfo ) = 0;
-
-        virtual MultipleReporters* tryAsMulti() { return CATCH_NULL; }
-    };
-
-    struct IReporterFactory : IShared {
-        virtual ~IReporterFactory();
-        virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0;
-        virtual std::string getDescription() const = 0;
-    };
-
-    struct IReporterRegistry {
-        typedef std::map<std::string, Ptr<IReporterFactory> > FactoryMap;
-        typedef std::vector<Ptr<IReporterFactory> > Listeners;
-
-        virtual ~IReporterRegistry();
-        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const = 0;
-        virtual FactoryMap const& getFactories() const = 0;
-        virtual Listeners const& getListeners() const = 0;
-    };
-
-    Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter );
-
-}
-
-#include <limits>
-#include <algorithm>
-
-namespace Catch {
-
-    inline std::size_t listTests( Config const& config ) {
-
-        TestSpec testSpec = config.testSpec();
-        if( config.testSpec().hasFilters() )
-            Catch::cout() << "Matching test cases:\n";
-        else {
-            Catch::cout() << "All available test cases:\n";
-            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
-        }
-
-        std::size_t matchedTests = 0;
-        TextAttributes nameAttr, tagsAttr;
-        nameAttr.setInitialIndent( 2 ).setIndent( 4 );
-        tagsAttr.setIndent( 6 );
-
-        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
-        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
-                it != itEnd;
-                ++it ) {
-            matchedTests++;
-            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
-            Colour::Code colour = testCaseInfo.isHidden()
-                ? Colour::SecondaryText
-                : Colour::None;
-            Colour colourGuard( colour );
-
-            Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl;
-            if( !testCaseInfo.tags.empty() )
-                Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl;
-        }
-
-        if( !config.testSpec().hasFilters() )
-            Catch::cout() << pluralise( matchedTests, "test case" ) << '\n' << std::endl;
-        else
-            Catch::cout() << pluralise( matchedTests, "matching test case" ) << '\n' << std::endl;
-        return matchedTests;
-    }
-
-    inline std::size_t listTestsNamesOnly( Config const& config ) {
-        TestSpec testSpec = config.testSpec();
-        if( !config.testSpec().hasFilters() )
-            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
-        std::size_t matchedTests = 0;
-        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
-        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
-                it != itEnd;
-                ++it ) {
-            matchedTests++;
-            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
-            if( startsWith( testCaseInfo.name, '#' ) )
-               Catch::cout() << '"' << testCaseInfo.name << '"' << std::endl;
-            else
-               Catch::cout() << testCaseInfo.name << std::endl;
-        }
-        return matchedTests;
-    }
-
-    struct TagInfo {
-        TagInfo() : count ( 0 ) {}
-        void add( std::string const& spelling ) {
-            ++count;
-            spellings.insert( spelling );
-        }
-        std::string all() const {
-            std::string out;
-            for( std::set<std::string>::const_iterator it = spellings.begin(), itEnd = spellings.end();
-                        it != itEnd;
-                        ++it )
-                out += "[" + *it + "]";
-            return out;
-        }
-        std::set<std::string> spellings;
-        std::size_t count;
-    };
-
-    inline std::size_t listTags( Config const& config ) {
-        TestSpec testSpec = config.testSpec();
-        if( config.testSpec().hasFilters() )
-            Catch::cout() << "Tags for matching test cases:\n";
-        else {
-            Catch::cout() << "All available tags:\n";
-            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
-        }
-
-        std::map<std::string, TagInfo> tagCounts;
-
-        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
-        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
-                it != itEnd;
-                ++it ) {
-            for( std::set<std::string>::const_iterator  tagIt = it->getTestCaseInfo().tags.begin(),
-                                                        tagItEnd = it->getTestCaseInfo().tags.end();
-                    tagIt != tagItEnd;
-                    ++tagIt ) {
-                std::string tagName = *tagIt;
-                std::string lcaseTagName = toLower( tagName );
-                std::map<std::string, TagInfo>::iterator countIt = tagCounts.find( lcaseTagName );
-                if( countIt == tagCounts.end() )
-                    countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first;
-                countIt->second.add( tagName );
-            }
-        }
-
-        for( std::map<std::string, TagInfo>::const_iterator countIt = tagCounts.begin(),
-                                                            countItEnd = tagCounts.end();
-                countIt != countItEnd;
-                ++countIt ) {
-            std::ostringstream oss;
-            oss << "  " << std::setw(2) << countIt->second.count << "  ";
-            Text wrapper( countIt->second.all(), TextAttributes()
-                                                    .setInitialIndent( 0 )
-                                                    .setIndent( oss.str().size() )
-                                                    .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) );
-            Catch::cout() << oss.str() << wrapper << '\n';
-        }
-        Catch::cout() << pluralise( tagCounts.size(), "tag" ) << '\n' << std::endl;
-        return tagCounts.size();
-    }
-
-    inline std::size_t listReporters( Config const& /*config*/ ) {
-        Catch::cout() << "Available reporters:\n";
-        IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories();
-        IReporterRegistry::FactoryMap::const_iterator itBegin = factories.begin(), itEnd = factories.end(), it;
-        std::size_t maxNameLen = 0;
-        for(it = itBegin; it != itEnd; ++it )
-            maxNameLen = (std::max)( maxNameLen, it->first.size() );
-
-        for(it = itBegin; it != itEnd; ++it ) {
-            Text wrapper( it->second->getDescription(), TextAttributes()
-                                                        .setInitialIndent( 0 )
-                                                        .setIndent( 7+maxNameLen )
-                                                        .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) );
-            Catch::cout() << "  "
-                    << it->first
-                    << ':'
-                    << std::string( maxNameLen - it->first.size() + 2, ' ' )
-                    << wrapper << '\n';
-        }
-        Catch::cout() << std::endl;
-        return factories.size();
-    }
-
-    inline Option<std::size_t> list( Config const& config ) {
-        Option<std::size_t> listedCount;
-        if( config.listTests() )
-            listedCount = listedCount.valueOr(0) + listTests( config );
-        if( config.listTestNamesOnly() )
-            listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config );
-        if( config.listTags() )
-            listedCount = listedCount.valueOr(0) + listTags( config );
-        if( config.listReporters() )
-            listedCount = listedCount.valueOr(0) + listReporters( config );
-        return listedCount;
-    }
-
-} // end namespace Catch
-
-// #included from: internal/catch_run_context.hpp
-#define TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED
-
-// #included from: catch_test_case_tracker.hpp
-#define TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED
-
-#include <map>
-#include <string>
-#include <assert.h>
-#include <vector>
-#include <iterator>
-
-namespace Catch {
-namespace TestCaseTracking {
-
-    struct NameAndLocation {
-        std::string name;
-        SourceLineInfo location;
-
-        NameAndLocation( std::string const& _name, SourceLineInfo const& _location )
-        :   name( _name ),
-            location( _location )
-        {}
-    };
-
-    struct ITracker : SharedImpl<> {
-        virtual ~ITracker();
-
-        // static queries
-        virtual NameAndLocation const& nameAndLocation() const = 0;
-
-        // dynamic queries
-        virtual bool isComplete() const = 0; // Successfully completed or failed
-        virtual bool isSuccessfullyCompleted() const = 0;
-        virtual bool isOpen() const = 0; // Started but not complete
-        virtual bool hasChildren() const = 0;
-
-        virtual ITracker& parent() = 0;
-
-        // actions
-        virtual void close() = 0; // Successfully complete
-        virtual void fail() = 0;
-        virtual void markAsNeedingAnotherRun() = 0;
-
-        virtual void addChild( Ptr<ITracker> const& child ) = 0;
-        virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) = 0;
-        virtual void openChild() = 0;
-
-        // Debug/ checking
-        virtual bool isSectionTracker() const = 0;
-        virtual bool isIndexTracker() const = 0;
-    };
-
-    class  TrackerContext {
-
-        enum RunState {
-            NotStarted,
-            Executing,
-            CompletedCycle
-        };
-
-        Ptr<ITracker> m_rootTracker;
-        ITracker* m_currentTracker;
-        RunState m_runState;
-
-    public:
-
-        static TrackerContext& instance() {
-            static TrackerContext s_instance;
-            return s_instance;
-        }
-
-        TrackerContext()
-        :   m_currentTracker( CATCH_NULL ),
-            m_runState( NotStarted )
-        {}
-
-        ITracker& startRun();
-
-        void endRun() {
-            m_rootTracker.reset();
-            m_currentTracker = CATCH_NULL;
-            m_runState = NotStarted;
-        }
-
-        void startCycle() {
-            m_currentTracker = m_rootTracker.get();
-            m_runState = Executing;
-        }
-        void completeCycle() {
-            m_runState = CompletedCycle;
-        }
-
-        bool completedCycle() const {
-            return m_runState == CompletedCycle;
-        }
-        ITracker& currentTracker() {
-            return *m_currentTracker;
-        }
-        void setCurrentTracker( ITracker* tracker ) {
-            m_currentTracker = tracker;
-        }
-    };
-
-    class TrackerBase : public ITracker {
-    protected:
-        enum CycleState {
-            NotStarted,
-            Executing,
-            ExecutingChildren,
-            NeedsAnotherRun,
-            CompletedSuccessfully,
-            Failed
-        };
-        class TrackerHasName {
-            NameAndLocation m_nameAndLocation;
-        public:
-            TrackerHasName( NameAndLocation const& nameAndLocation ) : m_nameAndLocation( nameAndLocation ) {}
-            bool operator ()( Ptr<ITracker> const& tracker ) {
-                return
-                    tracker->nameAndLocation().name == m_nameAndLocation.name &&
-                    tracker->nameAndLocation().location == m_nameAndLocation.location;
-            }
-        };
-        typedef std::vector<Ptr<ITracker> > Children;
-        NameAndLocation m_nameAndLocation;
-        TrackerContext& m_ctx;
-        ITracker* m_parent;
-        Children m_children;
-        CycleState m_runState;
-    public:
-        TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
-        :   m_nameAndLocation( nameAndLocation ),
-            m_ctx( ctx ),
-            m_parent( parent ),
-            m_runState( NotStarted )
-        {}
-        virtual ~TrackerBase();
-
-        virtual NameAndLocation const& nameAndLocation() const CATCH_OVERRIDE {
-            return m_nameAndLocation;
-        }
-        virtual bool isComplete() const CATCH_OVERRIDE {
-            return m_runState == CompletedSuccessfully || m_runState == Failed;
-        }
-        virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE {
-            return m_runState == CompletedSuccessfully;
-        }
-        virtual bool isOpen() const CATCH_OVERRIDE {
-            return m_runState != NotStarted && !isComplete();
-        }
-        virtual bool hasChildren() const CATCH_OVERRIDE {
-            return !m_children.empty();
-        }
-
-        virtual void addChild( Ptr<ITracker> const& child ) CATCH_OVERRIDE {
-            m_children.push_back( child );
-        }
-
-        virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) CATCH_OVERRIDE {
-            Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( nameAndLocation ) );
-            return( it != m_children.end() )
-                ? it->get()
-                : CATCH_NULL;
-        }
-        virtual ITracker& parent() CATCH_OVERRIDE {
-            assert( m_parent ); // Should always be non-null except for root
-            return *m_parent;
-        }
-
-        virtual void openChild() CATCH_OVERRIDE {
-            if( m_runState != ExecutingChildren ) {
-                m_runState = ExecutingChildren;
-                if( m_parent )
-                    m_parent->openChild();
-            }
-        }
-
-        virtual bool isSectionTracker() const CATCH_OVERRIDE { return false; }
-        virtual bool isIndexTracker() const CATCH_OVERRIDE { return false; }
-
-        void open() {
-            m_runState = Executing;
-            moveToThis();
-            if( m_parent )
-                m_parent->openChild();
-        }
-
-        virtual void close() CATCH_OVERRIDE {
-
-            // Close any still open children (e.g. generators)
-            while( &m_ctx.currentTracker() != this )
-                m_ctx.currentTracker().close();
-
-            switch( m_runState ) {
-                case NotStarted:
-                case CompletedSuccessfully:
-                case Failed:
-                    throw std::logic_error( "Illogical state" );
-
-                case NeedsAnotherRun:
-                    break;;
-
-                case Executing:
-                    m_runState = CompletedSuccessfully;
-                    break;
-                case ExecutingChildren:
-                    if( m_children.empty() || m_children.back()->isComplete() )
-                        m_runState = CompletedSuccessfully;
-                    break;
-
-                default:
-                    throw std::logic_error( "Unexpected state" );
-            }
-            moveToParent();
-            m_ctx.completeCycle();
-        }
-        virtual void fail() CATCH_OVERRIDE {
-            m_runState = Failed;
-            if( m_parent )
-                m_parent->markAsNeedingAnotherRun();
-            moveToParent();
-            m_ctx.completeCycle();
-        }
-        virtual void markAsNeedingAnotherRun() CATCH_OVERRIDE {
-            m_runState = NeedsAnotherRun;
-        }
-    private:
-        void moveToParent() {
-            assert( m_parent );
-            m_ctx.setCurrentTracker( m_parent );
-        }
-        void moveToThis() {
-            m_ctx.setCurrentTracker( this );
-        }
-    };
-
-    class SectionTracker : public TrackerBase {
-        std::vector<std::string> m_filters;
-    public:
-        SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
-        :   TrackerBase( nameAndLocation, ctx, parent )
-        {
-            if( parent ) {
-                while( !parent->isSectionTracker() )
-                    parent = &parent->parent();
-
-                SectionTracker& parentSection = static_cast<SectionTracker&>( *parent );
-                addNextFilters( parentSection.m_filters );
-            }
-        }
-        virtual ~SectionTracker();
-
-        virtual bool isSectionTracker() const CATCH_OVERRIDE { return true; }
-
-        static SectionTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation ) {
-            SectionTracker* section = CATCH_NULL;
-
-            ITracker& currentTracker = ctx.currentTracker();
-            if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) {
-                assert( childTracker );
-                assert( childTracker->isSectionTracker() );
-                section = static_cast<SectionTracker*>( childTracker );
-            }
-            else {
-                section = new SectionTracker( nameAndLocation, ctx, &currentTracker );
-                currentTracker.addChild( section );
-            }
-            if( !ctx.completedCycle() )
-                section->tryOpen();
-            return *section;
-        }
-
-        void tryOpen() {
-            if( !isComplete() && (m_filters.empty() || m_filters[0].empty() ||  m_filters[0] == m_nameAndLocation.name ) )
-                open();
-        }
-
-        void addInitialFilters( std::vector<std::string> const& filters ) {
-            if( !filters.empty() ) {
-                m_filters.push_back(""); // Root - should never be consulted
-                m_filters.push_back(""); // Test Case - not a section filter
-                std::copy( filters.begin(), filters.end(), std::back_inserter( m_filters ) );
-            }
-        }
-        void addNextFilters( std::vector<std::string> const& filters ) {
-            if( filters.size() > 1 )
-                std::copy( filters.begin()+1, filters.end(), std::back_inserter( m_filters ) );
-        }
-    };
-
-    class IndexTracker : public TrackerBase {
-        int m_size;
-        int m_index;
-    public:
-        IndexTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent, int size )
-        :   TrackerBase( nameAndLocation, ctx, parent ),
-            m_size( size ),
-            m_index( -1 )
-        {}
-        virtual ~IndexTracker();
-
-        virtual bool isIndexTracker() const CATCH_OVERRIDE { return true; }
-
-        static IndexTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation, int size ) {
-            IndexTracker* tracker = CATCH_NULL;
-
-            ITracker& currentTracker = ctx.currentTracker();
-            if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) {
-                assert( childTracker );
-                assert( childTracker->isIndexTracker() );
-                tracker = static_cast<IndexTracker*>( childTracker );
-            }
-            else {
-                tracker = new IndexTracker( nameAndLocation, ctx, &currentTracker, size );
-                currentTracker.addChild( tracker );
-            }
-
-            if( !ctx.completedCycle() && !tracker->isComplete() ) {
-                if( tracker->m_runState != ExecutingChildren && tracker->m_runState != NeedsAnotherRun )
-                    tracker->moveNext();
-                tracker->open();
-            }
-
-            return *tracker;
-        }
-
-        int index() const { return m_index; }
-
-        void moveNext() {
-            m_index++;
-            m_children.clear();
-        }
-
-        virtual void close() CATCH_OVERRIDE {
-            TrackerBase::close();
-            if( m_runState == CompletedSuccessfully && m_index < m_size-1 )
-                m_runState = Executing;
-        }
-    };
-
-    inline ITracker& TrackerContext::startRun() {
-        m_rootTracker = new SectionTracker( NameAndLocation( "{root}", CATCH_INTERNAL_LINEINFO ), *this, CATCH_NULL );
-        m_currentTracker = CATCH_NULL;
-        m_runState = Executing;
-        return *m_rootTracker;
-    }
-
-} // namespace TestCaseTracking
-
-using TestCaseTracking::ITracker;
-using TestCaseTracking::TrackerContext;
-using TestCaseTracking::SectionTracker;
-using TestCaseTracking::IndexTracker;
-
-} // namespace Catch
-
-// #included from: catch_fatal_condition.hpp
-#define TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED
-
-namespace Catch {
-
-    // Report the error condition
-    inline void reportFatal( std::string const& message ) {
-        IContext& context = Catch::getCurrentContext();
-        IResultCapture* resultCapture = context.getResultCapture();
-        resultCapture->handleFatalErrorCondition( message );
-    }
-
-} // namespace Catch
-
-#if defined ( CATCH_PLATFORM_WINDOWS ) /////////////////////////////////////////
-
-#define NOMINMAX
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#undef WIN32_LEAN_AND_MEAN
-#undef NOMINMAX
-
-namespace Catch {
-
-    struct SignalDefs { DWORD id; const char* name; };
-    extern SignalDefs signalDefs[];
-    // There is no 1-1 mapping between signals and windows exceptions.
-    // Windows can easily distinguish between SO and SigSegV,
-    // but SigInt, SigTerm, etc are handled differently.
-    SignalDefs signalDefs[] = {
-        { EXCEPTION_ILLEGAL_INSTRUCTION,  "SIGILL - Illegal instruction signal" },
-        { EXCEPTION_STACK_OVERFLOW, "SIGSEGV - Stack overflow" },
-        { EXCEPTION_ACCESS_VIOLATION, "SIGSEGV - Segmentation violation signal" },
-        { EXCEPTION_INT_DIVIDE_BY_ZERO, "Divide by zero error" },
-    };
-
-    struct FatalConditionHandler {
-
-        static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) {
-            for (int i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
-                if (ExceptionInfo->ExceptionRecord->ExceptionCode == signalDefs[i].id) {
-                    reportFatal(signalDefs[i].name);
-                }
-            }
-            // If its not an exception we care about, pass it along.
-            // This stops us from eating debugger breaks etc.
-            return EXCEPTION_CONTINUE_SEARCH;
-        }
-
-        // 32k seems enough for Catch to handle stack overflow,
-        // but the value was found experimentally, so there is no strong guarantee
-        FatalConditionHandler():m_isSet(true), m_guaranteeSize(32 * 1024), m_exceptionHandlerHandle(CATCH_NULL) {
-            // Register as first handler in current chain
-            m_exceptionHandlerHandle = AddVectoredExceptionHandler(1, handleVectoredException);
-            // Pass in guarantee size to be filled
-            SetThreadStackGuarantee(&m_guaranteeSize);
-        }
-
-        void reset() {
-            if (m_isSet) {
-                // Unregister handler and restore the old guarantee
-                RemoveVectoredExceptionHandler(m_exceptionHandlerHandle);
-                SetThreadStackGuarantee(&m_guaranteeSize);
-                m_exceptionHandlerHandle = CATCH_NULL;
-                m_isSet = false;
-            }
-        }
-
-        ~FatalConditionHandler() {
-            reset();
-        }
-    private:
-        bool m_isSet;
-        ULONG m_guaranteeSize;
-        PVOID m_exceptionHandlerHandle;
-    };
-
-} // namespace Catch
-
-#else // Not Windows - assumed to be POSIX compatible //////////////////////////
-
-#include <signal.h>
-
-namespace Catch {
-
-    struct SignalDefs {
-        int id;
-        const char* name;
-    };
-    extern SignalDefs signalDefs[];
-    SignalDefs signalDefs[] = {
-            { SIGINT,  "SIGINT - Terminal interrupt signal" },
-            { SIGILL,  "SIGILL - Illegal instruction signal" },
-            { SIGFPE,  "SIGFPE - Floating point error signal" },
-            { SIGSEGV, "SIGSEGV - Segmentation violation signal" },
-            { SIGTERM, "SIGTERM - Termination request signal" },
-            { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" }
-    };
-
-    struct FatalConditionHandler {
-
-        static bool isSet;
-        static struct sigaction oldSigActions [sizeof(signalDefs)/sizeof(SignalDefs)];
-        static stack_t oldSigStack;
-        static char altStackMem[SIGSTKSZ];
-
-        static void handleSignal( int sig ) {
-            std::string name = "<unknown signal>";
-            for (std::size_t i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
-                SignalDefs &def = signalDefs[i];
-                if (sig == def.id) {
-                    name = def.name;
-                    break;
-                }
-            }
-            reset();
-            reportFatal(name);
-            raise( sig );
-        }
-
-        FatalConditionHandler() {
-            isSet = true;
-            stack_t sigStack;
-            sigStack.ss_sp = altStackMem;
-            sigStack.ss_size = SIGSTKSZ;
-            sigStack.ss_flags = 0;
-            sigaltstack(&sigStack, &oldSigStack);
-            struct sigaction sa = { 0 };
-
-            sa.sa_handler = handleSignal;
-            sa.sa_flags = SA_ONSTACK;
-            for (std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i) {
-                sigaction(signalDefs[i].id, &sa, &oldSigActions[i]);
-            }
-        }
-
-        ~FatalConditionHandler() {
-            reset();
-        }
-        static void reset() {
-            if( isSet ) {
-                // Set signals back to previous values -- hopefully nobody overwrote them in the meantime
-                for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) {
-                    sigaction(signalDefs[i].id, &oldSigActions[i], CATCH_NULL);
-                }
-                // Return the old stack
-                sigaltstack(&oldSigStack, CATCH_NULL);
-                isSet = false;
-            }
-        }
-    };
-
-    bool FatalConditionHandler::isSet = false;
-    struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {};
-    stack_t FatalConditionHandler::oldSigStack = {};
-    char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
-
-} // namespace Catch
-
-#endif // not Windows
-
-#include <set>
-#include <string>
-
-namespace Catch {
-
-    class StreamRedirect {
-
-    public:
-        StreamRedirect( std::ostream& stream, std::string& targetString )
-        :   m_stream( stream ),
-            m_prevBuf( stream.rdbuf() ),
-            m_targetString( targetString )
-        {
-            stream.rdbuf( m_oss.rdbuf() );
-        }
-
-        ~StreamRedirect() {
-            m_targetString += m_oss.str();
-            m_stream.rdbuf( m_prevBuf );
-        }
-
-    private:
-        std::ostream& m_stream;
-        std::streambuf* m_prevBuf;
-        std::ostringstream m_oss;
-        std::string& m_targetString;
-    };
-
-    ///////////////////////////////////////////////////////////////////////////
-
-    class RunContext : public IResultCapture, public IRunner {
-
-        RunContext( RunContext const& );
-        void operator =( RunContext const& );
-
-    public:
-
-        explicit RunContext( Ptr<IConfig const> const& _config, Ptr<IStreamingReporter> const& reporter )
-        :   m_runInfo( _config->name() ),
-            m_context( getCurrentMutableContext() ),
-            m_activeTestCase( CATCH_NULL ),
-            m_config( _config ),
-            m_reporter( reporter )
-        {
-            m_context.setRunner( this );
-            m_context.setConfig( m_config );
-            m_context.setResultCapture( this );
-            m_reporter->testRunStarting( m_runInfo );
-        }
-
-        virtual ~RunContext() {
-            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) );
-        }
-
-        void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) {
-            m_reporter->testGroupStarting( GroupInfo( testSpec, groupIndex, groupsCount ) );
-        }
-        void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ) {
-            m_reporter->testGroupEnded( TestGroupStats( GroupInfo( testSpec, groupIndex, groupsCount ), totals, aborting() ) );
-        }
-
-        Totals runTest( TestCase const& testCase ) {
-            Totals prevTotals = m_totals;
-
-            std::string redirectedCout;
-            std::string redirectedCerr;
-
-            TestCaseInfo testInfo = testCase.getTestCaseInfo();
-
-            m_reporter->testCaseStarting( testInfo );
-
-            m_activeTestCase = &testCase;
-
-            do {
-                ITracker& rootTracker = m_trackerContext.startRun();
-                dynamic_cast<SectionTracker&>( rootTracker ).addInitialFilters( m_config->getSectionsToRun() );
-                do {
-                    m_trackerContext.startCycle();
-                    m_testCaseTracker = &SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( testInfo.name, testInfo.lineInfo ) );
-                    runCurrentTest( redirectedCout, redirectedCerr );
-                }
-                while( !m_testCaseTracker->isSuccessfullyCompleted() && !aborting() );
-            }
-            // !TBD: deprecated - this will be replaced by indexed trackers
-            while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() );
-
-            Totals deltaTotals = m_totals.delta( prevTotals );
-            if( testInfo.expectedToFail() && deltaTotals.testCases.passed > 0 ) {
-                deltaTotals.assertions.failed++;
-                deltaTotals.testCases.passed--;
-                deltaTotals.testCases.failed++;
-            }
-            m_totals.testCases += deltaTotals.testCases;
-            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
-                                                        deltaTotals,
-                                                        redirectedCout,
-                                                        redirectedCerr,
-                                                        aborting() ) );
-
-            m_activeTestCase = CATCH_NULL;
-            m_testCaseTracker = CATCH_NULL;
-
-            return deltaTotals;
-        }
-
-        Ptr<IConfig const> config() const {
-            return m_config;
-        }
-
-    private: // IResultCapture
-
-        virtual void assertionEnded( AssertionResult const& result ) {
-            if( result.getResultType() == ResultWas::Ok ) {
-                m_totals.assertions.passed++;
-            }
-            else if( !result.isOk() ) {
-                m_totals.assertions.failed++;
-            }
-
-            if( m_reporter->assertionEnded( AssertionStats( result, m_messages, m_totals ) ) )
-                m_messages.clear();
-
-            // Reset working state
-            m_lastAssertionInfo = AssertionInfo( std::string(), m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}" , m_lastAssertionInfo.resultDisposition );
-            m_lastResult = result;
-        }
-
-        virtual bool sectionStarted (
-            SectionInfo const& sectionInfo,
-            Counts& assertions
-        )
-        {
-            ITracker& sectionTracker = SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( sectionInfo.name, sectionInfo.lineInfo ) );
-            if( !sectionTracker.isOpen() )
-                return false;
-            m_activeSections.push_back( &sectionTracker );
-
-            m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo;
-
-            m_reporter->sectionStarting( sectionInfo );
-
-            assertions = m_totals.assertions;
-
-            return true;
-        }
-        bool testForMissingAssertions( Counts& assertions ) {
-            if( assertions.total() != 0 )
-                return false;
-            if( !m_config->warnAboutMissingAssertions() )
-                return false;
-            if( m_trackerContext.currentTracker().hasChildren() )
-                return false;
-            m_totals.assertions.failed++;
-            assertions.failed++;
-            return true;
-        }
-
-        virtual void sectionEnded( SectionEndInfo const& endInfo ) {
-            Counts assertions = m_totals.assertions - endInfo.prevAssertions;
-            bool missingAssertions = testForMissingAssertions( assertions );
-
-            if( !m_activeSections.empty() ) {
-                m_activeSections.back()->close();
-                m_activeSections.pop_back();
-            }
-
-            m_reporter->sectionEnded( SectionStats( endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions ) );
-            m_messages.clear();
-        }
-
-        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) {
-            if( m_unfinishedSections.empty() )
-                m_activeSections.back()->fail();
-            else
-                m_activeSections.back()->close();
-            m_activeSections.pop_back();
-
-            m_unfinishedSections.push_back( endInfo );
-        }
-
-        virtual void pushScopedMessage( MessageInfo const& message ) {
-            m_messages.push_back( message );
-        }
-
-        virtual void popScopedMessage( MessageInfo const& message ) {
-            m_messages.erase( std::remove( m_messages.begin(), m_messages.end(), message ), m_messages.end() );
-        }
-
-        virtual std::string getCurrentTestName() const {
-            return m_activeTestCase
-                ? m_activeTestCase->getTestCaseInfo().name
-                : std::string();
-        }
-
-        virtual const AssertionResult* getLastResult() const {
-            return &m_lastResult;
-        }
-
-        virtual void handleFatalErrorCondition( std::string const& message ) {
-            ResultBuilder resultBuilder = makeUnexpectedResultBuilder();
-            resultBuilder.setResultType( ResultWas::FatalErrorCondition );
-            resultBuilder << message;
-            resultBuilder.captureExpression();
-
-            handleUnfinishedSections();
-
-            // Recreate section for test case (as we will lose the one that was in scope)
-            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
-            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
-
-            Counts assertions;
-            assertions.failed = 1;
-            SectionStats testCaseSectionStats( testCaseSection, assertions, 0, false );
-            m_reporter->sectionEnded( testCaseSectionStats );
-
-            TestCaseInfo testInfo = m_activeTestCase->getTestCaseInfo();
-
-            Totals deltaTotals;
-            deltaTotals.testCases.failed = 1;
-            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
-                                                        deltaTotals,
-                                                        std::string(),
-                                                        std::string(),
-                                                        false ) );
-            m_totals.testCases.failed++;
-            testGroupEnded( std::string(), m_totals, 1, 1 );
-            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, false ) );
-        }
-
-    public:
-        // !TBD We need to do this another way!
-        bool aborting() const {
-            return m_totals.assertions.failed == static_cast<std::size_t>( m_config->abortAfter() );
-        }
-
-    private:
-
-        void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) {
-            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
-            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
-            m_reporter->sectionStarting( testCaseSection );
-            Counts prevAssertions = m_totals.assertions;
-            double duration = 0;
-            try {
-                m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, std::string(), ResultDisposition::Normal );
-
-                seedRng( *m_config );
-
-                Timer timer;
-                timer.start();
-                if( m_reporter->getPreferences().shouldRedirectStdOut ) {
-                    StreamRedirect coutRedir( Catch::cout(), redirectedCout );
-                    StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr );
-                    invokeActiveTestCase();
-                }
-                else {
-                    invokeActiveTestCase();
-                }
-                duration = timer.getElapsedSeconds();
-            }
-            catch( TestFailureException& ) {
-                // This just means the test was aborted due to failure
-            }
-            catch(...) {
-                makeUnexpectedResultBuilder().useActiveException();
-            }
-            m_testCaseTracker->close();
-            handleUnfinishedSections();
-            m_messages.clear();
-
-            Counts assertions = m_totals.assertions - prevAssertions;
-            bool missingAssertions = testForMissingAssertions( assertions );
-
-            if( testCaseInfo.okToFail() ) {
-                std::swap( assertions.failedButOk, assertions.failed );
-                m_totals.assertions.failed -= assertions.failedButOk;
-                m_totals.assertions.failedButOk += assertions.failedButOk;
-            }
-
-            SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions );
-            m_reporter->sectionEnded( testCaseSectionStats );
-        }
-
-        void invokeActiveTestCase() {
-            FatalConditionHandler fatalConditionHandler; // Handle signals
-            m_activeTestCase->invoke();
-            fatalConditionHandler.reset();
-        }
-
-    private:
-
-        ResultBuilder makeUnexpectedResultBuilder() const {
-            return ResultBuilder(   m_lastAssertionInfo.macroName.c_str(),
-                                    m_lastAssertionInfo.lineInfo,
-                                    m_lastAssertionInfo.capturedExpression.c_str(),
-                                    m_lastAssertionInfo.resultDisposition );
-        }
-
-        void handleUnfinishedSections() {
-            // If sections ended prematurely due to an exception we stored their
-            // infos here so we can tear them down outside the unwind process.
-            for( std::vector<SectionEndInfo>::const_reverse_iterator it = m_unfinishedSections.rbegin(),
-                        itEnd = m_unfinishedSections.rend();
-                    it != itEnd;
-                    ++it )
-                sectionEnded( *it );
-            m_unfinishedSections.clear();
-        }
-
-        TestRunInfo m_runInfo;
-        IMutableContext& m_context;
-        TestCase const* m_activeTestCase;
-        ITracker* m_testCaseTracker;
-        ITracker* m_currentSectionTracker;
-        AssertionResult m_lastResult;
-
-        Ptr<IConfig const> m_config;
-        Totals m_totals;
-        Ptr<IStreamingReporter> m_reporter;
-        std::vector<MessageInfo> m_messages;
-        AssertionInfo m_lastAssertionInfo;
-        std::vector<SectionEndInfo> m_unfinishedSections;
-        std::vector<ITracker*> m_activeSections;
-        TrackerContext m_trackerContext;
-    };
-
-    IResultCapture& getResultCapture() {
-        if( IResultCapture* capture = getCurrentContext().getResultCapture() )
-            return *capture;
-        else
-            throw std::logic_error( "No result capture instance" );
-    }
-
-} // end namespace Catch
-
-// #included from: internal/catch_version.h
-#define TWOBLUECUBES_CATCH_VERSION_H_INCLUDED
-
-namespace Catch {
-
-    // Versioning information
-    struct Version {
-        Version(    unsigned int _majorVersion,
-                    unsigned int _minorVersion,
-                    unsigned int _patchNumber,
-                    std::string const& _branchName,
-                    unsigned int _buildNumber );
-
-        unsigned int const majorVersion;
-        unsigned int const minorVersion;
-        unsigned int const patchNumber;
-
-        // buildNumber is only used if branchName is not null
-        std::string const branchName;
-        unsigned int const buildNumber;
-
-        friend std::ostream& operator << ( std::ostream& os, Version const& version );
-
-    private:
-        void operator=( Version const& );
-    };
-
-    extern Version libraryVersion;
-}
-
-#include <fstream>
-#include <stdlib.h>
-#include <limits>
-
-namespace Catch {
-
-    Ptr<IStreamingReporter> createReporter( std::string const& reporterName, Ptr<Config> const& config ) {
-        Ptr<IStreamingReporter> reporter = getRegistryHub().getReporterRegistry().create( reporterName, config.get() );
-        if( !reporter ) {
-            std::ostringstream oss;
-            oss << "No reporter registered with name: '" << reporterName << "'";
-            throw std::domain_error( oss.str() );
-        }
-        return reporter;
-    }
-
-    Ptr<IStreamingReporter> makeReporter( Ptr<Config> const& config ) {
-        std::vector<std::string> reporters = config->getReporterNames();
-        if( reporters.empty() )
-            reporters.push_back( "console" );
-
-        Ptr<IStreamingReporter> reporter;
-        for( std::vector<std::string>::const_iterator it = reporters.begin(), itEnd = reporters.end();
-                it != itEnd;
-                ++it )
-            reporter = addReporter( reporter, createReporter( *it, config ) );
-        return reporter;
-    }
-    Ptr<IStreamingReporter> addListeners( Ptr<IConfig const> const& config, Ptr<IStreamingReporter> reporters ) {
-        IReporterRegistry::Listeners listeners = getRegistryHub().getReporterRegistry().getListeners();
-        for( IReporterRegistry::Listeners::const_iterator it = listeners.begin(), itEnd = listeners.end();
-                it != itEnd;
-                ++it )
-            reporters = addReporter(reporters, (*it)->create( ReporterConfig( config ) ) );
-        return reporters;
-    }
-
-    Totals runTests( Ptr<Config> const& config ) {
-
-        Ptr<IConfig const> iconfig = config.get();
-
-        Ptr<IStreamingReporter> reporter = makeReporter( config );
-        reporter = addListeners( iconfig, reporter );
-
-        RunContext context( iconfig, reporter );
-
-        Totals totals;
-
-        context.testGroupStarting( config->name(), 1, 1 );
-
-        TestSpec testSpec = config->testSpec();
-        if( !testSpec.hasFilters() )
-            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests
-
-        std::vector<TestCase> const& allTestCases = getAllTestCasesSorted( *iconfig );
-        for( std::vector<TestCase>::const_iterator it = allTestCases.begin(), itEnd = allTestCases.end();
-                it != itEnd;
-                ++it ) {
-            if( !context.aborting() && matchTest( *it, testSpec, *iconfig ) )
-                totals += context.runTest( *it );
-            else
-                reporter->skipTest( *it );
-        }
-
-        context.testGroupEnded( iconfig->name(), totals, 1, 1 );
-        return totals;
-    }
-
-    void applyFilenamesAsTags( IConfig const& config ) {
-        std::vector<TestCase> const& tests = getAllTestCasesSorted( config );
-        for(std::size_t i = 0; i < tests.size(); ++i ) {
-            TestCase& test = const_cast<TestCase&>( tests[i] );
-            std::set<std::string> tags = test.tags;
-
-            std::string filename = test.lineInfo.file;
-            std::string::size_type lastSlash = filename.find_last_of( "\\/" );
-            if( lastSlash != std::string::npos )
-                filename = filename.substr( lastSlash+1 );
-
-            std::string::size_type lastDot = filename.find_last_of( "." );
-            if( lastDot != std::string::npos )
-                filename = filename.substr( 0, lastDot );
-
-            tags.insert( "#" + filename );
-            setTags( test, tags );
-        }
-    }
-
-    class Session : NonCopyable {
-        static bool alreadyInstantiated;
-
-    public:
-
-        struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; };
-
-        Session()
-        : m_cli( makeCommandLineParser() ) {
-            if( alreadyInstantiated ) {
-                std::string msg = "Only one instance of Catch::Session can ever be used";
-                Catch::cerr() << msg << std::endl;
-                throw std::logic_error( msg );
-            }
-            alreadyInstantiated = true;
-        }
-        ~Session() {
-            Catch::cleanUp();
-        }
-
-        void showHelp( std::string const& processName ) {
-            Catch::cout() << "\nCatch v" << libraryVersion << "\n";
-
-            m_cli.usage( Catch::cout(), processName );
-            Catch::cout() << "For more detail usage please see the project docs\n" << std::endl;
-        }
-
-        int applyCommandLine( int argc, char const* const* const argv, OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) {
-            try {
-                m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail );
-                m_unusedTokens = m_cli.parseInto( Clara::argsToVector( argc, argv ), m_configData );
-                if( m_configData.showHelp )
-                    showHelp( m_configData.processName );
-                m_config.reset();
-            }
-            catch( std::exception& ex ) {
-                {
-                    Colour colourGuard( Colour::Red );
-                    Catch::cerr()
-                        << "\nError(s) in input:\n"
-                        << Text( ex.what(), TextAttributes().setIndent(2) )
-                        << "\n\n";
-                }
-                m_cli.usage( Catch::cout(), m_configData.processName );
-                return (std::numeric_limits<int>::max)();
-            }
-            return 0;
-        }
-
-        void useConfigData( ConfigData const& _configData ) {
-            m_configData = _configData;
-            m_config.reset();
-        }
-
-        int run( int argc, char const* const* const argv ) {
-
-            int returnCode = applyCommandLine( argc, argv );
-            if( returnCode == 0 )
-                returnCode = run();
-            return returnCode;
-        }
-
-        int run() {
-            if( m_configData.showHelp )
-                return 0;
-
-            try
-            {
-                config(); // Force config to be constructed
-
-                seedRng( *m_config );
-
-                if( m_configData.filenamesAsTags )
-                    applyFilenamesAsTags( *m_config );
-
-                // Handle list request
-                if( Option<std::size_t> listed = list( config() ) )
-                    return static_cast<int>( *listed );
-
-                return static_cast<int>( runTests( m_config ).assertions.failed );
-            }
-            catch( std::exception& ex ) {
-                Catch::cerr() << ex.what() << std::endl;
-                return (std::numeric_limits<int>::max)();
-            }
-        }
-
-        Clara::CommandLine<ConfigData> const& cli() const {
-            return m_cli;
-        }
-        std::vector<Clara::Parser::Token> const& unusedTokens() const {
-            return m_unusedTokens;
-        }
-        ConfigData& configData() {
-            return m_configData;
-        }
-        Config& config() {
-            if( !m_config )
-                m_config = new Config( m_configData );
-            return *m_config;
-        }
-    private:
-        Clara::CommandLine<ConfigData> m_cli;
-        std::vector<Clara::Parser::Token> m_unusedTokens;
-        ConfigData m_configData;
-        Ptr<Config> m_config;
-    };
-
-    bool Session::alreadyInstantiated = false;
-
-} // end namespace Catch
-
-// #included from: catch_registry_hub.hpp
-#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED
-
-// #included from: catch_test_case_registry_impl.hpp
-#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED
-
-#include <vector>
-#include <set>
-#include <sstream>
-#include <iostream>
-#include <algorithm>
-
-namespace Catch {
-
-    struct RandomNumberGenerator {
-        typedef std::ptrdiff_t result_type;
-
-        result_type operator()( result_type n ) const { return std::rand() % n; }
-
-#ifdef CATCH_CONFIG_CPP11_SHUFFLE
-        static constexpr result_type min() { return 0; }
-        static constexpr result_type max() { return 1000000; }
-        result_type operator()() const { return std::rand() % max(); }
-#endif
-        template<typename V>
-        static void shuffle( V& vector ) {
-            RandomNumberGenerator rng;
-#ifdef CATCH_CONFIG_CPP11_SHUFFLE
-            std::shuffle( vector.begin(), vector.end(), rng );
-#else
-            std::random_shuffle( vector.begin(), vector.end(), rng );
-#endif
-        }
-    };
-
-    inline std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ) {
-
-        std::vector<TestCase> sorted = unsortedTestCases;
-
-        switch( config.runOrder() ) {
-            case RunTests::InLexicographicalOrder:
-                std::sort( sorted.begin(), sorted.end() );
-                break;
-            case RunTests::InRandomOrder:
-                {
-                    seedRng( config );
-                    RandomNumberGenerator::shuffle( sorted );
-                }
-                break;
-            case RunTests::InDeclarationOrder:
-                // already in declaration order
-                break;
-        }
-        return sorted;
-    }
-    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) {
-        return testSpec.matches( testCase ) && ( config.allowThrows() || !testCase.throws() );
-    }
-
-    void enforceNoDuplicateTestCases( std::vector<TestCase> const& functions ) {
-        std::set<TestCase> seenFunctions;
-        for( std::vector<TestCase>::const_iterator it = functions.begin(), itEnd = functions.end();
-            it != itEnd;
-            ++it ) {
-            std::pair<std::set<TestCase>::const_iterator, bool> prev = seenFunctions.insert( *it );
-            if( !prev.second ) {
-                std::ostringstream ss;
-
-                ss  << Colour( Colour::Red )
-                    << "error: TEST_CASE( \"" << it->name << "\" ) already defined.\n"
-                    << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo << '\n'
-                    << "\tRedefined at " << it->getTestCaseInfo().lineInfo << std::endl;
-
-                throw std::runtime_error(ss.str());
-            }
-        }
-    }
-
-    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ) {
-        std::vector<TestCase> filtered;
-        filtered.reserve( testCases.size() );
-        for( std::vector<TestCase>::const_iterator it = testCases.begin(), itEnd = testCases.end();
-                it != itEnd;
-                ++it )
-            if( matchTest( *it, testSpec, config ) )
-                filtered.push_back( *it );
-        return filtered;
-    }
-    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ) {
-        return getRegistryHub().getTestCaseRegistry().getAllTestsSorted( config );
-    }
-
-    class TestRegistry : public ITestCaseRegistry {
-    public:
-        TestRegistry()
-        :   m_currentSortOrder( RunTests::InDeclarationOrder ),
-            m_unnamedCount( 0 )
-        {}
-        virtual ~TestRegistry();
-
-        virtual void registerTest( TestCase const& testCase ) {
-            std::string name = testCase.getTestCaseInfo().name;
-            if( name.empty() ) {
-                std::ostringstream oss;
-                oss << "Anonymous test case " << ++m_unnamedCount;
-                return registerTest( testCase.withName( oss.str() ) );
-            }
-            m_functions.push_back( testCase );
-        }
-
-        virtual std::vector<TestCase> const& getAllTests() const {
-            return m_functions;
-        }
-        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const {
-            if( m_sortedFunctions.empty() )
-                enforceNoDuplicateTestCases( m_functions );
-
-            if(  m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty() ) {
-                m_sortedFunctions = sortTests( config, m_functions );
-                m_currentSortOrder = config.runOrder();
-            }
-            return m_sortedFunctions;
-        }
-
-    private:
-        std::vector<TestCase> m_functions;
-        mutable RunTests::InWhatOrder m_currentSortOrder;
-        mutable std::vector<TestCase> m_sortedFunctions;
-        size_t m_unnamedCount;
-        std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised
-    };
-
-    ///////////////////////////////////////////////////////////////////////////
-
-    class FreeFunctionTestCase : public SharedImpl<ITestCase> {
-    public:
-
-        FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {}
-
-        virtual void invoke() const {
-            m_fun();
-        }
-
-    private:
-        virtual ~FreeFunctionTestCase();
-
-        TestFunction m_fun;
-    };
-
-    inline std::string extractClassName( std::string const& classOrQualifiedMethodName ) {
-        std::string className = classOrQualifiedMethodName;
-        if( startsWith( className, '&' ) )
-        {
-            std::size_t lastColons = className.rfind( "::" );
-            std::size_t penultimateColons = className.rfind( "::", lastColons-1 );
-            if( penultimateColons == std::string::npos )
-                penultimateColons = 1;
-            className = className.substr( penultimateColons, lastColons-penultimateColons );
-        }
-        return className;
-    }
-
-    void registerTestCase
-        (   ITestCase* testCase,
-            char const* classOrQualifiedMethodName,
-            NameAndDesc const& nameAndDesc,
-            SourceLineInfo const& lineInfo ) {
-
-        getMutableRegistryHub().registerTest
-            ( makeTestCase
-                (   testCase,
-                    extractClassName( classOrQualifiedMethodName ),
-                    nameAndDesc.name,
-                    nameAndDesc.description,
-                    lineInfo ) );
-    }
-    void registerTestCaseFunction
-        (   TestFunction function,
-            SourceLineInfo const& lineInfo,
-            NameAndDesc const& nameAndDesc ) {
-        registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo );
-    }
-
-    ///////////////////////////////////////////////////////////////////////////
-
-    AutoReg::AutoReg
-        (   TestFunction function,
-            SourceLineInfo const& lineInfo,
-            NameAndDesc const& nameAndDesc ) {
-        registerTestCaseFunction( function, lineInfo, nameAndDesc );
-    }
-
-    AutoReg::~AutoReg() {}
-
-} // end namespace Catch
-
-// #included from: catch_reporter_registry.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED
-
-#include <map>
-
-namespace Catch {
-
-    class ReporterRegistry : public IReporterRegistry {
-
-    public:
-
-        virtual ~ReporterRegistry() CATCH_OVERRIDE {}
-
-        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const CATCH_OVERRIDE {
-            FactoryMap::const_iterator it =  m_factories.find( name );
-            if( it == m_factories.end() )
-                return CATCH_NULL;
-            return it->second->create( ReporterConfig( config ) );
-        }
-
-        void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) {
-            m_factories.insert( std::make_pair( name, factory ) );
-        }
-        void registerListener( Ptr<IReporterFactory> const& factory ) {
-            m_listeners.push_back( factory );
-        }
-
-        virtual FactoryMap const& getFactories() const CATCH_OVERRIDE {
-            return m_factories;
-        }
-        virtual Listeners const& getListeners() const CATCH_OVERRIDE {
-            return m_listeners;
-        }
-
-    private:
-        FactoryMap m_factories;
-        Listeners m_listeners;
-    };
-}
-
-// #included from: catch_exception_translator_registry.hpp
-#define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED
-
-#ifdef __OBJC__
-#import "Foundation/Foundation.h"
-#endif
-
-namespace Catch {
-
-    class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
-    public:
-        ~ExceptionTranslatorRegistry() {
-            deleteAll( m_translators );
-        }
-
-        virtual void registerTranslator( const IExceptionTranslator* translator ) {
-            m_translators.push_back( translator );
-        }
-
-        virtual std::string translateActiveException() const {
-            try {
-#ifdef __OBJC__
-                // In Objective-C try objective-c exceptions first
-                @try {
-                    return tryTranslators();
-                }
-                @catch (NSException *exception) {
-                    return Catch::toString( [exception description] );
-                }
-#else
-                return tryTranslators();
-#endif
-            }
-            catch( TestFailureException& ) {
-                throw;
-            }
-            catch( std::exception& ex ) {
-                return ex.what();
-            }
-            catch( std::string& msg ) {
-                return msg;
-            }
-            catch( const char* msg ) {
-                return msg;
-            }
-            catch(...) {
-                return "Unknown exception";
-            }
-        }
-
-        std::string tryTranslators() const {
-            if( m_translators.empty() )
-                throw;
-            else
-                return m_translators[0]->translate( m_translators.begin()+1, m_translators.end() );
-        }
-
-    private:
-        std::vector<const IExceptionTranslator*> m_translators;
-    };
-}
-
-namespace Catch {
-
-    namespace {
-
-        class RegistryHub : public IRegistryHub, public IMutableRegistryHub {
-
-            RegistryHub( RegistryHub const& );
-            void operator=( RegistryHub const& );
-
-        public: // IRegistryHub
-            RegistryHub() {
-            }
-            virtual IReporterRegistry const& getReporterRegistry() const CATCH_OVERRIDE {
-                return m_reporterRegistry;
-            }
-            virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_OVERRIDE {
-                return m_testCaseRegistry;
-            }
-            virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() CATCH_OVERRIDE {
-                return m_exceptionTranslatorRegistry;
-            }
-
-        public: // IMutableRegistryHub
-            virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
-                m_reporterRegistry.registerReporter( name, factory );
-            }
-            virtual void registerListener( Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
-                m_reporterRegistry.registerListener( factory );
-            }
-            virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE {
-                m_testCaseRegistry.registerTest( testInfo );
-            }
-            virtual void registerTranslator( const IExceptionTranslator* translator ) CATCH_OVERRIDE {
-                m_exceptionTranslatorRegistry.registerTranslator( translator );
-            }
-
-        private:
-            TestRegistry m_testCaseRegistry;
-            ReporterRegistry m_reporterRegistry;
-            ExceptionTranslatorRegistry m_exceptionTranslatorRegistry;
-        };
-
-        // Single, global, instance
-        inline RegistryHub*& getTheRegistryHub() {
-            static RegistryHub* theRegistryHub = CATCH_NULL;
-            if( !theRegistryHub )
-                theRegistryHub = new RegistryHub();
-            return theRegistryHub;
-        }
-    }
-
-    IRegistryHub& getRegistryHub() {
-        return *getTheRegistryHub();
-    }
-    IMutableRegistryHub& getMutableRegistryHub() {
-        return *getTheRegistryHub();
-    }
-    void cleanUp() {
-        delete getTheRegistryHub();
-        getTheRegistryHub() = CATCH_NULL;
-        cleanUpContext();
-    }
-    std::string translateActiveException() {
-        return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
-    }
-
-} // end namespace Catch
-
-// #included from: catch_notimplemented_exception.hpp
-#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED
-
-#include <ostream>
-
-namespace Catch {
-
-    NotImplementedException::NotImplementedException( SourceLineInfo const& lineInfo )
-    :   m_lineInfo( lineInfo ) {
-        std::ostringstream oss;
-        oss << lineInfo << ": function ";
-        oss << "not implemented";
-        m_what = oss.str();
-    }
-
-    const char* NotImplementedException::what() const CATCH_NOEXCEPT {
-        return m_what.c_str();
-    }
-
-} // end namespace Catch
-
-// #included from: catch_context_impl.hpp
-#define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED
-
-// #included from: catch_stream.hpp
-#define TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED
-
-#include <stdexcept>
-#include <cstdio>
-#include <iostream>
-
-namespace Catch {
-
-    template<typename WriterF, size_t bufferSize=256>
-    class StreamBufImpl : public StreamBufBase {
-        char data[bufferSize];
-        WriterF m_writer;
-
-    public:
-        StreamBufImpl() {
-            setp( data, data + sizeof(data) );
-        }
-
-        ~StreamBufImpl() CATCH_NOEXCEPT {
-            sync();
-        }
-
-    private:
-        int overflow( int c ) {
-            sync();
-
-            if( c != EOF ) {
-                if( pbase() == epptr() )
-                    m_writer( std::string( 1, static_cast<char>( c ) ) );
-                else
-                    sputc( static_cast<char>( c ) );
-            }
-            return 0;
-        }
-
-        int sync() {
-            if( pbase() != pptr() ) {
-                m_writer( std::string( pbase(), static_cast<std::string::size_type>( pptr() - pbase() ) ) );
-                setp( pbase(), epptr() );
-            }
-            return 0;
-        }
-    };
-
-    ///////////////////////////////////////////////////////////////////////////
-
-    FileStream::FileStream( std::string const& filename ) {
-        m_ofs.open( filename.c_str() );
-        if( m_ofs.fail() ) {
-            std::ostringstream oss;
-            oss << "Unable to open file: '" << filename << '\'';
-            throw std::domain_error( oss.str() );
-        }
-    }
-
-    std::ostream& FileStream::stream() const {
-        return m_ofs;
-    }
-
-    struct OutputDebugWriter {
-
-        void operator()( std::string const&str ) {
-            writeToDebugConsole( str );
-        }
-    };
-
-    DebugOutStream::DebugOutStream()
-    :   m_streamBuf( new StreamBufImpl<OutputDebugWriter>() ),
-        m_os( m_streamBuf.get() )
-    {}
-
-    std::ostream& DebugOutStream::stream() const {
-        return m_os;
-    }
-
-    // Store the streambuf from cout up-front because
-    // cout may get redirected when running tests
-    CoutStream::CoutStream()
-    :   m_os( Catch::cout().rdbuf() )
-    {}
-
-    std::ostream& CoutStream::stream() const {
-        return m_os;
-    }
-
-#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions
-    std::ostream& cout() {
-        return std::cout;
-    }
-    std::ostream& cerr() {
-        return std::cerr;
-    }
-#endif
-}
-
-namespace Catch {
-
-    class Context : public IMutableContext {
-
-        Context() : m_config( CATCH_NULL ), m_runner( CATCH_NULL ), m_resultCapture( CATCH_NULL ) {}
-        Context( Context const& );
-        void operator=( Context const& );
-
-    public:
-        virtual ~Context() {
-            deleteAllValues( m_generatorsByTestName );
-        }
-
-    public: // IContext
-        virtual IResultCapture* getResultCapture() {
-            return m_resultCapture;
-        }
-        virtual IRunner* getRunner() {
-            return m_runner;
-        }
-        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) {
-            return getGeneratorsForCurrentTest()
-            .getGeneratorInfo( fileInfo, totalSize )
-            .getCurrentIndex();
-        }
-        virtual bool advanceGeneratorsForCurrentTest() {
-            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
-            return generators && generators->moveNext();
-        }
-
-        virtual Ptr<IConfig const> getConfig() const {
-            return m_config;
-        }
-
-    public: // IMutableContext
-        virtual void setResultCapture( IResultCapture* resultCapture ) {
-            m_resultCapture = resultCapture;
-        }
-        virtual void setRunner( IRunner* runner ) {
-            m_runner = runner;
-        }
-        virtual void setConfig( Ptr<IConfig const> const& config ) {
-            m_config = config;
-        }
-
-        friend IMutableContext& getCurrentMutableContext();
-
-    private:
-        IGeneratorsForTest* findGeneratorsForCurrentTest() {
-            std::string testName = getResultCapture()->getCurrentTestName();
-
-            std::map<std::string, IGeneratorsForTest*>::const_iterator it =
-                m_generatorsByTestName.find( testName );
-            return it != m_generatorsByTestName.end()
-                ? it->second
-                : CATCH_NULL;
-        }
-
-        IGeneratorsForTest& getGeneratorsForCurrentTest() {
-            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
-            if( !generators ) {
-                std::string testName = getResultCapture()->getCurrentTestName();
-                generators = createGeneratorsForTest();
-                m_generatorsByTestName.insert( std::make_pair( testName, generators ) );
-            }
-            return *generators;
-        }
-
-    private:
-        Ptr<IConfig const> m_config;
-        IRunner* m_runner;
-        IResultCapture* m_resultCapture;
-        std::map<std::string, IGeneratorsForTest*> m_generatorsByTestName;
-    };
-
-    namespace {
-        Context* currentContext = CATCH_NULL;
-    }
-    IMutableContext& getCurrentMutableContext() {
-        if( !currentContext )
-            currentContext = new Context();
-        return *currentContext;
-    }
-    IContext& getCurrentContext() {
-        return getCurrentMutableContext();
-    }
-
-    void cleanUpContext() {
-        delete currentContext;
-        currentContext = CATCH_NULL;
-    }
-}
-
-// #included from: catch_console_colour_impl.hpp
-#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED
-
-namespace Catch {
-    namespace {
-
-        struct IColourImpl {
-            virtual ~IColourImpl() {}
-            virtual void use( Colour::Code _colourCode ) = 0;
-        };
-
-        struct NoColourImpl : IColourImpl {
-            void use( Colour::Code ) {}
-
-            static IColourImpl* instance() {
-                static NoColourImpl s_instance;
-                return &s_instance;
-            }
-        };
-
-    } // anon namespace
-} // namespace Catch
-
-#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI )
-#   ifdef CATCH_PLATFORM_WINDOWS
-#       define CATCH_CONFIG_COLOUR_WINDOWS
-#   else
-#       define CATCH_CONFIG_COLOUR_ANSI
-#   endif
-#endif
-
-#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) /////////////////////////////////////////
-
-// #included from: catch_windows_h_proxy.h
-
-#define TWOBLUECUBES_CATCH_WINDOWS_H_PROXY_H_INCLUDED
-
-#ifdef CATCH_DEFINES_NOMINMAX
-#  define NOMINMAX
-#endif
-#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN
-#  define WIN32_LEAN_AND_MEAN
-#endif
-
-#ifdef __AFXDLL
-#include <AfxWin.h>
-#else
-#include <windows.h>
-#endif
-
-#ifdef CATCH_DEFINES_NOMINMAX
-#  undef NOMINMAX
-#endif
-#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN
-#  undef WIN32_LEAN_AND_MEAN
-#endif
-
-namespace Catch {
-namespace {
-
-    class Win32ColourImpl : public IColourImpl {
-    public:
-        Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) )
-        {
-            CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
-            GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo );
-            originalForegroundAttributes = csbiInfo.wAttributes & ~( BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY );
-            originalBackgroundAttributes = csbiInfo.wAttributes & ~( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY );
-        }
-
-        virtual void use( Colour::Code _colourCode ) {
-            switch( _colourCode ) {
-                case Colour::None:      return setTextAttribute( originalForegroundAttributes );
-                case Colour::White:     return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
-                case Colour::Red:       return setTextAttribute( FOREGROUND_RED );
-                case Colour::Green:     return setTextAttribute( FOREGROUND_GREEN );
-                case Colour::Blue:      return setTextAttribute( FOREGROUND_BLUE );
-                case Colour::Cyan:      return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN );
-                case Colour::Yellow:    return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN );
-                case Colour::Grey:      return setTextAttribute( 0 );
-
-                case Colour::LightGrey:     return setTextAttribute( FOREGROUND_INTENSITY );
-                case Colour::BrightRed:     return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED );
-                case Colour::BrightGreen:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN );
-                case Colour::BrightWhite:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
-
-                case Colour::Bright: throw std::logic_error( "not a colour" );
-            }
-        }
-
-    private:
-        void setTextAttribute( WORD _textAttribute ) {
-            SetConsoleTextAttribute( stdoutHandle, _textAttribute | originalBackgroundAttributes );
-        }
-        HANDLE stdoutHandle;
-        WORD originalForegroundAttributes;
-        WORD originalBackgroundAttributes;
-    };
-
-    IColourImpl* platformColourInstance() {
-        static Win32ColourImpl s_instance;
-
-        Ptr<IConfig const> config = getCurrentContext().getConfig();
-        UseColour::YesOrNo colourMode = config
-            ? config->useColour()
-            : UseColour::Auto;
-        if( colourMode == UseColour::Auto )
-            colourMode = !isDebuggerActive()
-                ? UseColour::Yes
-                : UseColour::No;
-        return colourMode == UseColour::Yes
-            ? &s_instance
-            : NoColourImpl::instance();
-    }
-
-} // end anon namespace
-} // end namespace Catch
-
-#elif defined( CATCH_CONFIG_COLOUR_ANSI ) //////////////////////////////////////
-
-#include <unistd.h>
-
-namespace Catch {
-namespace {
-
-    // use POSIX/ ANSI console terminal codes
-    // Thanks to Adam Strzelecki for original contribution
-    // (http://github.com/nanoant)
-    // https://github.com/philsquared/Catch/pull/131
-    class PosixColourImpl : public IColourImpl {
-    public:
-        virtual void use( Colour::Code _colourCode ) {
-            switch( _colourCode ) {
-                case Colour::None:
-                case Colour::White:     return setColour( "[0m" );
-                case Colour::Red:       return setColour( "[0;31m" );
-                case Colour::Green:     return setColour( "[0;32m" );
-                case Colour::Blue:      return setColour( "[0;34m" );
-                case Colour::Cyan:      return setColour( "[0;36m" );
-                case Colour::Yellow:    return setColour( "[0;33m" );
-                case Colour::Grey:      return setColour( "[1;30m" );
-
-                case Colour::LightGrey:     return setColour( "[0;37m" );
-                case Colour::BrightRed:     return setColour( "[1;31m" );
-                case Colour::BrightGreen:   return setColour( "[1;32m" );
-                case Colour::BrightWhite:   return setColour( "[1;37m" );
-
-                case Colour::Bright: throw std::logic_error( "not a colour" );
-            }
-        }
-        static IColourImpl* instance() {
-            static PosixColourImpl s_instance;
-            return &s_instance;
-        }
-
-    private:
-        void setColour( const char* _escapeCode ) {
-            Catch::cout() << '\033' << _escapeCode;
-        }
-    };
-
-    IColourImpl* platformColourInstance() {
-        Ptr<IConfig const> config = getCurrentContext().getConfig();
-        UseColour::YesOrNo colourMode = config
-            ? config->useColour()
-            : UseColour::Auto;
-        if( colourMode == UseColour::Auto )
-            colourMode = (!isDebuggerActive() && isatty(STDOUT_FILENO) )
-                ? UseColour::Yes
-                : UseColour::No;
-        return colourMode == UseColour::Yes
-            ? PosixColourImpl::instance()
-            : NoColourImpl::instance();
-    }
-
-} // end anon namespace
-} // end namespace Catch
-
-#else  // not Windows or ANSI ///////////////////////////////////////////////
-
-namespace Catch {
-
-    static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); }
-
-} // end namespace Catch
-
-#endif // Windows/ ANSI/ None
-
-namespace Catch {
-
-    Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); }
-    Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast<Colour&>( _other ).m_moved = true; }
-    Colour::~Colour(){ if( !m_moved ) use( None ); }
-
-    void Colour::use( Code _colourCode ) {
-        static IColourImpl* impl = platformColourInstance();
-        impl->use( _colourCode );
-    }
-
-} // end namespace Catch
-
-// #included from: catch_generators_impl.hpp
-#define TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED
-
-#include <vector>
-#include <string>
-#include <map>
-
-namespace Catch {
-
-    struct GeneratorInfo : IGeneratorInfo {
-
-        GeneratorInfo( std::size_t size )
-        :   m_size( size ),
-            m_currentIndex( 0 )
-        {}
-
-        bool moveNext() {
-            if( ++m_currentIndex == m_size ) {
-                m_currentIndex = 0;
-                return false;
-            }
-            return true;
-        }
-
-        std::size_t getCurrentIndex() const {
-            return m_currentIndex;
-        }
-
-        std::size_t m_size;
-        std::size_t m_currentIndex;
-    };
-
-    ///////////////////////////////////////////////////////////////////////////
-
-    class GeneratorsForTest : public IGeneratorsForTest {
-
-    public:
-        ~GeneratorsForTest() {
-            deleteAll( m_generatorsInOrder );
-        }
-
-        IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) {
-            std::map<std::string, IGeneratorInfo*>::const_iterator it = m_generatorsByName.find( fileInfo );
-            if( it == m_generatorsByName.end() ) {
-                IGeneratorInfo* info = new GeneratorInfo( size );
-                m_generatorsByName.insert( std::make_pair( fileInfo, info ) );
-                m_generatorsInOrder.push_back( info );
-                return *info;
-            }
-            return *it->second;
-        }
-
-        bool moveNext() {
-            std::vector<IGeneratorInfo*>::const_iterator it = m_generatorsInOrder.begin();
-            std::vector<IGeneratorInfo*>::const_iterator itEnd = m_generatorsInOrder.end();
-            for(; it != itEnd; ++it ) {
-                if( (*it)->moveNext() )
-                    return true;
-            }
-            return false;
-        }
-
-    private:
-        std::map<std::string, IGeneratorInfo*> m_generatorsByName;
-        std::vector<IGeneratorInfo*> m_generatorsInOrder;
-    };
-
-    IGeneratorsForTest* createGeneratorsForTest()
-    {
-        return new GeneratorsForTest();
-    }
-
-} // end namespace Catch
-
-// #included from: catch_assertionresult.hpp
-#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
-
-namespace Catch {
-
-    AssertionInfo::AssertionInfo(   std::string const& _macroName,
-                                    SourceLineInfo const& _lineInfo,
-                                    std::string const& _capturedExpression,
-                                    ResultDisposition::Flags _resultDisposition )
-    :   macroName( _macroName ),
-        lineInfo( _lineInfo ),
-        capturedExpression( _capturedExpression ),
-        resultDisposition( _resultDisposition )
-    {}
-
-    AssertionResult::AssertionResult() {}
-
-    AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data )
-    :   m_info( info ),
-        m_resultData( data )
-    {}
-
-    AssertionResult::~AssertionResult() {}
-
-    // Result was a success
-    bool AssertionResult::succeeded() const {
-        return Catch::isOk( m_resultData.resultType );
-    }
-
-    // Result was a success, or failure is suppressed
-    bool AssertionResult::isOk() const {
-        return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition );
-    }
-
-    ResultWas::OfType AssertionResult::getResultType() const {
-        return m_resultData.resultType;
-    }
-
-    bool AssertionResult::hasExpression() const {
-        return !m_info.capturedExpression.empty();
-    }
-
-    bool AssertionResult::hasMessage() const {
-        return !m_resultData.message.empty();
-    }
-
-    std::string AssertionResult::getExpression() const {
-        if( isFalseTest( m_info.resultDisposition ) )
-            return '!' + m_info.capturedExpression;
-        else
-            return m_info.capturedExpression;
-    }
-    std::string AssertionResult::getExpressionInMacro() const {
-        if( m_info.macroName.empty() )
-            return m_info.capturedExpression;
-        else
-            return m_info.macroName + "( " + m_info.capturedExpression + " )";
-    }
-
-    bool AssertionResult::hasExpandedExpression() const {
-        return hasExpression() && getExpandedExpression() != getExpression();
-    }
-
-    std::string AssertionResult::getExpandedExpression() const {
-        return m_resultData.reconstructExpression();
-    }
-
-    std::string AssertionResult::getMessage() const {
-        return m_resultData.message;
-    }
-    SourceLineInfo AssertionResult::getSourceInfo() const {
-        return m_info.lineInfo;
-    }
-
-    std::string AssertionResult::getTestMacroName() const {
-        return m_info.macroName;
-    }
-
-    void AssertionResult::discardDecomposedExpression() const {
-        m_resultData.decomposedExpression = CATCH_NULL;
-    }
-
-    void AssertionResult::expandDecomposedExpression() const {
-        m_resultData.reconstructExpression();
-    }
-
-} // end namespace Catch
-
-// #included from: catch_test_case_info.hpp
-#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED
-
-namespace Catch {
-
-    inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) {
-        if( startsWith( tag, '.' ) ||
-            tag == "hide" ||
-            tag == "!hide" )
-            return TestCaseInfo::IsHidden;
-        else if( tag == "!throws" )
-            return TestCaseInfo::Throws;
-        else if( tag == "!shouldfail" )
-            return TestCaseInfo::ShouldFail;
-        else if( tag == "!mayfail" )
-            return TestCaseInfo::MayFail;
-        else if( tag == "!nonportable" )
-            return TestCaseInfo::NonPortable;
-        else
-            return TestCaseInfo::None;
-    }
-    inline bool isReservedTag( std::string const& tag ) {
-        return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !isalnum( tag[0] );
-    }
-    inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) {
-        if( isReservedTag( tag ) ) {
-            {
-                Colour colourGuard( Colour::Red );
-                Catch::cerr()
-                    << "Tag name [" << tag << "] not allowed.\n"
-                    << "Tag names starting with non alpha-numeric characters are reserved\n";
-            }
-            {
-                Colour colourGuard( Colour::FileName );
-                Catch::cerr() << _lineInfo << std::endl;
-            }
-            exit(1);
-        }
-    }
-
-    TestCase makeTestCase(  ITestCase* _testCase,
-                            std::string const& _className,
-                            std::string const& _name,
-                            std::string const& _descOrTags,
-                            SourceLineInfo const& _lineInfo )
-    {
-        bool isHidden( startsWith( _name, "./" ) ); // Legacy support
-
-        // Parse out tags
-        std::set<std::string> tags;
-        std::string desc, tag;
-        bool inTag = false;
-        for( std::size_t i = 0; i < _descOrTags.size(); ++i ) {
-            char c = _descOrTags[i];
-            if( !inTag ) {
-                if( c == '[' )
-                    inTag = true;
-                else
-                    desc += c;
-            }
-            else {
-                if( c == ']' ) {
-                    TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag );
-                    if( prop == TestCaseInfo::IsHidden )
-                        isHidden = true;
-                    else if( prop == TestCaseInfo::None )
-                        enforceNotReservedTag( tag, _lineInfo );
-
-                    tags.insert( tag );
-                    tag.clear();
-                    inTag = false;
-                }
-                else
-                    tag += c;
-            }
-        }
-        if( isHidden ) {
-            tags.insert( "hide" );
-            tags.insert( "." );
-        }
-
-        TestCaseInfo info( _name, _className, desc, tags, _lineInfo );
-        return TestCase( _testCase, info );
-    }
-
-    void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags )
-    {
-        testCaseInfo.tags = tags;
-        testCaseInfo.lcaseTags.clear();
-
-        std::ostringstream oss;
-        for( std::set<std::string>::const_iterator it = tags.begin(), itEnd = tags.end(); it != itEnd; ++it ) {
-            oss << '[' << *it << ']';
-            std::string lcaseTag = toLower( *it );
-            testCaseInfo.properties = static_cast<TestCaseInfo::SpecialProperties>( testCaseInfo.properties | parseSpecialTag( lcaseTag ) );
-            testCaseInfo.lcaseTags.insert( lcaseTag );
-        }
-        testCaseInfo.tagsAsString = oss.str();
-    }
-
-    TestCaseInfo::TestCaseInfo( std::string const& _name,
-                                std::string const& _className,
-                                std::string const& _description,
-                                std::set<std::string> const& _tags,
-                                SourceLineInfo const& _lineInfo )
-    :   name( _name ),
-        className( _className ),
-        description( _description ),
-        lineInfo( _lineInfo ),
-        properties( None )
-    {
-        setTags( *this, _tags );
-    }
-
-    TestCaseInfo::TestCaseInfo( TestCaseInfo const& other )
-    :   name( other.name ),
-        className( other.className ),
-        description( other.description ),
-        tags( other.tags ),
-        lcaseTags( other.lcaseTags ),
-        tagsAsString( other.tagsAsString ),
-        lineInfo( other.lineInfo ),
-        properties( other.properties )
-    {}
-
-    bool TestCaseInfo::isHidden() const {
-        return ( properties & IsHidden ) != 0;
-    }
-    bool TestCaseInfo::throws() const {
-        return ( properties & Throws ) != 0;
-    }
-    bool TestCaseInfo::okToFail() const {
-        return ( properties & (ShouldFail | MayFail ) ) != 0;
-    }
-    bool TestCaseInfo::expectedToFail() const {
-        return ( properties & (ShouldFail ) ) != 0;
-    }
-
-    TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {}
-
-    TestCase::TestCase( TestCase const& other )
-    :   TestCaseInfo( other ),
-        test( other.test )
-    {}
-
-    TestCase TestCase::withName( std::string const& _newName ) const {
-        TestCase other( *this );
-        other.name = _newName;
-        return other;
-    }
-
-    void TestCase::swap( TestCase& other ) {
-        test.swap( other.test );
-        name.swap( other.name );
-        className.swap( other.className );
-        description.swap( other.description );
-        tags.swap( other.tags );
-        lcaseTags.swap( other.lcaseTags );
-        tagsAsString.swap( other.tagsAsString );
-        std::swap( TestCaseInfo::properties, static_cast<TestCaseInfo&>( other ).properties );
-        std::swap( lineInfo, other.lineInfo );
-    }
-
-    void TestCase::invoke() const {
-        test->invoke();
-    }
-
-    bool TestCase::operator == ( TestCase const& other ) const {
-        return  test.get() == other.test.get() &&
-                name == other.name &&
-                className == other.className;
-    }
-
-    bool TestCase::operator < ( TestCase const& other ) const {
-        return name < other.name;
-    }
-    TestCase& TestCase::operator = ( TestCase const& other ) {
-        TestCase temp( other );
-        swap( temp );
-        return *this;
-    }
-
-    TestCaseInfo const& TestCase::getTestCaseInfo() const
-    {
-        return *this;
-    }
-
-} // end namespace Catch
-
-// #included from: catch_version.hpp
-#define TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
-
-namespace Catch {
-
-    Version::Version
-        (   unsigned int _majorVersion,
-            unsigned int _minorVersion,
-            unsigned int _patchNumber,
-            std::string const& _branchName,
-            unsigned int _buildNumber )
-    :   majorVersion( _majorVersion ),
-        minorVersion( _minorVersion ),
-        patchNumber( _patchNumber ),
-        branchName( _branchName ),
-        buildNumber( _buildNumber )
-    {}
-
-    std::ostream& operator << ( std::ostream& os, Version const& version ) {
-        os  << version.majorVersion << '.'
-            << version.minorVersion << '.'
-            << version.patchNumber;
-
-        if( !version.branchName.empty() ) {
-            os  << '-' << version.branchName
-                << '.' << version.buildNumber;
-        }
-        return os;
-    }
-
-    Version libraryVersion( 1, 7, 0, "", 0 );
-
-}
-
-// #included from: catch_message.hpp
-#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED
-
-namespace Catch {
-
-    MessageInfo::MessageInfo(   std::string const& _macroName,
-                                SourceLineInfo const& _lineInfo,
-                                ResultWas::OfType _type )
-    :   macroName( _macroName ),
-        lineInfo( _lineInfo ),
-        type( _type ),
-        sequence( ++globalCount )
-    {}
-
-    // This may need protecting if threading support is added
-    unsigned int MessageInfo::globalCount = 0;
-
-    ////////////////////////////////////////////////////////////////////////////
-
-    ScopedMessage::ScopedMessage( MessageBuilder const& builder )
-    : m_info( builder.m_info )
-    {
-        m_info.message = builder.m_stream.str();
-        getResultCapture().pushScopedMessage( m_info );
-    }
-    ScopedMessage::ScopedMessage( ScopedMessage const& other )
-    : m_info( other.m_info )
-    {}
-
-    ScopedMessage::~ScopedMessage() {
-        getResultCapture().popScopedMessage( m_info );
-    }
-
-} // end namespace Catch
-
-// #included from: catch_legacy_reporter_adapter.hpp
-#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED
-
-// #included from: catch_legacy_reporter_adapter.h
-#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
-
-namespace Catch
-{
-    // Deprecated
-    struct IReporter : IShared {
-        virtual ~IReporter();
-
-        virtual bool shouldRedirectStdout() const = 0;
-
-        virtual void StartTesting() = 0;
-        virtual void EndTesting( Totals const& totals ) = 0;
-        virtual void StartGroup( std::string const& groupName ) = 0;
-        virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0;
-        virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0;
-        virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0;
-        virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0;
-        virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0;
-        virtual void NoAssertionsInSection( std::string const& sectionName ) = 0;
-        virtual void NoAssertionsInTestCase( std::string const& testName ) = 0;
-        virtual void Aborted() = 0;
-        virtual void Result( AssertionResult const& result ) = 0;
-    };
-
-    class LegacyReporterAdapter : public SharedImpl<IStreamingReporter>
-    {
-    public:
-        LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter );
-        virtual ~LegacyReporterAdapter();
-
-        virtual ReporterPreferences getPreferences() const;
-        virtual void noMatchingTestCases( std::string const& );
-        virtual void testRunStarting( TestRunInfo const& );
-        virtual void testGroupStarting( GroupInfo const& groupInfo );
-        virtual void testCaseStarting( TestCaseInfo const& testInfo );
-        virtual void sectionStarting( SectionInfo const& sectionInfo );
-        virtual void assertionStarting( AssertionInfo const& );
-        virtual bool assertionEnded( AssertionStats const& assertionStats );
-        virtual void sectionEnded( SectionStats const& sectionStats );
-        virtual void testCaseEnded( TestCaseStats const& testCaseStats );
-        virtual void testGroupEnded( TestGroupStats const& testGroupStats );
-        virtual void testRunEnded( TestRunStats const& testRunStats );
-        virtual void skipTest( TestCaseInfo const& );
-
-    private:
-        Ptr<IReporter> m_legacyReporter;
-    };
-}
-
-namespace Catch
-{
-    LegacyReporterAdapter::LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter )
-    :   m_legacyReporter( legacyReporter )
-    {}
-    LegacyReporterAdapter::~LegacyReporterAdapter() {}
-
-    ReporterPreferences LegacyReporterAdapter::getPreferences() const {
-        ReporterPreferences prefs;
-        prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout();
-        return prefs;
-    }
-
-    void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {}
-    void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) {
-        m_legacyReporter->StartTesting();
-    }
-    void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) {
-        m_legacyReporter->StartGroup( groupInfo.name );
-    }
-    void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) {
-        m_legacyReporter->StartTestCase( testInfo );
-    }
-    void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) {
-        m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description );
-    }
-    void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) {
-        // Not on legacy interface
-    }
-
-    bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) {
-        if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
-            for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
-                    it != itEnd;
-                    ++it ) {
-                if( it->type == ResultWas::Info ) {
-                    ResultBuilder rb( it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal );
-                    rb << it->message;
-                    rb.setResultType( ResultWas::Info );
-                    AssertionResult result = rb.build();
-                    m_legacyReporter->Result( result );
-                }
-            }
-        }
-        m_legacyReporter->Result( assertionStats.assertionResult );
-        return true;
-    }
-    void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) {
-        if( sectionStats.missingAssertions )
-            m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name );
-        m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions );
-    }
-    void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) {
-        m_legacyReporter->EndTestCase
-            (   testCaseStats.testInfo,
-                testCaseStats.totals,
-                testCaseStats.stdOut,
-                testCaseStats.stdErr );
-    }
-    void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) {
-        if( testGroupStats.aborting )
-            m_legacyReporter->Aborted();
-        m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals );
-    }
-    void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) {
-        m_legacyReporter->EndTesting( testRunStats.totals );
-    }
-    void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) {
-    }
-}
-
-// #included from: catch_timer.hpp
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wc++11-long-long"
-#endif
-
-#ifdef CATCH_PLATFORM_WINDOWS
-#else
-#include <sys/time.h>
-#endif
-
-namespace Catch {
-
-    namespace {
-#ifdef CATCH_PLATFORM_WINDOWS
-        uint64_t getCurrentTicks() {
-            static uint64_t hz=0, hzo=0;
-            if (!hz) {
-                QueryPerformanceFrequency( reinterpret_cast<LARGE_INTEGER*>( &hz ) );
-                QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &hzo ) );
-            }
-            uint64_t t;
-            QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &t ) );
-            return ((t-hzo)*1000000)/hz;
-        }
-#else
-        uint64_t getCurrentTicks() {
-            timeval t;
-            gettimeofday(&t,CATCH_NULL);
-            return static_cast<uint64_t>( t.tv_sec ) * 1000000ull + static_cast<uint64_t>( t.tv_usec );
-        }
-#endif
-    }
-
-    void Timer::start() {
-        m_ticks = getCurrentTicks();
-    }
-    unsigned int Timer::getElapsedMicroseconds() const {
-        return static_cast<unsigned int>(getCurrentTicks() - m_ticks);
-    }
-    unsigned int Timer::getElapsedMilliseconds() const {
-        return static_cast<unsigned int>(getElapsedMicroseconds()/1000);
-    }
-    double Timer::getElapsedSeconds() const {
-        return getElapsedMicroseconds()/1000000.0;
-    }
-
-} // namespace Catch
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-// #included from: catch_common.hpp
-#define TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED
-
-#include <cstring>
-
-namespace Catch {
-
-    bool startsWith( std::string const& s, std::string const& prefix ) {
-        return s.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), s.begin());
-    }
-    bool startsWith( std::string const& s, char prefix ) {
-        return !s.empty() && s[0] == prefix;
-    }
-    bool endsWith( std::string const& s, std::string const& suffix ) {
-        return s.size() >= suffix.size() && std::equal(suffix.rbegin(), suffix.rend(), s.rbegin());
-    }
-    bool endsWith( std::string const& s, char suffix ) {
-        return !s.empty() && s[s.size()-1] == suffix;
-    }
-    bool contains( std::string const& s, std::string const& infix ) {
-        return s.find( infix ) != std::string::npos;
-    }
-    bool contains( std::string const& s, char infix ) {
-        return s.find(infix) != std::string::npos;
-    }
-    char toLowerCh(char c) {
-        return static_cast<char>( ::tolower( c ) );
-    }
-    void toLowerInPlace( std::string& s ) {
-        std::transform( s.begin(), s.end(), s.begin(), toLowerCh );
-    }
-    std::string toLower( std::string const& s ) {
-        std::string lc = s;
-        toLowerInPlace( lc );
-        return lc;
-    }
-    std::string trim( std::string const& str ) {
-        static char const* whitespaceChars = "\n\r\t ";
-        std::string::size_type start = str.find_first_not_of( whitespaceChars );
-        std::string::size_type end = str.find_last_not_of( whitespaceChars );
-
-        return start != std::string::npos ? str.substr( start, 1+end-start ) : std::string();
-    }
-
-    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) {
-        bool replaced = false;
-        std::size_t i = str.find( replaceThis );
-        while( i != std::string::npos ) {
-            replaced = true;
-            str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() );
-            if( i < str.size()-withThis.size() )
-                i = str.find( replaceThis, i+withThis.size() );
-            else
-                i = std::string::npos;
-        }
-        return replaced;
-    }
-
-    pluralise::pluralise( std::size_t count, std::string const& label )
-    :   m_count( count ),
-        m_label( label )
-    {}
-
-    std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) {
-        os << pluraliser.m_count << ' ' << pluraliser.m_label;
-        if( pluraliser.m_count != 1 )
-            os << 's';
-        return os;
-    }
-
-    SourceLineInfo::SourceLineInfo() : file(""), line( 0 ){}
-    SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line )
-    :   file( _file ),
-        line( _line )
-    {}
-    bool SourceLineInfo::empty() const {
-        return file[0] == '\0';
-    }
-    bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const {
-        return line == other.line && (file == other.file || std::strcmp(file, other.file) == 0);
-    }
-    bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const {
-        return line < other.line || ( line == other.line && (std::strcmp(file, other.file) < 0));
-    }
-
-    void seedRng( IConfig const& config ) {
-        if( config.rngSeed() != 0 )
-            std::srand( config.rngSeed() );
-    }
-    unsigned int rngSeed() {
-        return getCurrentContext().getConfig()->rngSeed();
-    }
-
-    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) {
-#ifndef __GNUG__
-        os << info.file << '(' << info.line << ')';
-#else
-        os << info.file << ':' << info.line;
-#endif
-        return os;
-    }
-
-    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) {
-        std::ostringstream oss;
-        oss << locationInfo << ": Internal Catch error: '" << message << '\'';
-        if( alwaysTrue() )
-            throw std::logic_error( oss.str() );
-    }
-}
-
-// #included from: catch_section.hpp
-#define TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED
-
-namespace Catch {
-
-    SectionInfo::SectionInfo
-        (   SourceLineInfo const& _lineInfo,
-            std::string const& _name,
-            std::string const& _description )
-    :   name( _name ),
-        description( _description ),
-        lineInfo( _lineInfo )
-    {}
-
-    Section::Section( SectionInfo const& info )
-    :   m_info( info ),
-        m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) )
-    {
-        m_timer.start();
-    }
-
-    Section::~Section() {
-        if( m_sectionIncluded ) {
-            SectionEndInfo endInfo( m_info, m_assertions, m_timer.getElapsedSeconds() );
-            if( std::uncaught_exception() )
-                getResultCapture().sectionEndedEarly( endInfo );
-            else
-                getResultCapture().sectionEnded( endInfo );
-        }
-    }
-
-    // This indicates whether the section should be executed or not
-    Section::operator bool() const {
-        return m_sectionIncluded;
-    }
-
-} // end namespace Catch
-
-// #included from: catch_debugger.hpp
-#define TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED
-
-#include <iostream>
-
-#ifdef CATCH_PLATFORM_MAC
-
-    #include <assert.h>
-    #include <stdbool.h>
-    #include <sys/types.h>
-    #include <unistd.h>
-    #include <sys/sysctl.h>
-
-    namespace Catch{
-
-        // The following function is taken directly from the following technical note:
-        // http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html
-
-        // Returns true if the current process is being debugged (either
-        // running under the debugger or has a debugger attached post facto).
-        bool isDebuggerActive(){
-
-            int                 mib[4];
-            struct kinfo_proc   info;
-            size_t              size;
-
-            // Initialize the flags so that, if sysctl fails for some bizarre
-            // reason, we get a predictable result.
-
-            info.kp_proc.p_flag = 0;
-
-            // Initialize mib, which tells sysctl the info we want, in this case
-            // we're looking for information about a specific process ID.
-
-            mib[0] = CTL_KERN;
-            mib[1] = KERN_PROC;
-            mib[2] = KERN_PROC_PID;
-            mib[3] = getpid();
-
-            // Call sysctl.
-
-            size = sizeof(info);
-            if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, CATCH_NULL, 0) != 0 ) {
-                Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl;
-                return false;
-            }
-
-            // We're being debugged if the P_TRACED flag is set.
-
-            return ( (info.kp_proc.p_flag & P_TRACED) != 0 );
-        }
-    } // namespace Catch
-
-#elif defined(CATCH_PLATFORM_LINUX)
-    #include <fstream>
-    #include <string>
-
-    namespace Catch{
-        // The standard POSIX way of detecting a debugger is to attempt to
-        // ptrace() the process, but this needs to be done from a child and not
-        // this process itself to still allow attaching to this process later
-        // if wanted, so is rather heavy. Under Linux we have the PID of the
-        // "debugger" (which doesn't need to be gdb, of course, it could also
-        // be strace, for example) in /proc/$PID/status, so just get it from
-        // there instead.
-        bool isDebuggerActive(){
-            std::ifstream in("/proc/self/status");
-            for( std::string line; std::getline(in, line); ) {
-                static const int PREFIX_LEN = 11;
-                if( line.compare(0, PREFIX_LEN, "TracerPid:\t") == 0 ) {
-                    // We're traced if the PID is not 0 and no other PID starts
-                    // with 0 digit, so it's enough to check for just a single
-                    // character.
-                    return line.length() > PREFIX_LEN && line[PREFIX_LEN] != '0';
-                }
-            }
-
-            return false;
-        }
-    } // namespace Catch
-#elif defined(_MSC_VER)
-    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
-    namespace Catch {
-        bool isDebuggerActive() {
-            return IsDebuggerPresent() != 0;
-        }
-    }
-#elif defined(__MINGW32__)
-    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
-    namespace Catch {
-        bool isDebuggerActive() {
-            return IsDebuggerPresent() != 0;
-        }
-    }
-#else
-    namespace Catch {
-       inline bool isDebuggerActive() { return false; }
-    }
-#endif // Platform
-
-#ifdef CATCH_PLATFORM_WINDOWS
-    extern "C" __declspec(dllimport) void __stdcall OutputDebugStringA( const char* );
-    namespace Catch {
-        void writeToDebugConsole( std::string const& text ) {
-            ::OutputDebugStringA( text.c_str() );
-        }
-    }
-#else
-    namespace Catch {
-        void writeToDebugConsole( std::string const& text ) {
-            // !TBD: Need a version for Mac/ XCode and other IDEs
-            Catch::cout() << text;
-        }
-    }
-#endif // Platform
-
-// #included from: catch_tostring.hpp
-#define TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
-
-namespace Catch {
-
-namespace Detail {
-
-    const std::string unprintableString = "{?}";
-
-    namespace {
-        const int hexThreshold = 255;
-
-        struct Endianness {
-            enum Arch { Big, Little };
-
-            static Arch which() {
-                union _{
-                    int asInt;
-                    char asChar[sizeof (int)];
-                } u;
-
-                u.asInt = 1;
-                return ( u.asChar[sizeof(int)-1] == 1 ) ? Big : Little;
-            }
-        };
-    }
-
-    std::string rawMemoryToString( const void *object, std::size_t size )
-    {
-        // Reverse order for little endian architectures
-        int i = 0, end = static_cast<int>( size ), inc = 1;
-        if( Endianness::which() == Endianness::Little ) {
-            i = end-1;
-            end = inc = -1;
-        }
-
-        unsigned char const *bytes = static_cast<unsigned char const *>(object);
-        std::ostringstream os;
-        os << "0x" << std::setfill('0') << std::hex;
-        for( ; i != end; i += inc )
-             os << std::setw(2) << static_cast<unsigned>(bytes[i]);
-       return os.str();
-    }
-}
-
-std::string toString( std::string const& value ) {
-    std::string s = value;
-    if( getCurrentContext().getConfig()->showInvisibles() ) {
-        for(size_t i = 0; i < s.size(); ++i ) {
-            std::string subs;
-            switch( s[i] ) {
-            case '\n': subs = "\\n"; break;
-            case '\t': subs = "\\t"; break;
-            default: break;
-            }
-            if( !subs.empty() ) {
-                s = s.substr( 0, i ) + subs + s.substr( i+1 );
-                ++i;
-            }
-        }
-    }
-    return '"' + s + '"';
-}
-std::string toString( std::wstring const& value ) {
-
-    std::string s;
-    s.reserve( value.size() );
-    for(size_t i = 0; i < value.size(); ++i )
-        s += value[i] <= 0xff ? static_cast<char>( value[i] ) : '?';
-    return Catch::toString( s );
-}
-
-std::string toString( const char* const value ) {
-    return value ? Catch::toString( std::string( value ) ) : std::string( "{null string}" );
-}
-
-std::string toString( char* const value ) {
-    return Catch::toString( static_cast<const char*>( value ) );
-}
-
-std::string toString( const wchar_t* const value )
-{
-    return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" );
-}
-
-std::string toString( wchar_t* const value )
-{
-    return Catch::toString( static_cast<const wchar_t*>( value ) );
-}
-
-std::string toString( int value ) {
-    std::ostringstream oss;
-    oss << value;
-    if( value > Detail::hexThreshold )
-        oss << " (0x" << std::hex << value << ')';
-    return oss.str();
-}
-
-std::string toString( unsigned long value ) {
-    std::ostringstream oss;
-    oss << value;
-    if( value > Detail::hexThreshold )
-        oss << " (0x" << std::hex << value << ')';
-    return oss.str();
-}
-
-std::string toString( unsigned int value ) {
-    return Catch::toString( static_cast<unsigned long>( value ) );
-}
-
-template<typename T>
-std::string fpToString( T value, int precision ) {
-    std::ostringstream oss;
-    oss << std::setprecision( precision )
-        << std::fixed
-        << value;
-    std::string d = oss.str();
-    std::size_t i = d.find_last_not_of( '0' );
-    if( i != std::string::npos && i != d.size()-1 ) {
-        if( d[i] == '.' )
-            i++;
-        d = d.substr( 0, i+1 );
-    }
-    return d;
-}
-
-std::string toString( const double value ) {
-    return fpToString( value, 10 );
-}
-std::string toString( const float value ) {
-    return fpToString( value, 5 ) + 'f';
-}
-
-std::string toString( bool value ) {
-    return value ? "true" : "false";
-}
-
-std::string toString( char value ) {
-    if ( value == '\r' )
-        return "'\\r'";
-    if ( value == '\f' )
-        return "'\\f'";
-    if ( value == '\n' )
-        return "'\\n'";
-    if ( value == '\t' )
-        return "'\\t'";
-    if ( '\0' <= value && value < ' ' )
-        return toString( static_cast<unsigned int>( value ) );
-    char chstr[] = "' '";
-    chstr[1] = value;
-    return chstr;
-}
-
-std::string toString( signed char value ) {
-    return toString( static_cast<char>( value ) );
-}
-
-std::string toString( unsigned char value ) {
-    return toString( static_cast<char>( value ) );
-}
-
-#ifdef CATCH_CONFIG_CPP11_LONG_LONG
-std::string toString( long long value ) {
-    std::ostringstream oss;
-    oss << value;
-    if( value > Detail::hexThreshold )
-        oss << " (0x" << std::hex << value << ')';
-    return oss.str();
-}
-std::string toString( unsigned long long value ) {
-    std::ostringstream oss;
-    oss << value;
-    if( value > Detail::hexThreshold )
-        oss << " (0x" << std::hex << value << ')';
-    return oss.str();
-}
-#endif
-
-#ifdef CATCH_CONFIG_CPP11_NULLPTR
-std::string toString( std::nullptr_t ) {
-    return "nullptr";
-}
-#endif
-
-#ifdef __OBJC__
-    std::string toString( NSString const * const& nsstring ) {
-        if( !nsstring )
-            return "nil";
-        return "@" + toString([nsstring UTF8String]);
-    }
-    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) {
-        if( !nsstring )
-            return "nil";
-        return "@" + toString([nsstring UTF8String]);
-    }
-    std::string toString( NSObject* const& nsObject ) {
-        return toString( [nsObject description] );
-    }
-#endif
-
-} // end namespace Catch
-
-// #included from: catch_result_builder.hpp
-#define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED
-
-namespace Catch {
-
-    std::string capturedExpressionWithSecondArgument( std::string const& capturedExpression, std::string const& secondArg ) {
-        return secondArg.empty() || secondArg == "\"\""
-            ? capturedExpression
-            : capturedExpression + ", " + secondArg;
-    }
-    ResultBuilder::ResultBuilder(   char const* macroName,
-                                    SourceLineInfo const& lineInfo,
-                                    char const* capturedExpression,
-                                    ResultDisposition::Flags resultDisposition,
-                                    char const* secondArg )
-    :   m_assertionInfo( macroName, lineInfo, capturedExpressionWithSecondArgument( capturedExpression, secondArg ), resultDisposition ),
-        m_shouldDebugBreak( false ),
-        m_shouldThrow( false )
-    {}
-
-    ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) {
-        m_data.resultType = result;
-        return *this;
-    }
-    ResultBuilder& ResultBuilder::setResultType( bool result ) {
-        m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed;
-        return *this;
-    }
-
-    void ResultBuilder::endExpression( DecomposedExpression const& expr ) {
-        AssertionResult result = build( expr );
-        handleResult( result );
-    }
-
-    void ResultBuilder::useActiveException( ResultDisposition::Flags resultDisposition ) {
-        m_assertionInfo.resultDisposition = resultDisposition;
-        m_stream.oss << Catch::translateActiveException();
-        captureResult( ResultWas::ThrewException );
-    }
-
-    void ResultBuilder::captureResult( ResultWas::OfType resultType ) {
-        setResultType( resultType );
-        captureExpression();
-    }
-
-    void ResultBuilder::captureExpectedException( std::string const& expectedMessage ) {
-        if( expectedMessage.empty() )
-            captureExpectedException( Matchers::Impl::Generic::AllOf<std::string>() );
-        else
-            captureExpectedException( Matchers::Equals( expectedMessage ) );
-    }
-
-    void ResultBuilder::captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher ) {
-
-        assert( !isFalseTest( m_assertionInfo.resultDisposition ) );
-        AssertionResultData data = m_data;
-        data.resultType = ResultWas::Ok;
-        data.reconstructedExpression = m_assertionInfo.capturedExpression;
-
-        std::string actualMessage = Catch::translateActiveException();
-        if( !matcher.match( actualMessage ) ) {
-            data.resultType = ResultWas::ExpressionFailed;
-            data.reconstructedExpression = actualMessage;
-        }
-        AssertionResult result( m_assertionInfo, data );
-        handleResult( result );
-    }
-
-    void ResultBuilder::captureExpression() {
-        AssertionResult result = build();
-        handleResult( result );
-    }
-
-    void ResultBuilder::handleResult( AssertionResult const& result )
-    {
-        getResultCapture().assertionEnded( result );
-
-        if( !result.isOk() ) {
-            if( getCurrentContext().getConfig()->shouldDebugBreak() )
-                m_shouldDebugBreak = true;
-            if( getCurrentContext().getRunner()->aborting() || (m_assertionInfo.resultDisposition & ResultDisposition::Normal) )
-                m_shouldThrow = true;
-        }
-    }
-
-    void ResultBuilder::react() {
-        if( m_shouldThrow )
-            throw Catch::TestFailureException();
-    }
-
-    bool ResultBuilder::shouldDebugBreak() const { return m_shouldDebugBreak; }
-    bool ResultBuilder::allowThrows() const { return getCurrentContext().getConfig()->allowThrows(); }
-
-    AssertionResult ResultBuilder::build() const
-    {
-        return build( *this );
-    }
-
-    // CAVEAT: The returned AssertionResult stores a pointer to the argument expr,
-    //         a temporary DecomposedExpression, which in turn holds references to
-    //         operands, possibly temporary as well.
-    //         It should immediately be passed to handleResult; if the expression
-    //         needs to be reported, its string expansion must be composed before
-    //         the temporaries are destroyed.
-    AssertionResult ResultBuilder::build( DecomposedExpression const& expr ) const
-    {
-        assert( m_data.resultType != ResultWas::Unknown );
-        AssertionResultData data = m_data;
-
-        // Flip bool results if FalseTest flag is set
-        if( isFalseTest( m_assertionInfo.resultDisposition ) ) {
-            data.negate( expr.isBinaryExpression() );
-        }
-
-        data.message = m_stream.oss.str();
-        data.decomposedExpression = &expr; // for lazy reconstruction
-        return AssertionResult( m_assertionInfo, data );
-    }
-
-    void ResultBuilder::reconstructExpression( std::string& dest ) const {
-        dest = m_assertionInfo.capturedExpression;
-    }
-
-} // end namespace Catch
-
-// #included from: catch_tag_alias_registry.hpp
-#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED
-
-// #included from: catch_tag_alias_registry.h
-#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED
-
-#include <map>
-
-namespace Catch {
-
-    class TagAliasRegistry : public ITagAliasRegistry {
-    public:
-        virtual ~TagAliasRegistry();
-        virtual Option<TagAlias> find( std::string const& alias ) const;
-        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const;
-        void add( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
-        static TagAliasRegistry& get();
-
-    private:
-        std::map<std::string, TagAlias> m_registry;
-    };
-
-} // end namespace Catch
-
-#include <map>
-#include <iostream>
-
-namespace Catch {
-
-    TagAliasRegistry::~TagAliasRegistry() {}
-
-    Option<TagAlias> TagAliasRegistry::find( std::string const& alias ) const {
-        std::map<std::string, TagAlias>::const_iterator it = m_registry.find( alias );
-        if( it != m_registry.end() )
-            return it->second;
-        else
-            return Option<TagAlias>();
-    }
-
-    std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const {
-        std::string expandedTestSpec = unexpandedTestSpec;
-        for( std::map<std::string, TagAlias>::const_iterator it = m_registry.begin(), itEnd = m_registry.end();
-                it != itEnd;
-                ++it ) {
-            std::size_t pos = expandedTestSpec.find( it->first );
-            if( pos != std::string::npos ) {
-                expandedTestSpec =  expandedTestSpec.substr( 0, pos ) +
-                                    it->second.tag +
-                                    expandedTestSpec.substr( pos + it->first.size() );
-            }
-        }
-        return expandedTestSpec;
-    }
-
-    void TagAliasRegistry::add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
-
-        if( !startsWith( alias, "[@" ) || !endsWith( alias, ']' ) ) {
-            std::ostringstream oss;
-            oss << "error: tag alias, \"" << alias << "\" is not of the form [@alias name].\n" << lineInfo;
-            throw std::domain_error( oss.str().c_str() );
-        }
-        if( !m_registry.insert( std::make_pair( alias, TagAlias( tag, lineInfo ) ) ).second ) {
-            std::ostringstream oss;
-            oss << "error: tag alias, \"" << alias << "\" already registered.\n"
-                << "\tFirst seen at " << find(alias)->lineInfo << '\n'
-                << "\tRedefined at " << lineInfo;
-            throw std::domain_error( oss.str().c_str() );
-        }
-    }
-
-    TagAliasRegistry& TagAliasRegistry::get() {
-        static TagAliasRegistry instance;
-        return instance;
-
-    }
-
-    ITagAliasRegistry::~ITagAliasRegistry() {}
-    ITagAliasRegistry const& ITagAliasRegistry::get() { return TagAliasRegistry::get(); }
-
-    RegistrarForTagAliases::RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
-        try {
-            TagAliasRegistry::get().add( alias, tag, lineInfo );
-        }
-        catch( std::exception& ex ) {
-            Colour colourGuard( Colour::Red );
-            Catch::cerr() << ex.what() << std::endl;
-            exit(1);
-        }
-    }
-
-} // end namespace Catch
-
-// #included from: ../reporters/catch_reporter_multi.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED
-
-namespace Catch {
-
-class MultipleReporters : public SharedImpl<IStreamingReporter> {
-    typedef std::vector<Ptr<IStreamingReporter> > Reporters;
-    Reporters m_reporters;
-
-public:
-    void add( Ptr<IStreamingReporter> const& reporter ) {
-        m_reporters.push_back( reporter );
-    }
-
-public: // IStreamingReporter
-
-    virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
-        return m_reporters[0]->getPreferences();
-    }
-
-    virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->noMatchingTestCases( spec );
-    }
-
-    virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testRunStarting( testRunInfo );
-    }
-
-    virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testGroupStarting( groupInfo );
-    }
-
-    virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testCaseStarting( testInfo );
-    }
-
-    virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->sectionStarting( sectionInfo );
-    }
-
-    virtual void assertionStarting( AssertionInfo const& assertionInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->assertionStarting( assertionInfo );
-    }
-
-    // The return value indicates if the messages buffer should be cleared:
-    virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
-        bool clearBuffer = false;
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            clearBuffer |= (*it)->assertionEnded( assertionStats );
-        return clearBuffer;
-    }
-
-    virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->sectionEnded( sectionStats );
-    }
-
-    virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testCaseEnded( testCaseStats );
-    }
-
-    virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testGroupEnded( testGroupStats );
-    }
-
-    virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->testRunEnded( testRunStats );
-    }
-
-    virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
-        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
-                it != itEnd;
-                ++it )
-            (*it)->skipTest( testInfo );
-    }
-
-    virtual MultipleReporters* tryAsMulti() CATCH_OVERRIDE {
-        return this;
-    }
-
-};
-
-Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter ) {
-    Ptr<IStreamingReporter> resultingReporter;
-
-    if( existingReporter ) {
-        MultipleReporters* multi = existingReporter->tryAsMulti();
-        if( !multi ) {
-            multi = new MultipleReporters;
-            resultingReporter = Ptr<IStreamingReporter>( multi );
-            if( existingReporter )
-                multi->add( existingReporter );
-        }
-        else
-            resultingReporter = existingReporter;
-        multi->add( additionalReporter );
-    }
-    else
-        resultingReporter = additionalReporter;
-
-    return resultingReporter;
-}
-
-} // end namespace Catch
-
-// #included from: ../reporters/catch_reporter_xml.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED
-
-// #included from: catch_reporter_bases.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED
-
-#include <cstring>
-
-namespace Catch {
-
-    struct StreamingReporterBase : SharedImpl<IStreamingReporter> {
-
-        StreamingReporterBase( ReporterConfig const& _config )
-        :   m_config( _config.fullConfig() ),
-            stream( _config.stream() )
-        {
-            m_reporterPrefs.shouldRedirectStdOut = false;
-        }
-
-        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
-            return m_reporterPrefs;
-        }
-
-        virtual ~StreamingReporterBase() CATCH_OVERRIDE;
-
-        virtual void noMatchingTestCases( std::string const& ) CATCH_OVERRIDE {}
-
-        virtual void testRunStarting( TestRunInfo const& _testRunInfo ) CATCH_OVERRIDE {
-            currentTestRunInfo = _testRunInfo;
-        }
-        virtual void testGroupStarting( GroupInfo const& _groupInfo ) CATCH_OVERRIDE {
-            currentGroupInfo = _groupInfo;
-        }
-
-        virtual void testCaseStarting( TestCaseInfo const& _testInfo ) CATCH_OVERRIDE {
-            currentTestCaseInfo = _testInfo;
-        }
-        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
-            m_sectionStack.push_back( _sectionInfo );
-        }
-
-        virtual void sectionEnded( SectionStats const& /* _sectionStats */ ) CATCH_OVERRIDE {
-            m_sectionStack.pop_back();
-        }
-        virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats */ ) CATCH_OVERRIDE {
-            currentTestCaseInfo.reset();
-        }
-        virtual void testGroupEnded( TestGroupStats const& /* _testGroupStats */ ) CATCH_OVERRIDE {
-            currentGroupInfo.reset();
-        }
-        virtual void testRunEnded( TestRunStats const& /* _testRunStats */ ) CATCH_OVERRIDE {
-            currentTestCaseInfo.reset();
-            currentGroupInfo.reset();
-            currentTestRunInfo.reset();
-        }
-
-        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {
-            // Don't do anything with this by default.
-            // It can optionally be overridden in the derived class.
-        }
-
-        Ptr<IConfig const> m_config;
-        std::ostream& stream;
-
-        LazyStat<TestRunInfo> currentTestRunInfo;
-        LazyStat<GroupInfo> currentGroupInfo;
-        LazyStat<TestCaseInfo> currentTestCaseInfo;
-
-        std::vector<SectionInfo> m_sectionStack;
-        ReporterPreferences m_reporterPrefs;
-    };
-
-    struct CumulativeReporterBase : SharedImpl<IStreamingReporter> {
-        template<typename T, typename ChildNodeT>
-        struct Node : SharedImpl<> {
-            explicit Node( T const& _value ) : value( _value ) {}
-            virtual ~Node() {}
-
-            typedef std::vector<Ptr<ChildNodeT> > ChildNodes;
-            T value;
-            ChildNodes children;
-        };
-        struct SectionNode : SharedImpl<> {
-            explicit SectionNode( SectionStats const& _stats ) : stats( _stats ) {}
-            virtual ~SectionNode();
-
-            bool operator == ( SectionNode const& other ) const {
-                return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo;
-            }
-            bool operator == ( Ptr<SectionNode> const& other ) const {
-                return operator==( *other );
-            }
-
-            SectionStats stats;
-            typedef std::vector<Ptr<SectionNode> > ChildSections;
-            typedef std::vector<AssertionStats> Assertions;
-            ChildSections childSections;
-            Assertions assertions;
-            std::string stdOut;
-            std::string stdErr;
-        };
-
-        struct BySectionInfo {
-            BySectionInfo( SectionInfo const& other ) : m_other( other ) {}
-            BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {}
-            bool operator() ( Ptr<SectionNode> const& node ) const {
-                return node->stats.sectionInfo.lineInfo == m_other.lineInfo;
-            }
-        private:
-            void operator=( BySectionInfo const& );
-            SectionInfo const& m_other;
-        };
-
-        typedef Node<TestCaseStats, SectionNode> TestCaseNode;
-        typedef Node<TestGroupStats, TestCaseNode> TestGroupNode;
-        typedef Node<TestRunStats, TestGroupNode> TestRunNode;
-
-        CumulativeReporterBase( ReporterConfig const& _config )
-        :   m_config( _config.fullConfig() ),
-            stream( _config.stream() )
-        {
-            m_reporterPrefs.shouldRedirectStdOut = false;
-        }
-        ~CumulativeReporterBase();
-
-        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
-            return m_reporterPrefs;
-        }
-
-        virtual void testRunStarting( TestRunInfo const& ) CATCH_OVERRIDE {}
-        virtual void testGroupStarting( GroupInfo const& ) CATCH_OVERRIDE {}
-
-        virtual void testCaseStarting( TestCaseInfo const& ) CATCH_OVERRIDE {}
-
-        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
-            SectionStats incompleteStats( sectionInfo, Counts(), 0, false );
-            Ptr<SectionNode> node;
-            if( m_sectionStack.empty() ) {
-                if( !m_rootSection )
-                    m_rootSection = new SectionNode( incompleteStats );
-                node = m_rootSection;
-            }
-            else {
-                SectionNode& parentNode = *m_sectionStack.back();
-                SectionNode::ChildSections::const_iterator it =
-                    std::find_if(   parentNode.childSections.begin(),
-                                    parentNode.childSections.end(),
-                                    BySectionInfo( sectionInfo ) );
-                if( it == parentNode.childSections.end() ) {
-                    node = new SectionNode( incompleteStats );
-                    parentNode.childSections.push_back( node );
-                }
-                else
-                    node = *it;
-            }
-            m_sectionStack.push_back( node );
-            m_deepestSection = node;
-        }
-
-        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
-
-        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
-            assert( !m_sectionStack.empty() );
-            SectionNode& sectionNode = *m_sectionStack.back();
-            sectionNode.assertions.push_back( assertionStats );
-            // AssertionResult holds a pointer to a temporary DecomposedExpression,
-            // which getExpandedExpression() calls to build the expression string.
-            // Our section stack copy of the assertionResult will likely outlive the
-            // temporary, so it must be expanded or discarded now to avoid calling
-            // a destroyed object later.
-            prepareExpandedExpression( sectionNode.assertions.back().assertionResult );
-            return true;
-        }
-        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
-            assert( !m_sectionStack.empty() );
-            SectionNode& node = *m_sectionStack.back();
-            node.stats = sectionStats;
-            m_sectionStack.pop_back();
-        }
-        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
-            Ptr<TestCaseNode> node = new TestCaseNode( testCaseStats );
-            assert( m_sectionStack.size() == 0 );
-            node->children.push_back( m_rootSection );
-            m_testCases.push_back( node );
-            m_rootSection.reset();
-
-            assert( m_deepestSection );
-            m_deepestSection->stdOut = testCaseStats.stdOut;
-            m_deepestSection->stdErr = testCaseStats.stdErr;
-        }
-        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
-            Ptr<TestGroupNode> node = new TestGroupNode( testGroupStats );
-            node->children.swap( m_testCases );
-            m_testGroups.push_back( node );
-        }
-        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
-            Ptr<TestRunNode> node = new TestRunNode( testRunStats );
-            node->children.swap( m_testGroups );
-            m_testRuns.push_back( node );
-            testRunEndedCumulative();
-        }
-        virtual void testRunEndedCumulative() = 0;
-
-        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {}
-
-        virtual void prepareExpandedExpression( AssertionResult& result ) const {
-            if( result.isOk() )
-                result.discardDecomposedExpression();
-            else
-                result.expandDecomposedExpression();
-        }
-
-        Ptr<IConfig const> m_config;
-        std::ostream& stream;
-        std::vector<AssertionStats> m_assertions;
-        std::vector<std::vector<Ptr<SectionNode> > > m_sections;
-        std::vector<Ptr<TestCaseNode> > m_testCases;
-        std::vector<Ptr<TestGroupNode> > m_testGroups;
-
-        std::vector<Ptr<TestRunNode> > m_testRuns;
-
-        Ptr<SectionNode> m_rootSection;
-        Ptr<SectionNode> m_deepestSection;
-        std::vector<Ptr<SectionNode> > m_sectionStack;
-        ReporterPreferences m_reporterPrefs;
-
-    };
-
-    template<char C>
-    char const* getLineOfChars() {
-        static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0};
-        if( !*line ) {
-            memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 );
-            line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0;
-        }
-        return line;
-    }
-
-    struct TestEventListenerBase : StreamingReporterBase {
-        TestEventListenerBase( ReporterConfig const& _config )
-        :   StreamingReporterBase( _config )
-        {}
-
-        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
-        virtual bool assertionEnded( AssertionStats const& ) CATCH_OVERRIDE {
-            return false;
-        }
-    };
-
-} // end namespace Catch
-
-// #included from: ../internal/catch_reporter_registrars.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
-
-namespace Catch {
-
-    template<typename T>
-    class LegacyReporterRegistrar {
-
-        class ReporterFactory : public IReporterFactory {
-            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
-                return new LegacyReporterAdapter( new T( config ) );
-            }
-
-            virtual std::string getDescription() const {
-                return T::getDescription();
-            }
-        };
-
-    public:
-
-        LegacyReporterRegistrar( std::string const& name ) {
-            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
-        }
-    };
-
-    template<typename T>
-    class ReporterRegistrar {
-
-        class ReporterFactory : public SharedImpl<IReporterFactory> {
-
-            // *** Please Note ***:
-            // - If you end up here looking at a compiler error because it's trying to register
-            // your custom reporter class be aware that the native reporter interface has changed
-            // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via
-            // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter.
-            // However please consider updating to the new interface as the old one is now
-            // deprecated and will probably be removed quite soon!
-            // Please contact me via github if you have any questions at all about this.
-            // In fact, ideally, please contact me anyway to let me know you've hit this - as I have
-            // no idea who is actually using custom reporters at all (possibly no-one!).
-            // The new interface is designed to minimise exposure to interface changes in the future.
-            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
-                return new T( config );
-            }
-
-            virtual std::string getDescription() const {
-                return T::getDescription();
-            }
-        };
-
-    public:
-
-        ReporterRegistrar( std::string const& name ) {
-            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
-        }
-    };
-
-    template<typename T>
-    class ListenerRegistrar {
-
-        class ListenerFactory : public SharedImpl<IReporterFactory> {
-
-            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
-                return new T( config );
-            }
-            virtual std::string getDescription() const {
-                return std::string();
-            }
-        };
-
-    public:
-
-        ListenerRegistrar() {
-            getMutableRegistryHub().registerListener( new ListenerFactory() );
-        }
-    };
-}
-
-#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \
-    namespace{ Catch::LegacyReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
-
-#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \
-    namespace{ Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
-
-#define INTERNAL_CATCH_REGISTER_LISTENER( listenerType ) \
-    namespace{ Catch::ListenerRegistrar<listenerType> catch_internal_RegistrarFor##listenerType; }
-
-// #included from: ../internal/catch_xmlwriter.hpp
-#define TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED
-
-#include <sstream>
-#include <string>
-#include <vector>
-#include <iomanip>
-
-namespace Catch {
-
-    class XmlEncode {
-    public:
-        enum ForWhat { ForTextNodes, ForAttributes };
-
-        XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes )
-        :   m_str( str ),
-            m_forWhat( forWhat )
-        {}
-
-        void encodeTo( std::ostream& os ) const {
-
-            // Apostrophe escaping not necessary if we always use " to write attributes
-            // (see: http://www.w3.org/TR/xml/#syntax)
-
-            for( std::size_t i = 0; i < m_str.size(); ++ i ) {
-                char c = m_str[i];
-                switch( c ) {
-                    case '<':   os << "&lt;"; break;
-                    case '&':   os << "&amp;"; break;
-
-                    case '>':
-                        // See: http://www.w3.org/TR/xml/#syntax
-                        if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' )
-                            os << "&gt;";
-                        else
-                            os << c;
-                        break;
-
-                    case '\"':
-                        if( m_forWhat == ForAttributes )
-                            os << "&quot;";
-                        else
-                            os << c;
-                        break;
-
-                    default:
-                        // Escape control chars - based on contribution by @espenalb in PR #465 and
-                        // by @mrpi PR #588
-                        if ( ( c >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' )
-                            os << "&#x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2) << static_cast<int>( c ) << ';';
-                        else
-                            os << c;
-                }
-            }
-        }
-
-        friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) {
-            xmlEncode.encodeTo( os );
-            return os;
-        }
-
-    private:
-        std::string m_str;
-        ForWhat m_forWhat;
-    };
-
-    class XmlWriter {
-    public:
-
-        class ScopedElement {
-        public:
-            ScopedElement( XmlWriter* writer )
-            :   m_writer( writer )
-            {}
-
-            ScopedElement( ScopedElement const& other )
-            :   m_writer( other.m_writer ){
-                other.m_writer = CATCH_NULL;
-            }
-
-            ~ScopedElement() {
-                if( m_writer )
-                    m_writer->endElement();
-            }
-
-            ScopedElement& writeText( std::string const& text, bool indent = true ) {
-                m_writer->writeText( text, indent );
-                return *this;
-            }
-
-            template<typename T>
-            ScopedElement& writeAttribute( std::string const& name, T const& attribute ) {
-                m_writer->writeAttribute( name, attribute );
-                return *this;
-            }
-
-        private:
-            mutable XmlWriter* m_writer;
-        };
-
-        XmlWriter()
-        :   m_tagIsOpen( false ),
-            m_needsNewline( false ),
-            m_os( &Catch::cout() )
-        {
-            // We encode control characters, which requires
-            // XML 1.1
-            // see http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0
-            *m_os << "<?xml version=\"1.1\" encoding=\"UTF-8\"?>\n";
-        }
-
-        XmlWriter( std::ostream& os )
-        :   m_tagIsOpen( false ),
-            m_needsNewline( false ),
-            m_os( &os )
-        {
-            *m_os << "<?xml version=\"1.1\" encoding=\"UTF-8\"?>\n";
-        }
-
-        ~XmlWriter() {
-            while( !m_tags.empty() )
-                endElement();
-        }
-
-        XmlWriter& startElement( std::string const& name ) {
-            ensureTagClosed();
-            newlineIfNecessary();
-            stream() << m_indent << '<' << name;
-            m_tags.push_back( name );
-            m_indent += "  ";
-            m_tagIsOpen = true;
-            return *this;
-        }
-
-        ScopedElement scopedElement( std::string const& name ) {
-            ScopedElement scoped( this );
-            startElement( name );
-            return scoped;
-        }
-
-        XmlWriter& endElement() {
-            newlineIfNecessary();
-            m_indent = m_indent.substr( 0, m_indent.size()-2 );
-            if( m_tagIsOpen ) {
-                stream() << "/>\n";
-                m_tagIsOpen = false;
-            }
-            else {
-                stream() << m_indent << "</" << m_tags.back() << ">\n";
-            }
-            m_tags.pop_back();
-            return *this;
-        }
-
-        XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) {
-            if( !name.empty() && !attribute.empty() )
-                stream() << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"';
-            return *this;
-        }
-
-        XmlWriter& writeAttribute( std::string const& name, bool attribute ) {
-            stream() << ' ' << name << "=\"" << ( attribute ? "true" : "false" ) << '"';
-            return *this;
-        }
-
-        template<typename T>
-        XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
-            std::ostringstream oss;
-            oss << attribute;
-            return writeAttribute( name, oss.str() );
-        }
-
-        XmlWriter& writeText( std::string const& text, bool indent = true ) {
-            if( !text.empty() ){
-                bool tagWasOpen = m_tagIsOpen;
-                ensureTagClosed();
-                if( tagWasOpen && indent )
-                    stream() << m_indent;
-                stream() << XmlEncode( text );
-                m_needsNewline = true;
-            }
-            return *this;
-        }
-
-        XmlWriter& writeComment( std::string const& text ) {
-            ensureTagClosed();
-            stream() << m_indent << "<!--" << text << "-->";
-            m_needsNewline = true;
-            return *this;
-        }
-
-        XmlWriter& writeBlankLine() {
-            ensureTagClosed();
-            stream() << '\n';
-            return *this;
-        }
-
-        void setStream( std::ostream& os ) {
-            m_os = &os;
-        }
-
-    private:
-        XmlWriter( XmlWriter const& );
-        void operator=( XmlWriter const& );
-
-        std::ostream& stream() {
-            return *m_os;
-        }
-
-        void ensureTagClosed() {
-            if( m_tagIsOpen ) {
-                stream() << ">\n";
-                m_tagIsOpen = false;
-            }
-        }
-
-        void newlineIfNecessary() {
-            if( m_needsNewline ) {
-                stream() << '\n';
-                m_needsNewline = false;
-            }
-        }
-
-        bool m_tagIsOpen;
-        bool m_needsNewline;
-        std::vector<std::string> m_tags;
-        std::string m_indent;
-        std::ostream* m_os;
-    };
-
-}
-// #included from: catch_reenable_warnings.h
-
-#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED
-
-#ifdef __clang__
-#    ifdef __ICC // icpc defines the __clang__ macro
-#        pragma warning(pop)
-#    else
-#        pragma clang diagnostic pop
-#    endif
-#elif defined __GNUC__
-#    pragma GCC diagnostic pop
-#endif
-
-
-namespace Catch {
-    class XmlReporter : public StreamingReporterBase {
-    public:
-        XmlReporter( ReporterConfig const& _config )
-        :   StreamingReporterBase( _config ),
-            m_xml(_config.stream()),
-            m_sectionDepth( 0 )
-        {
-            m_reporterPrefs.shouldRedirectStdOut = true;
-        }
-
-        virtual ~XmlReporter() CATCH_OVERRIDE;
-
-        static std::string getDescription() {
-            return "Reports test results as an XML document";
-        }
-
-    public: // StreamingReporterBase
-
-        virtual void noMatchingTestCases( std::string const& s ) CATCH_OVERRIDE {
-            StreamingReporterBase::noMatchingTestCases( s );
-        }
-
-        virtual void testRunStarting( TestRunInfo const& testInfo ) CATCH_OVERRIDE {
-            StreamingReporterBase::testRunStarting( testInfo );
-            m_xml.startElement( "Catch" );
-            if( !m_config->name().empty() )
-                m_xml.writeAttribute( "name", m_config->name() );
-        }
-
-        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
-            StreamingReporterBase::testGroupStarting( groupInfo );
-            m_xml.startElement( "Group" )
-                .writeAttribute( "name", groupInfo.name );
-        }
-
-        virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
-            StreamingReporterBase::testCaseStarting(testInfo);
-            m_xml.startElement( "TestCase" ).writeAttribute( "name", testInfo.name );
-
-            if ( m_config->showDurations() == ShowDurations::Always )
-                m_testCaseTimer.start();
-        }
-
-        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
-            StreamingReporterBase::sectionStarting( sectionInfo );
-            if( m_sectionDepth++ > 0 ) {
-                m_xml.startElement( "Section" )
-                    .writeAttribute( "name", trim( sectionInfo.name ) )
-                    .writeAttribute( "description", sectionInfo.description );
-            }
-        }
-
-        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { }
-
-        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
-            const AssertionResult& assertionResult = assertionStats.assertionResult;
-
-            // Print any info messages in <Info> tags.
-            if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
-                for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
-                        it != itEnd;
-                        ++it ) {
-                    if( it->type == ResultWas::Info ) {
-                        m_xml.scopedElement( "Info" )
-                            .writeText( it->message );
-                    } else if ( it->type == ResultWas::Warning ) {
-                        m_xml.scopedElement( "Warning" )
-                            .writeText( it->message );
-                    }
-                }
-            }
-
-            // Drop out if result was successful but we're not printing them.
-            if( !m_config->includeSuccessfulResults() && isOk(assertionResult.getResultType()) )
-                return true;
-
-            // Print the expression if there is one.
-            if( assertionResult.hasExpression() ) {
-                m_xml.startElement( "Expression" )
-                    .writeAttribute( "success", assertionResult.succeeded() )
-                    .writeAttribute( "type", assertionResult.getTestMacroName() )
-                    .writeAttribute( "filename", assertionResult.getSourceInfo().file )
-                    .writeAttribute( "line", assertionResult.getSourceInfo().line );
-
-                m_xml.scopedElement( "Original" )
-                    .writeText( assertionResult.getExpression() );
-                m_xml.scopedElement( "Expanded" )
-                    .writeText( assertionResult.getExpandedExpression() );
-            }
-
-            // And... Print a result applicable to each result type.
-            switch( assertionResult.getResultType() ) {
-                case ResultWas::ThrewException:
-                    m_xml.scopedElement( "Exception" )
-                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
-                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
-                        .writeText( assertionResult.getMessage() );
-                    break;
-                case ResultWas::FatalErrorCondition:
-                    m_xml.scopedElement( "FatalErrorCondition" )
-                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
-                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
-                        .writeText( assertionResult.getMessage() );
-                    break;
-                case ResultWas::Info:
-                    m_xml.scopedElement( "Info" )
-                        .writeText( assertionResult.getMessage() );
-                    break;
-                case ResultWas::Warning:
-                    // Warning will already have been written
-                    break;
-                case ResultWas::ExplicitFailure:
-                    m_xml.scopedElement( "Failure" )
-                        .writeText( assertionResult.getMessage() );
-                    break;
-                default:
-                    break;
-            }
-
-            if( assertionResult.hasExpression() )
-                m_xml.endElement();
-
-            return true;
-        }
-
-        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
-            StreamingReporterBase::sectionEnded( sectionStats );
-            if( --m_sectionDepth > 0 ) {
-                XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" );
-                e.writeAttribute( "successes", sectionStats.assertions.passed );
-                e.writeAttribute( "failures", sectionStats.assertions.failed );
-                e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk );
-
-                if ( m_config->showDurations() == ShowDurations::Always )
-                    e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds );
-
-                m_xml.endElement();
-            }
-        }
-
-        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
-            StreamingReporterBase::testCaseEnded( testCaseStats );
-            XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" );
-            e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() );
-
-            if ( m_config->showDurations() == ShowDurations::Always )
-                e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() );
-
-            m_xml.endElement();
-        }
-
-        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
-            StreamingReporterBase::testGroupEnded( testGroupStats );
-            // TODO: Check testGroupStats.aborting and act accordingly.
-            m_xml.scopedElement( "OverallResults" )
-                .writeAttribute( "successes", testGroupStats.totals.assertions.passed )
-                .writeAttribute( "failures", testGroupStats.totals.assertions.failed )
-                .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk );
-            m_xml.endElement();
-        }
-
-        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
-            StreamingReporterBase::testRunEnded( testRunStats );
-            m_xml.scopedElement( "OverallResults" )
-                .writeAttribute( "successes", testRunStats.totals.assertions.passed )
-                .writeAttribute( "failures", testRunStats.totals.assertions.failed )
-                .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk );
-            m_xml.endElement();
-        }
-
-    private:
-        Timer m_testCaseTimer;
-        XmlWriter m_xml;
-        int m_sectionDepth;
-    };
-
-     INTERNAL_CATCH_REGISTER_REPORTER( "xml", XmlReporter )
-
-} // end namespace Catch
-
-// #included from: ../reporters/catch_reporter_junit.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED
-
-#include <assert.h>
-
-namespace Catch {
-
-    namespace {
-        std::string getCurrentTimestamp() {
-            // Beware, this is not reentrant because of backward compatibility issues
-            // Also, UTC only, again because of backward compatibility (%z is C++11)
-            time_t rawtime;
-            std::time(&rawtime);
-            const size_t timeStampSize = sizeof("2017-01-16T17:06:45Z");
-
-#ifdef CATCH_PLATFORM_WINDOWS
-            std::tm timeInfo = {};
-            gmtime_s(&timeInfo, &rawtime);
-#else
-            std::tm* timeInfo;
-            timeInfo = std::gmtime(&rawtime);
-#endif
-
-            char timeStamp[timeStampSize];
-            const char * const fmt = "%Y-%m-%dT%H:%M:%SZ";
-
-#ifdef CATCH_PLATFORM_WINDOWS
-            std::strftime(timeStamp, timeStampSize, fmt, &timeInfo);
-#else
-            std::strftime(timeStamp, timeStampSize, fmt, timeInfo);
-#endif
-            return std::string(timeStamp);
-        }
-
-    }
-
-    class JunitReporter : public CumulativeReporterBase {
-    public:
-        JunitReporter( ReporterConfig const& _config )
-        :   CumulativeReporterBase( _config ),
-            xml( _config.stream() )
-        {
-            m_reporterPrefs.shouldRedirectStdOut = true;
-        }
-
-        virtual ~JunitReporter() CATCH_OVERRIDE;
-
-        static std::string getDescription() {
-            return "Reports test results in an XML format that looks like Ant's junitreport target";
-        }
-
-        virtual void noMatchingTestCases( std::string const& /*spec*/ ) CATCH_OVERRIDE {}
-
-        virtual void testRunStarting( TestRunInfo const& runInfo ) CATCH_OVERRIDE {
-            CumulativeReporterBase::testRunStarting( runInfo );
-            xml.startElement( "testsuites" );
-        }
-
-        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
-            suiteTimer.start();
-            stdOutForSuite.str("");
-            stdErrForSuite.str("");
-            unexpectedExceptions = 0;
-            CumulativeReporterBase::testGroupStarting( groupInfo );
-        }
-
-        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
-            if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException )
-                unexpectedExceptions++;
-            return CumulativeReporterBase::assertionEnded( assertionStats );
-        }
-
-        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
-            stdOutForSuite << testCaseStats.stdOut;
-            stdErrForSuite << testCaseStats.stdErr;
-            CumulativeReporterBase::testCaseEnded( testCaseStats );
-        }
-
-        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
-            double suiteTime = suiteTimer.getElapsedSeconds();
-            CumulativeReporterBase::testGroupEnded( testGroupStats );
-            writeGroup( *m_testGroups.back(), suiteTime );
-        }
-
-        virtual void testRunEndedCumulative() CATCH_OVERRIDE {
-            xml.endElement();
-        }
-
-        void writeGroup( TestGroupNode const& groupNode, double suiteTime ) {
-            XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" );
-            TestGroupStats const& stats = groupNode.value;
-            xml.writeAttribute( "name", stats.groupInfo.name );
-            xml.writeAttribute( "errors", unexpectedExceptions );
-            xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions );
-            xml.writeAttribute( "tests", stats.totals.assertions.total() );
-            xml.writeAttribute( "hostname", "tbd" ); // !TBD
-            if( m_config->showDurations() == ShowDurations::Never )
-                xml.writeAttribute( "time", "" );
-            else
-                xml.writeAttribute( "time", suiteTime );
-            xml.writeAttribute( "timestamp", getCurrentTimestamp() );
-
-            // Write test cases
-            for( TestGroupNode::ChildNodes::const_iterator
-                    it = groupNode.children.begin(), itEnd = groupNode.children.end();
-                    it != itEnd;
-                    ++it )
-                writeTestCase( **it );
-
-            xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite.str() ), false );
-            xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite.str() ), false );
-        }
-
-        void writeTestCase( TestCaseNode const& testCaseNode ) {
-            TestCaseStats const& stats = testCaseNode.value;
-
-            // All test cases have exactly one section - which represents the
-            // test case itself. That section may have 0-n nested sections
-            assert( testCaseNode.children.size() == 1 );
-            SectionNode const& rootSection = *testCaseNode.children.front();
-
-            std::string className = stats.testInfo.className;
-
-            if( className.empty() ) {
-                if( rootSection.childSections.empty() )
-                    className = "global";
-            }
-            writeSection( className, "", rootSection );
-        }
-
-        void writeSection(  std::string const& className,
-                            std::string const& rootName,
-                            SectionNode const& sectionNode ) {
-            std::string name = trim( sectionNode.stats.sectionInfo.name );
-            if( !rootName.empty() )
-                name = rootName + '/' + name;
-
-            if( !sectionNode.assertions.empty() ||
-                !sectionNode.stdOut.empty() ||
-                !sectionNode.stdErr.empty() ) {
-                XmlWriter::ScopedElement e = xml.scopedElement( "testcase" );
-                if( className.empty() ) {
-                    xml.writeAttribute( "classname", name );
-                    xml.writeAttribute( "name", "root" );
-                }
-                else {
-                    xml.writeAttribute( "classname", className );
-                    xml.writeAttribute( "name", name );
-                }
-                xml.writeAttribute( "time", Catch::toString( sectionNode.stats.durationInSeconds ) );
-
-                writeAssertions( sectionNode );
-
-                if( !sectionNode.stdOut.empty() )
-                    xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), false );
-                if( !sectionNode.stdErr.empty() )
-                    xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), false );
-            }
-            for( SectionNode::ChildSections::const_iterator
-                    it = sectionNode.childSections.begin(),
-                    itEnd = sectionNode.childSections.end();
-                    it != itEnd;
-                    ++it )
-                if( className.empty() )
-                    writeSection( name, "", **it );
-                else
-                    writeSection( className, name, **it );
-        }
-
-        void writeAssertions( SectionNode const& sectionNode ) {
-            for( SectionNode::Assertions::const_iterator
-                    it = sectionNode.assertions.begin(), itEnd = sectionNode.assertions.end();
-                    it != itEnd;
-                    ++it )
-                writeAssertion( *it );
-        }
-        void writeAssertion( AssertionStats const& stats ) {
-            AssertionResult const& result = stats.assertionResult;
-            if( !result.isOk() ) {
-                std::string elementName;
-                switch( result.getResultType() ) {
-                    case ResultWas::ThrewException:
-                    case ResultWas::FatalErrorCondition:
-                        elementName = "error";
-                        break;
-                    case ResultWas::ExplicitFailure:
-                        elementName = "failure";
-                        break;
-                    case ResultWas::ExpressionFailed:
-                        elementName = "failure";
-                        break;
-                    case ResultWas::DidntThrowException:
-                        elementName = "failure";
-                        break;
-
-                    // We should never see these here:
-                    case ResultWas::Info:
-                    case ResultWas::Warning:
-                    case ResultWas::Ok:
-                    case ResultWas::Unknown:
-                    case ResultWas::FailureBit:
-                    case ResultWas::Exception:
-                        elementName = "internalError";
-                        break;
-                }
-
-                XmlWriter::ScopedElement e = xml.scopedElement( elementName );
-
-                xml.writeAttribute( "message", result.getExpandedExpression() );
-                xml.writeAttribute( "type", result.getTestMacroName() );
-
-                std::ostringstream oss;
-                if( !result.getMessage().empty() )
-                    oss << result.getMessage() << '\n';
-                for( std::vector<MessageInfo>::const_iterator
-                        it = stats.infoMessages.begin(),
-                        itEnd = stats.infoMessages.end();
-                            it != itEnd;
-                            ++it )
-                    if( it->type == ResultWas::Info )
-                        oss << it->message << '\n';
-
-                oss << "at " << result.getSourceInfo();
-                xml.writeText( oss.str(), false );
-            }
-        }
-
-        XmlWriter xml;
-        Timer suiteTimer;
-        std::ostringstream stdOutForSuite;
-        std::ostringstream stdErrForSuite;
-        unsigned int unexpectedExceptions;
-    };
-
-    INTERNAL_CATCH_REGISTER_REPORTER( "junit", JunitReporter )
-
-} // end namespace Catch
-
-// #included from: ../reporters/catch_reporter_console.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED
-
-namespace Catch {
-
-    struct ConsoleReporter : StreamingReporterBase {
-        ConsoleReporter( ReporterConfig const& _config )
-        :   StreamingReporterBase( _config ),
-            m_headerPrinted( false )
-        {}
-
-        virtual ~ConsoleReporter() CATCH_OVERRIDE;
-        static std::string getDescription() {
-            return "Reports test results as plain lines of text";
-        }
-
-        virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
-            stream << "No test cases matched '" << spec << '\'' << std::endl;
-        }
-
-        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {
-        }
-
-        virtual bool assertionEnded( AssertionStats const& _assertionStats ) CATCH_OVERRIDE {
-            AssertionResult const& result = _assertionStats.assertionResult;
-
-            bool printInfoMessages = true;
-
-            // Drop out if result was successful and we're not printing those
-            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
-                if( result.getResultType() != ResultWas::Warning )
-                    return false;
-                printInfoMessages = false;
-            }
-
-            lazyPrint();
-
-            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
-            printer.print();
-            stream << std::endl;
-            return true;
-        }
-
-        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
-            m_headerPrinted = false;
-            StreamingReporterBase::sectionStarting( _sectionInfo );
-        }
-        virtual void sectionEnded( SectionStats const& _sectionStats ) CATCH_OVERRIDE {
-            if( _sectionStats.missingAssertions ) {
-                lazyPrint();
-                Colour colour( Colour::ResultError );
-                if( m_sectionStack.size() > 1 )
-                    stream << "\nNo assertions in section";
-                else
-                    stream << "\nNo assertions in test case";
-                stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl;
-            }
-            if( m_headerPrinted ) {
-                if( m_config->showDurations() == ShowDurations::Always )
-                    stream << "Completed in " << _sectionStats.durationInSeconds << 's' << std::endl;
-                m_headerPrinted = false;
-            }
-            else {
-                if( m_config->showDurations() == ShowDurations::Always )
-                    stream << _sectionStats.sectionInfo.name << " completed in " << _sectionStats.durationInSeconds << 's' << std::endl;
-            }
-            StreamingReporterBase::sectionEnded( _sectionStats );
-        }
-
-        virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CATCH_OVERRIDE {
-            StreamingReporterBase::testCaseEnded( _testCaseStats );
-            m_headerPrinted = false;
-        }
-        virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) CATCH_OVERRIDE {
-            if( currentGroupInfo.used ) {
-                printSummaryDivider();
-                stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n";
-                printTotals( _testGroupStats.totals );
-                stream << '\n' << std::endl;
-            }
-            StreamingReporterBase::testGroupEnded( _testGroupStats );
-        }
-        virtual void testRunEnded( TestRunStats const& _testRunStats ) CATCH_OVERRIDE {
-            printTotalsDivider( _testRunStats.totals );
-            printTotals( _testRunStats.totals );
-            stream << std::endl;
-            StreamingReporterBase::testRunEnded( _testRunStats );
-        }
-
-    private:
-
-        class AssertionPrinter {
-            void operator= ( AssertionPrinter const& );
-        public:
-            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
-            :   stream( _stream ),
-                stats( _stats ),
-                result( _stats.assertionResult ),
-                colour( Colour::None ),
-                message( result.getMessage() ),
-                messages( _stats.infoMessages ),
-                printInfoMessages( _printInfoMessages )
-            {
-                switch( result.getResultType() ) {
-                    case ResultWas::Ok:
-                        colour = Colour::Success;
-                        passOrFail = "PASSED";
-                        //if( result.hasMessage() )
-                        if( _stats.infoMessages.size() == 1 )
-                            messageLabel = "with message";
-                        if( _stats.infoMessages.size() > 1 )
-                            messageLabel = "with messages";
-                        break;
-                    case ResultWas::ExpressionFailed:
-                        if( result.isOk() ) {
-                            colour = Colour::Success;
-                            passOrFail = "FAILED - but was ok";
-                        }
-                        else {
-                            colour = Colour::Error;
-                            passOrFail = "FAILED";
-                        }
-                        if( _stats.infoMessages.size() == 1 )
-                            messageLabel = "with message";
-                        if( _stats.infoMessages.size() > 1 )
-                            messageLabel = "with messages";
-                        break;
-                    case ResultWas::ThrewException:
-                        colour = Colour::Error;
-                        passOrFail = "FAILED";
-                        messageLabel = "due to unexpected exception with message";
-                        break;
-                    case ResultWas::FatalErrorCondition:
-                        colour = Colour::Error;
-                        passOrFail = "FAILED";
-                        messageLabel = "due to a fatal error condition";
-                        break;
-                    case ResultWas::DidntThrowException:
-                        colour = Colour::Error;
-                        passOrFail = "FAILED";
-                        messageLabel = "because no exception was thrown where one was expected";
-                        break;
-                    case ResultWas::Info:
-                        messageLabel = "info";
-                        break;
-                    case ResultWas::Warning:
-                        messageLabel = "warning";
-                        break;
-                    case ResultWas::ExplicitFailure:
-                        passOrFail = "FAILED";
-                        colour = Colour::Error;
-                        if( _stats.infoMessages.size() == 1 )
-                            messageLabel = "explicitly with message";
-                        if( _stats.infoMessages.size() > 1 )
-                            messageLabel = "explicitly with messages";
-                        break;
-                    // These cases are here to prevent compiler warnings
-                    case ResultWas::Unknown:
-                    case ResultWas::FailureBit:
-                    case ResultWas::Exception:
-                        passOrFail = "** internal error **";
-                        colour = Colour::Error;
-                        break;
-                }
-            }
-
-            void print() const {
-                printSourceInfo();
-                if( stats.totals.assertions.total() > 0 ) {
-                    if( result.isOk() )
-                        stream << '\n';
-                    printResultType();
-                    printOriginalExpression();
-                    printReconstructedExpression();
-                }
-                else {
-                    stream << '\n';
-                }
-                printMessage();
-            }
-
-        private:
-            void printResultType() const {
-                if( !passOrFail.empty() ) {
-                    Colour colourGuard( colour );
-                    stream << passOrFail << ":\n";
-                }
-            }
-            void printOriginalExpression() const {
-                if( result.hasExpression() ) {
-                    Colour colourGuard( Colour::OriginalExpression );
-                    stream  << "  ";
-                    stream << result.getExpressionInMacro();
-                    stream << '\n';
-                }
-            }
-            void printReconstructedExpression() const {
-                if( result.hasExpandedExpression() ) {
-                    stream << "with expansion:\n";
-                    Colour colourGuard( Colour::ReconstructedExpression );
-                    stream << Text( result.getExpandedExpression(), TextAttributes().setIndent(2) ) << '\n';
-                }
-            }
-            void printMessage() const {
-                if( !messageLabel.empty() )
-                    stream << messageLabel << ':' << '\n';
-                for( std::vector<MessageInfo>::const_iterator it = messages.begin(), itEnd = messages.end();
-                        it != itEnd;
-                        ++it ) {
-                    // If this assertion is a warning ignore any INFO messages
-                    if( printInfoMessages || it->type != ResultWas::Info )
-                        stream << Text( it->message, TextAttributes().setIndent(2) ) << '\n';
-                }
-            }
-            void printSourceInfo() const {
-                Colour colourGuard( Colour::FileName );
-                stream << result.getSourceInfo() << ": ";
-            }
-
-            std::ostream& stream;
-            AssertionStats const& stats;
-            AssertionResult const& result;
-            Colour::Code colour;
-            std::string passOrFail;
-            std::string messageLabel;
-            std::string message;
-            std::vector<MessageInfo> messages;
-            bool printInfoMessages;
-        };
-
-        void lazyPrint() {
-
-            if( !currentTestRunInfo.used )
-                lazyPrintRunInfo();
-            if( !currentGroupInfo.used )
-                lazyPrintGroupInfo();
-
-            if( !m_headerPrinted ) {
-                printTestCaseAndSectionHeader();
-                m_headerPrinted = true;
-            }
-        }
-        void lazyPrintRunInfo() {
-            stream  << '\n' << getLineOfChars<'~'>() << '\n';
-            Colour colour( Colour::SecondaryText );
-            stream  << currentTestRunInfo->name
-                    << " is a Catch v"  << libraryVersion << " host application.\n"
-                    << "Run with -? for options\n\n";
-
-            if( m_config->rngSeed() != 0 )
-                stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n";
-
-            currentTestRunInfo.used = true;
-        }
-        void lazyPrintGroupInfo() {
-            if( !currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1 ) {
-                printClosedHeader( "Group: " + currentGroupInfo->name );
-                currentGroupInfo.used = true;
-            }
-        }
-        void printTestCaseAndSectionHeader() {
-            assert( !m_sectionStack.empty() );
-            printOpenHeader( currentTestCaseInfo->name );
-
-            if( m_sectionStack.size() > 1 ) {
-                Colour colourGuard( Colour::Headers );
-
-                std::vector<SectionInfo>::const_iterator
-                    it = m_sectionStack.begin()+1, // Skip first section (test case)
-                    itEnd = m_sectionStack.end();
-                for( ; it != itEnd; ++it )
-                    printHeaderString( it->name, 2 );
-            }
-
-            SourceLineInfo lineInfo = m_sectionStack.front().lineInfo;
-
-            if( !lineInfo.empty() ){
-                stream << getLineOfChars<'-'>() << '\n';
-                Colour colourGuard( Colour::FileName );
-                stream << lineInfo << '\n';
-            }
-            stream << getLineOfChars<'.'>() << '\n' << std::endl;
-        }
-
-        void printClosedHeader( std::string const& _name ) {
-            printOpenHeader( _name );
-            stream << getLineOfChars<'.'>() << '\n';
-        }
-        void printOpenHeader( std::string const& _name ) {
-            stream  << getLineOfChars<'-'>() << '\n';
-            {
-                Colour colourGuard( Colour::Headers );
-                printHeaderString( _name );
-            }
-        }
-
-        // if string has a : in first line will set indent to follow it on
-        // subsequent lines
-        void printHeaderString( std::string const& _string, std::size_t indent = 0 ) {
-            std::size_t i = _string.find( ": " );
-            if( i != std::string::npos )
-                i+=2;
-            else
-                i = 0;
-            stream << Text( _string, TextAttributes()
-                                        .setIndent( indent+i)
-                                        .setInitialIndent( indent ) ) << '\n';
-        }
-
-        struct SummaryColumn {
-
-            SummaryColumn( std::string const& _label, Colour::Code _colour )
-            :   label( _label ),
-                colour( _colour )
-            {}
-            SummaryColumn addRow( std::size_t count ) {
-                std::ostringstream oss;
-                oss << count;
-                std::string row = oss.str();
-                for( std::vector<std::string>::iterator it = rows.begin(); it != rows.end(); ++it ) {
-                    while( it->size() < row.size() )
-                        *it = ' ' + *it;
-                    while( it->size() > row.size() )
-                        row = ' ' + row;
-                }
-                rows.push_back( row );
-                return *this;
-            }
-
-            std::string label;
-            Colour::Code colour;
-            std::vector<std::string> rows;
-
-        };
-
-        void printTotals( Totals const& totals ) {
-            if( totals.testCases.total() == 0 ) {
-                stream << Colour( Colour::Warning ) << "No tests ran\n";
-            }
-            else if( totals.assertions.total() > 0 && totals.testCases.allPassed() ) {
-                stream << Colour( Colour::ResultSuccess ) << "All tests passed";
-                stream << " ("
-                        << pluralise( totals.assertions.passed, "assertion" ) << " in "
-                        << pluralise( totals.testCases.passed, "test case" ) << ')'
-                        << '\n';
-            }
-            else {
-
-                std::vector<SummaryColumn> columns;
-                columns.push_back( SummaryColumn( "", Colour::None )
-                                        .addRow( totals.testCases.total() )
-                                        .addRow( totals.assertions.total() ) );
-                columns.push_back( SummaryColumn( "passed", Colour::Success )
-                                        .addRow( totals.testCases.passed )
-                                        .addRow( totals.assertions.passed ) );
-                columns.push_back( SummaryColumn( "failed", Colour::ResultError )
-                                        .addRow( totals.testCases.failed )
-                                        .addRow( totals.assertions.failed ) );
-                columns.push_back( SummaryColumn( "failed as expected", Colour::ResultExpectedFailure )
-                                        .addRow( totals.testCases.failedButOk )
-                                        .addRow( totals.assertions.failedButOk ) );
-
-                printSummaryRow( "test cases", columns, 0 );
-                printSummaryRow( "assertions", columns, 1 );
-            }
-        }
-        void printSummaryRow( std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row ) {
-            for( std::vector<SummaryColumn>::const_iterator it = cols.begin(); it != cols.end(); ++it ) {
-                std::string value = it->rows[row];
-                if( it->label.empty() ) {
-                    stream << label << ": ";
-                    if( value != "0" )
-                        stream << value;
-                    else
-                        stream << Colour( Colour::Warning ) << "- none -";
-                }
-                else if( value != "0" ) {
-                    stream  << Colour( Colour::LightGrey ) << " | ";
-                    stream  << Colour( it->colour )
-                            << value << ' ' << it->label;
-                }
-            }
-            stream << '\n';
-        }
-
-        static std::size_t makeRatio( std::size_t number, std::size_t total ) {
-            std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0;
-            return ( ratio == 0 && number > 0 ) ? 1 : ratio;
-        }
-        static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) {
-            if( i > j && i > k )
-                return i;
-            else if( j > k )
-                return j;
-            else
-                return k;
-        }
-
-        void printTotalsDivider( Totals const& totals ) {
-            if( totals.testCases.total() > 0 ) {
-                std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() );
-                std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() );
-                std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() );
-                while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 )
-                    findMax( failedRatio, failedButOkRatio, passedRatio )++;
-                while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 )
-                    findMax( failedRatio, failedButOkRatio, passedRatio )--;
-
-                stream << Colour( Colour::Error ) << std::string( failedRatio, '=' );
-                stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' );
-                if( totals.testCases.allPassed() )
-                    stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' );
-                else
-                    stream << Colour( Colour::Success ) << std::string( passedRatio, '=' );
-            }
-            else {
-                stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' );
-            }
-            stream << '\n';
-        }
-        void printSummaryDivider() {
-            stream << getLineOfChars<'-'>() << '\n';
-        }
-
-    private:
-        bool m_headerPrinted;
-    };
-
-    INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter )
-
-} // end namespace Catch
-
-// #included from: ../reporters/catch_reporter_compact.hpp
-#define TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED
-
-namespace Catch {
-
-    struct CompactReporter : StreamingReporterBase {
-
-        CompactReporter( ReporterConfig const& _config )
-        : StreamingReporterBase( _config )
-        {}
-
-        virtual ~CompactReporter();
-
-        static std::string getDescription() {
-            return "Reports test results on a single line, suitable for IDEs";
-        }
-
-        virtual ReporterPreferences getPreferences() const {
-            ReporterPreferences prefs;
-            prefs.shouldRedirectStdOut = false;
-            return prefs;
-        }
-
-        virtual void noMatchingTestCases( std::string const& spec ) {
-            stream << "No test cases matched '" << spec << '\'' << std::endl;
-        }
-
-        virtual void assertionStarting( AssertionInfo const& ) {
-        }
-
-        virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
-            AssertionResult const& result = _assertionStats.assertionResult;
-
-            bool printInfoMessages = true;
-
-            // Drop out if result was successful and we're not printing those
-            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
-                if( result.getResultType() != ResultWas::Warning )
-                    return false;
-                printInfoMessages = false;
-            }
-
-            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
-            printer.print();
-
-            stream << std::endl;
-            return true;
-        }
-
-        virtual void testRunEnded( TestRunStats const& _testRunStats ) {
-            printTotals( _testRunStats.totals );
-            stream << '\n' << std::endl;
-            StreamingReporterBase::testRunEnded( _testRunStats );
-        }
-
-    private:
-        class AssertionPrinter {
-            void operator= ( AssertionPrinter const& );
-        public:
-            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
-            : stream( _stream )
-            , stats( _stats )
-            , result( _stats.assertionResult )
-            , messages( _stats.infoMessages )
-            , itMessage( _stats.infoMessages.begin() )
-            , printInfoMessages( _printInfoMessages )
-            {}
-
-            void print() {
-                printSourceInfo();
-
-                itMessage = messages.begin();
-
-                switch( result.getResultType() ) {
-                    case ResultWas::Ok:
-                        printResultType( Colour::ResultSuccess, passedString() );
-                        printOriginalExpression();
-                        printReconstructedExpression();
-                        if ( ! result.hasExpression() )
-                            printRemainingMessages( Colour::None );
-                        else
-                            printRemainingMessages();
-                        break;
-                    case ResultWas::ExpressionFailed:
-                        if( result.isOk() )
-                            printResultType( Colour::ResultSuccess, failedString() + std::string( " - but was ok" ) );
-                        else
-                            printResultType( Colour::Error, failedString() );
-                        printOriginalExpression();
-                        printReconstructedExpression();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::ThrewException:
-                        printResultType( Colour::Error, failedString() );
-                        printIssue( "unexpected exception with message:" );
-                        printMessage();
-                        printExpressionWas();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::FatalErrorCondition:
-                        printResultType( Colour::Error, failedString() );
-                        printIssue( "fatal error condition with message:" );
-                        printMessage();
-                        printExpressionWas();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::DidntThrowException:
-                        printResultType( Colour::Error, failedString() );
-                        printIssue( "expected exception, got none" );
-                        printExpressionWas();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::Info:
-                        printResultType( Colour::None, "info" );
-                        printMessage();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::Warning:
-                        printResultType( Colour::None, "warning" );
-                        printMessage();
-                        printRemainingMessages();
-                        break;
-                    case ResultWas::ExplicitFailure:
-                        printResultType( Colour::Error, failedString() );
-                        printIssue( "explicitly" );
-                        printRemainingMessages( Colour::None );
-                        break;
-                    // These cases are here to prevent compiler warnings
-                    case ResultWas::Unknown:
-                    case ResultWas::FailureBit:
-                    case ResultWas::Exception:
-                        printResultType( Colour::Error, "** internal error **" );
-                        break;
-                }
-            }
-
-        private:
-            // Colour::LightGrey
-
-            static Colour::Code dimColour() { return Colour::FileName; }
-
-#ifdef CATCH_PLATFORM_MAC
-            static const char* failedString() { return "FAILED"; }
-            static const char* passedString() { return "PASSED"; }
-#else
-            static const char* failedString() { return "failed"; }
-            static const char* passedString() { return "passed"; }
-#endif
-
-            void printSourceInfo() const {
-                Colour colourGuard( Colour::FileName );
-                stream << result.getSourceInfo() << ':';
-            }
-
-            void printResultType( Colour::Code colour, std::string passOrFail ) const {
-                if( !passOrFail.empty() ) {
-                    {
-                        Colour colourGuard( colour );
-                        stream << ' ' << passOrFail;
-                    }
-                    stream << ':';
-                }
-            }
-
-            void printIssue( std::string issue ) const {
-                stream << ' ' << issue;
-            }
-
-            void printExpressionWas() {
-                if( result.hasExpression() ) {
-                    stream << ';';
-                    {
-                        Colour colour( dimColour() );
-                        stream << " expression was:";
-                    }
-                    printOriginalExpression();
-                }
-            }
-
-            void printOriginalExpression() const {
-                if( result.hasExpression() ) {
-                    stream << ' ' << result.getExpression();
-                }
-            }
-
-            void printReconstructedExpression() const {
-                if( result.hasExpandedExpression() ) {
-                    {
-                        Colour colour( dimColour() );
-                        stream << " for: ";
-                    }
-                    stream << result.getExpandedExpression();
-                }
-            }
-
-            void printMessage() {
-                if ( itMessage != messages.end() ) {
-                    stream << " '" << itMessage->message << '\'';
-                    ++itMessage;
-                }
-            }
-
-            void printRemainingMessages( Colour::Code colour = dimColour() ) {
-                if ( itMessage == messages.end() )
-                    return;
-
-                // using messages.end() directly yields compilation error:
-                std::vector<MessageInfo>::const_iterator itEnd = messages.end();
-                const std::size_t N = static_cast<std::size_t>( std::distance( itMessage, itEnd ) );
-
-                {
-                    Colour colourGuard( colour );
-                    stream << " with " << pluralise( N, "message" ) << ':';
-                }
-
-                for(; itMessage != itEnd; ) {
-                    // If this assertion is a warning ignore any INFO messages
-                    if( printInfoMessages || itMessage->type != ResultWas::Info ) {
-                        stream << " '" << itMessage->message << '\'';
-                        if ( ++itMessage != itEnd ) {
-                            Colour colourGuard( dimColour() );
-                            stream << " and";
-                        }
-                    }
-                }
-            }
-
-        private:
-            std::ostream& stream;
-            AssertionStats const& stats;
-            AssertionResult const& result;
-            std::vector<MessageInfo> messages;
-            std::vector<MessageInfo>::const_iterator itMessage;
-            bool printInfoMessages;
-        };
-
-        // Colour, message variants:
-        // - white: No tests ran.
-        // -   red: Failed [both/all] N test cases, failed [both/all] M assertions.
-        // - white: Passed [both/all] N test cases (no assertions).
-        // -   red: Failed N tests cases, failed M assertions.
-        // - green: Passed [both/all] N tests cases with M assertions.
-
-        std::string bothOrAll( std::size_t count ) const {
-            return count == 1 ? std::string() : count == 2 ? "both " : "all " ;
-        }
-
-        void printTotals( const Totals& totals ) const {
-            if( totals.testCases.total() == 0 ) {
-                stream << "No tests ran.";
-            }
-            else if( totals.testCases.failed == totals.testCases.total() ) {
-                Colour colour( Colour::ResultError );
-                const std::string qualify_assertions_failed =
-                    totals.assertions.failed == totals.assertions.total() ?
-                        bothOrAll( totals.assertions.failed ) : std::string();
-                stream <<
-                    "Failed " << bothOrAll( totals.testCases.failed )
-                              << pluralise( totals.testCases.failed, "test case"  ) << ", "
-                    "failed " << qualify_assertions_failed <<
-                                 pluralise( totals.assertions.failed, "assertion" ) << '.';
-            }
-            else if( totals.assertions.total() == 0 ) {
-                stream <<
-                    "Passed " << bothOrAll( totals.testCases.total() )
-                              << pluralise( totals.testCases.total(), "test case" )
-                              << " (no assertions).";
-            }
-            else if( totals.assertions.failed ) {
-                Colour colour( Colour::ResultError );
-                stream <<
-                    "Failed " << pluralise( totals.testCases.failed, "test case"  ) << ", "
-                    "failed " << pluralise( totals.assertions.failed, "assertion" ) << '.';
-            }
-            else {
-                Colour colour( Colour::ResultSuccess );
-                stream <<
-                    "Passed " << bothOrAll( totals.testCases.passed )
-                              << pluralise( totals.testCases.passed, "test case"  ) <<
-                    " with "  << pluralise( totals.assertions.passed, "assertion" ) << '.';
-            }
-        }
-    };
-
-    INTERNAL_CATCH_REGISTER_REPORTER( "compact", CompactReporter )
-
-} // end namespace Catch
-
-namespace Catch {
-    // These are all here to avoid warnings about not having any out of line
-    // virtual methods
-    NonCopyable::~NonCopyable() {}
-    IShared::~IShared() {}
-    IStream::~IStream() CATCH_NOEXCEPT {}
-    FileStream::~FileStream() CATCH_NOEXCEPT {}
-    CoutStream::~CoutStream() CATCH_NOEXCEPT {}
-    DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {}
-    StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {}
-    IContext::~IContext() {}
-    IResultCapture::~IResultCapture() {}
-    ITestCase::~ITestCase() {}
-    ITestCaseRegistry::~ITestCaseRegistry() {}
-    IRegistryHub::~IRegistryHub() {}
-    IMutableRegistryHub::~IMutableRegistryHub() {}
-    IExceptionTranslator::~IExceptionTranslator() {}
-    IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
-    IReporter::~IReporter() {}
-    IReporterFactory::~IReporterFactory() {}
-    IReporterRegistry::~IReporterRegistry() {}
-    IStreamingReporter::~IStreamingReporter() {}
-    AssertionStats::~AssertionStats() {}
-    SectionStats::~SectionStats() {}
-    TestCaseStats::~TestCaseStats() {}
-    TestGroupStats::~TestGroupStats() {}
-    TestRunStats::~TestRunStats() {}
-    CumulativeReporterBase::SectionNode::~SectionNode() {}
-    CumulativeReporterBase::~CumulativeReporterBase() {}
-
-    StreamingReporterBase::~StreamingReporterBase() {}
-    ConsoleReporter::~ConsoleReporter() {}
-    CompactReporter::~CompactReporter() {}
-    IRunner::~IRunner() {}
-    IMutableContext::~IMutableContext() {}
-    IConfig::~IConfig() {}
-    XmlReporter::~XmlReporter() {}
-    JunitReporter::~JunitReporter() {}
-    TestRegistry::~TestRegistry() {}
-    FreeFunctionTestCase::~FreeFunctionTestCase() {}
-    IGeneratorInfo::~IGeneratorInfo() {}
-    IGeneratorsForTest::~IGeneratorsForTest() {}
-    WildcardPattern::~WildcardPattern() {}
-    TestSpec::Pattern::~Pattern() {}
-    TestSpec::NamePattern::~NamePattern() {}
-    TestSpec::TagPattern::~TagPattern() {}
-    TestSpec::ExcludedPattern::~ExcludedPattern() {}
-
-    Matchers::Impl::StdString::Equals::~Equals() {}
-    Matchers::Impl::StdString::Contains::~Contains() {}
-    Matchers::Impl::StdString::StartsWith::~StartsWith() {}
-    Matchers::Impl::StdString::EndsWith::~EndsWith() {}
-
-    void Config::dummy() {}
-
-    namespace TestCaseTracking {
-        ITracker::~ITracker() {}
-        TrackerBase::~TrackerBase() {}
-        SectionTracker::~SectionTracker() {}
-        IndexTracker::~IndexTracker() {}
-    }
-}
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-#endif
-
-#ifdef CATCH_CONFIG_MAIN
-// #included from: internal/catch_default_main.hpp
-#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
-
-#ifndef __OBJC__
-
-// Standard C/C++ main entry point
-int main (int argc, char * argv[]) {
-    int result = Catch::Session().run( argc, argv );
-    return ( result < 0xff ? result : 0xff );
-}
-
-#else // __OBJC__
-
-// Objective-C entry point
-int main (int argc, char * const argv[]) {
-#if !CATCH_ARC_ENABLED
-    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-#endif
-
-    Catch::registerTestMethods();
-    int result = Catch::Session().run( argc, (char* const*)argv );
-
-#if !CATCH_ARC_ENABLED
-    [pool drain];
-#endif
-
-    return ( result < 0xff ? result : 0xff );
-}
-
-#endif // __OBJC__
-
-#endif
-
-#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED
-#  undef CLARA_CONFIG_MAIN
-#endif
-
-//////
-
-// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
-#ifdef CATCH_CONFIG_PREFIX_ALL
-
-#define CATCH_REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE" )
-#define CATCH_REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "CATCH_REQUIRE_FALSE" )
-
-#define CATCH_REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "CATCH_REQUIRE_THROWS" )
-#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS_AS" )
-#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "CATCH_REQUIRE_THROWS_WITH" )
-#define CATCH_REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_NOTHROW" )
-
-#define CATCH_CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK" )
-#define CATCH_CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CATCH_CHECK_FALSE" )
-#define CATCH_CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_IF" )
-#define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" )
-#define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" )
-
-#define CATCH_CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CATCH_CHECK_THROWS" )
-#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" )
-#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" )
-#define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" )
-
-#define CATCH_CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THAT" )
-#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THAT" )
-
-#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
-#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "CATCH_WARN", msg )
-#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
-#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
-#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
-
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-    #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
-    #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
-    #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
-    #define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
-    #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
-    #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ )
-    #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ )
-#else
-    #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
-    #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
-    #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
-    #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description )
-    #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
-    #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg )
-    #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg )
-#endif
-#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
-
-#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
-#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
-
-#define CATCH_GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
-
-// "BDD-style" convenience wrappers
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ )
-#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
-#else
-#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags )
-#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
-#endif
-#define CATCH_GIVEN( desc )    CATCH_SECTION( std::string( "Given: ") + desc, "" )
-#define CATCH_WHEN( desc )     CATCH_SECTION( std::string( " When: ") + desc, "" )
-#define CATCH_AND_WHEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
-#define CATCH_THEN( desc )     CATCH_SECTION( std::string( " Then: ") + desc, "" )
-#define CATCH_AND_THEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
-
-// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
-#else
-
-#define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "REQUIRE" )
-#define REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "REQUIRE_FALSE" )
-
-#define REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "REQUIRE_THROWS" )
-#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "REQUIRE_THROWS_AS" )
-#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "REQUIRE_THROWS_WITH" )
-#define REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "REQUIRE_NOTHROW" )
-
-#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" )
-#define CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CHECK_FALSE" )
-#define CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_IF" )
-#define CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_ELSE" )
-#define CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CHECK_NOFAIL" )
-
-#define CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CHECK_THROWS" )
-#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS_AS" )
-#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CHECK_THROWS_WITH" )
-#define CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_NOTHROW" )
-
-#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THAT" )
-#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "REQUIRE_THAT" )
-
-#define INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
-#define WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "WARN", msg )
-#define SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
-#define CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
-#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
-
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-    #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
-    #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
-    #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
-    #define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
-    #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
-    #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ )
-    #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ )
-#else
-    #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
-    #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
-    #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
-    #define REGISTER_TEST_CASE( method, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( method, name, description )
-    #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
-    #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg )
-    #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg )
-#endif
-#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
-
-#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
-#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
-
-#define GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
-
-#endif
-
-#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )
-
-// "BDD-style" convenience wrappers
-#ifdef CATCH_CONFIG_VARIADIC_MACROS
-#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ )
-#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
-#else
-#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags )
-#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
-#endif
-#define GIVEN( desc )    SECTION( std::string("   Given: ") + desc, "" )
-#define WHEN( desc )     SECTION( std::string("    When: ") + desc, "" )
-#define AND_WHEN( desc ) SECTION( std::string("And when: ") + desc, "" )
-#define THEN( desc )     SECTION( std::string("    Then: ") + desc, "" )
-#define AND_THEN( desc ) SECTION( std::string("     And: ") + desc, "" )
-
-using Catch::Detail::Approx;
-
-#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
-
+/*
+ *  Catch v1.7.2
+ *  Generated: 2017-02-13 15:57:33.350226
+ *  ----------------------------------------------------------
+ *  This file has been merged from multiple headers. Please don't edit it directly
+ *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
+ *
+ *  Distributed under the Boost Software License, Version 1.0. (See accompanying
+ *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ */
+#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+
+#define TWOBLUECUBES_CATCH_HPP_INCLUDED
+
+#ifdef __clang__
+#    pragma clang system_header
+#elif defined __GNUC__
+#    pragma GCC system_header
+#endif
+
+// #included from: internal/catch_suppress_warnings.h
+
+#ifdef __clang__
+#   ifdef __ICC // icpc defines the __clang__ macro
+#       pragma warning(push)
+#       pragma warning(disable: 161 1682)
+#   else // __ICC
+#       pragma clang diagnostic ignored "-Wglobal-constructors"
+#       pragma clang diagnostic ignored "-Wvariadic-macros"
+#       pragma clang diagnostic ignored "-Wc99-extensions"
+#       pragma clang diagnostic ignored "-Wunused-variable"
+#       pragma clang diagnostic push
+#       pragma clang diagnostic ignored "-Wpadded"
+#       pragma clang diagnostic ignored "-Wc++98-compat"
+#       pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
+#       pragma clang diagnostic ignored "-Wswitch-enum"
+#       pragma clang diagnostic ignored "-Wcovered-switch-default"
+#    endif
+#elif defined __GNUC__
+#    pragma GCC diagnostic ignored "-Wvariadic-macros"
+#    pragma GCC diagnostic ignored "-Wunused-variable"
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wpadded"
+#endif
+#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER)
+#  define CATCH_IMPL
+#endif
+
+#ifdef CATCH_IMPL
+#  ifndef CLARA_CONFIG_MAIN
+#    define CLARA_CONFIG_MAIN_NOT_DEFINED
+#    define CLARA_CONFIG_MAIN
+#  endif
+#endif
+
+// #included from: internal/catch_notimplemented_exception.h
+#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
+
+// #included from: catch_common.h
+#define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
+
+// #included from: catch_compiler_capabilities.h
+#define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
+
+// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
+// The following features are defined:
+//
+// CATCH_CONFIG_CPP11_NULLPTR : is nullptr supported?
+// CATCH_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
+// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
+// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported?
+// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported
+// CATCH_CONFIG_CPP11_LONG_LONG : is long long supported?
+// CATCH_CONFIG_CPP11_OVERRIDE : is override supported?
+// CATCH_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
+// CATCH_CONFIG_CPP11_SHUFFLE : is std::shuffle supported?
+// CATCH_CONFIG_CPP11_TYPE_TRAITS : are type_traits and enable_if supported?
+
+// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
+
+// CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported?
+// CATCH_CONFIG_COUNTER : is the __COUNTER__ macro supported?
+// CATCH_CONFIG_WINDOWS_SEH : is Windows SEH supported?
+// ****************
+// Note to maintainers: if new toggles are added please document them
+// in configuration.md, too
+// ****************
+
+// In general each macro has a _NO_<feature name> form
+// (e.g. CATCH_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
+// Many features, at point of detection, define an _INTERNAL_ macro, so they
+// can be combined, en-mass, with the _NO_ forms later.
+
+// All the C++11 features can be disabled with CATCH_CONFIG_NO_CPP11
+
+#ifdef __cplusplus
+
+#  if __cplusplus >= 201103L
+#    define CATCH_CPP11_OR_GREATER
+#  endif
+
+#  if __cplusplus >= 201402L
+#    define CATCH_CPP14_OR_GREATER
+#  endif
+
+#endif
+
+#ifdef __clang__
+
+#  if __has_feature(cxx_nullptr)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#  endif
+
+#  if __has_feature(cxx_noexcept)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#  endif
+
+#   if defined(CATCH_CPP11_OR_GREATER)
+#       define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS _Pragma( "clang diagnostic ignored \"-Wparentheses\"" )
+#   endif
+
+#endif // __clang__
+
+////////////////////////////////////////////////////////////////////////////////
+// Borland
+#ifdef __BORLANDC__
+
+#endif // __BORLANDC__
+
+////////////////////////////////////////////////////////////////////////////////
+// EDG
+#ifdef __EDG_VERSION__
+
+#endif // __EDG_VERSION__
+
+////////////////////////////////////////////////////////////////////////////////
+// Digital Mars
+#ifdef __DMC__
+
+#endif // __DMC__
+
+////////////////////////////////////////////////////////////////////////////////
+// GCC
+#ifdef __GNUC__
+
+#   if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+#       define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#   endif
+
+#   if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS) && defined(CATCH_CPP11_OR_GREATER)
+#       define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS _Pragma( "GCC diagnostic ignored \"-Wparentheses\"" )
+#   endif
+
+// - otherwise more recent versions define __cplusplus >= 201103L
+// and will get picked up below
+
+#endif // __GNUC__
+
+////////////////////////////////////////////////////////////////////////////////
+// Visual C++
+#ifdef _MSC_VER
+
+#define CATCH_INTERNAL_CONFIG_WINDOWS_SEH
+
+#if (_MSC_VER >= 1600)
+#   define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#   define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
+#define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+#define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
+#endif
+
+#endif // _MSC_VER
+
+////////////////////////////////////////////////////////////////////////////////
+
+// Use variadic macros if the compiler supports them
+#if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \
+    ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \
+    ( defined __GNUC__ && __GNUC__ >= 3 ) || \
+    ( !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L )
+
+#define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+
+#endif
+
+// Use __COUNTER__ if the compiler supports it
+#if ( defined _MSC_VER && _MSC_VER >= 1300 ) || \
+    ( defined __GNUC__  && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3 ) || \
+    ( defined __clang__ && __clang_major__ >= 3 )
+
+#define CATCH_INTERNAL_CONFIG_COUNTER
+
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// C++ language feature support
+
+// catch all support for C++11
+#if defined(CATCH_CPP11_OR_GREATER)
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#    define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+#    define CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+#    define CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+#    define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+#  endif
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG)
+#    define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG
+#  endif
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE)
+#    define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE
+#  endif
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
+#    define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#  endif
+# if !defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE)
+#   define CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE
+#  endif
+# if !defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS)
+#  define CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS
+# endif
+
+#endif // __cplusplus >= 201103L
+
+// Now set the actual defines based on the above + anything the user has configured
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NO_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_NULLPTR
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_NOEXCEPT
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_GENERATED_METHODS
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_NO_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_IS_ENUM
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_CPP11_NO_TUPLE) && !defined(CATCH_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_TUPLE
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS)
+#   define CATCH_CONFIG_VARIADIC_MACROS
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_LONG_LONG
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_OVERRIDE
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_UNIQUE_PTR
+#endif
+// Use of __COUNTER__ is suppressed if __JETBRAINS_IDE__ is #defined (meaning we're being parsed by a JetBrains IDE for
+// analytics) because, at time of writing, __COUNTER__ is not properly handled by it.
+// This does not affect compilation
+#if defined(CATCH_INTERNAL_CONFIG_COUNTER) && !defined(CATCH_CONFIG_NO_COUNTER) && !defined(CATCH_CONFIG_COUNTER) && !defined(__JETBRAINS_IDE__)
+#   define CATCH_CONFIG_COUNTER
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_NO_SHUFFLE) && !defined(CATCH_CONFIG_CPP11_SHUFFLE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_SHUFFLE
+#endif
+# if defined(CATCH_INTERNAL_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_NO_TYPE_TRAITS) && !defined(CATCH_CONFIG_CPP11_TYPE_TRAITS) && !defined(CATCH_CONFIG_NO_CPP11)
+#  define CATCH_CONFIG_CPP11_TYPE_TRAITS
+# endif
+#if defined(CATCH_INTERNAL_CONFIG_WINDOWS_SEH) && !defined(CATCH_CONFIG_NO_WINDOWS_SEH) && !defined(CATCH_CONFIG_WINDOWS_SEH)
+#   define CATCH_CONFIG_WINDOWS_SEH
+#endif
+
+#if !defined(CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS)
+#   define CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS
+#endif
+
+// noexcept support:
+#if defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_NOEXCEPT)
+#  define CATCH_NOEXCEPT noexcept
+#  define CATCH_NOEXCEPT_IS(x) noexcept(x)
+#else
+#  define CATCH_NOEXCEPT throw()
+#  define CATCH_NOEXCEPT_IS(x)
+#endif
+
+// nullptr support
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+#   define CATCH_NULL nullptr
+#else
+#   define CATCH_NULL NULL
+#endif
+
+// override support
+#ifdef CATCH_CONFIG_CPP11_OVERRIDE
+#   define CATCH_OVERRIDE override
+#else
+#   define CATCH_OVERRIDE
+#endif
+
+// unique_ptr support
+#ifdef CATCH_CONFIG_CPP11_UNIQUE_PTR
+#   define CATCH_AUTO_PTR( T ) std::unique_ptr<T>
+#else
+#   define CATCH_AUTO_PTR( T ) std::auto_ptr<T>
+#endif
+
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
+#ifdef CATCH_CONFIG_COUNTER
+#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __COUNTER__ )
+#else
+#  define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
+#endif
+
+#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr
+#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr )
+
+#include <sstream>
+#include <algorithm>
+
+namespace Catch {
+
+    struct IConfig;
+
+    struct CaseSensitive { enum Choice {
+        Yes,
+        No
+    }; };
+
+    class NonCopyable {
+#ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        NonCopyable( NonCopyable const& )              = delete;
+        NonCopyable( NonCopyable && )                  = delete;
+        NonCopyable& operator = ( NonCopyable const& ) = delete;
+        NonCopyable& operator = ( NonCopyable && )     = delete;
+#else
+        NonCopyable( NonCopyable const& info );
+        NonCopyable& operator = ( NonCopyable const& );
+#endif
+
+    protected:
+        NonCopyable() {}
+        virtual ~NonCopyable();
+    };
+
+    class SafeBool {
+    public:
+        typedef void (SafeBool::*type)() const;
+
+        static type makeSafe( bool value ) {
+            return value ? &SafeBool::trueValue : 0;
+        }
+    private:
+        void trueValue() const {}
+    };
+
+    template<typename ContainerT>
+    inline void deleteAll( ContainerT& container ) {
+        typename ContainerT::const_iterator it = container.begin();
+        typename ContainerT::const_iterator itEnd = container.end();
+        for(; it != itEnd; ++it )
+            delete *it;
+    }
+    template<typename AssociativeContainerT>
+    inline void deleteAllValues( AssociativeContainerT& container ) {
+        typename AssociativeContainerT::const_iterator it = container.begin();
+        typename AssociativeContainerT::const_iterator itEnd = container.end();
+        for(; it != itEnd; ++it )
+            delete it->second;
+    }
+
+    bool startsWith( std::string const& s, std::string const& prefix );
+    bool startsWith( std::string const& s, char prefix );
+    bool endsWith( std::string const& s, std::string const& suffix );
+    bool endsWith( std::string const& s, char suffix );
+    bool contains( std::string const& s, std::string const& infix );
+    void toLowerInPlace( std::string& s );
+    std::string toLower( std::string const& s );
+    std::string trim( std::string const& str );
+    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis );
+
+    struct pluralise {
+        pluralise( std::size_t count, std::string const& label );
+
+        friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser );
+
+        std::size_t m_count;
+        std::string m_label;
+    };
+
+    struct SourceLineInfo {
+
+        SourceLineInfo();
+        SourceLineInfo( char const* _file, std::size_t _line );
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        SourceLineInfo(SourceLineInfo const& other)          = default;
+        SourceLineInfo( SourceLineInfo && )                  = default;
+        SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
+        SourceLineInfo& operator = ( SourceLineInfo && )     = default;
+#  endif
+        bool empty() const;
+        bool operator == ( SourceLineInfo const& other ) const;
+        bool operator < ( SourceLineInfo const& other ) const;
+
+        char const* file;
+        std::size_t line;
+    };
+
+    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info );
+
+    // This is just here to avoid compiler warnings with macro constants and boolean literals
+    inline bool isTrue( bool value ){ return value; }
+    inline bool alwaysTrue() { return true; }
+    inline bool alwaysFalse() { return false; }
+
+    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo );
+
+    void seedRng( IConfig const& config );
+    unsigned int rngSeed();
+
+    // Use this in variadic streaming macros to allow
+    //    >> +StreamEndStop
+    // as well as
+    //    >> stuff +StreamEndStop
+    struct StreamEndStop {
+        std::string operator+() {
+            return std::string();
+        }
+    };
+    template<typename T>
+    T const& operator + ( T const& value, StreamEndStop ) {
+        return value;
+    }
+}
+
+#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )
+#define CATCH_INTERNAL_ERROR( msg ) ::Catch::throwLogicError( msg, CATCH_INTERNAL_LINEINFO );
+
+namespace Catch {
+
+    class NotImplementedException : public std::exception
+    {
+    public:
+        NotImplementedException( SourceLineInfo const& lineInfo );
+        NotImplementedException( NotImplementedException const& ) {}
+
+        virtual ~NotImplementedException() CATCH_NOEXCEPT {}
+
+        virtual const char* what() const CATCH_NOEXCEPT;
+
+    private:
+        std::string m_what;
+        SourceLineInfo m_lineInfo;
+    };
+
+} // end namespace Catch
+
+///////////////////////////////////////////////////////////////////////////////
+#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO )
+
+// #included from: internal/catch_context.h
+#define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
+
+// #included from: catch_interfaces_generators.h
+#define TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct IGeneratorInfo {
+        virtual ~IGeneratorInfo();
+        virtual bool moveNext() = 0;
+        virtual std::size_t getCurrentIndex() const = 0;
+    };
+
+    struct IGeneratorsForTest {
+        virtual ~IGeneratorsForTest();
+
+        virtual IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) = 0;
+        virtual bool moveNext() = 0;
+    };
+
+    IGeneratorsForTest* createGeneratorsForTest();
+
+} // end namespace Catch
+
+// #included from: catch_ptr.hpp
+#define TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    // An intrusive reference counting smart pointer.
+    // T must implement addRef() and release() methods
+    // typically implementing the IShared interface
+    template<typename T>
+    class Ptr {
+    public:
+        Ptr() : m_p( CATCH_NULL ){}
+        Ptr( T* p ) : m_p( p ){
+            if( m_p )
+                m_p->addRef();
+        }
+        Ptr( Ptr const& other ) : m_p( other.m_p ){
+            if( m_p )
+                m_p->addRef();
+        }
+        ~Ptr(){
+            if( m_p )
+                m_p->release();
+        }
+        void reset() {
+            if( m_p )
+                m_p->release();
+            m_p = CATCH_NULL;
+        }
+        Ptr& operator = ( T* p ){
+            Ptr temp( p );
+            swap( temp );
+            return *this;
+        }
+        Ptr& operator = ( Ptr const& other ){
+            Ptr temp( other );
+            swap( temp );
+            return *this;
+        }
+        void swap( Ptr& other ) { std::swap( m_p, other.m_p ); }
+        T* get() const{ return m_p; }
+        T& operator*() const { return *m_p; }
+        T* operator->() const { return m_p; }
+        bool operator !() const { return m_p == CATCH_NULL; }
+        operator SafeBool::type() const { return SafeBool::makeSafe( m_p != CATCH_NULL ); }
+
+    private:
+        T* m_p;
+    };
+
+    struct IShared : NonCopyable {
+        virtual ~IShared();
+        virtual void addRef() const = 0;
+        virtual void release() const = 0;
+    };
+
+    template<typename T = IShared>
+    struct SharedImpl : T {
+
+        SharedImpl() : m_rc( 0 ){}
+
+        virtual void addRef() const {
+            ++m_rc;
+        }
+        virtual void release() const {
+            if( --m_rc == 0 )
+                delete this;
+        }
+
+        mutable unsigned int m_rc;
+    };
+
+} // end namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+namespace Catch {
+
+    class TestCase;
+    class Stream;
+    struct IResultCapture;
+    struct IRunner;
+    struct IGeneratorsForTest;
+    struct IConfig;
+
+    struct IContext
+    {
+        virtual ~IContext();
+
+        virtual IResultCapture* getResultCapture() = 0;
+        virtual IRunner* getRunner() = 0;
+        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) = 0;
+        virtual bool advanceGeneratorsForCurrentTest() = 0;
+        virtual Ptr<IConfig const> getConfig() const = 0;
+    };
+
+    struct IMutableContext : IContext
+    {
+        virtual ~IMutableContext();
+        virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
+        virtual void setRunner( IRunner* runner ) = 0;
+        virtual void setConfig( Ptr<IConfig const> const& config ) = 0;
+    };
+
+    IContext& getCurrentContext();
+    IMutableContext& getCurrentMutableContext();
+    void cleanUpContext();
+    Stream createStream( std::string const& streamName );
+
+}
+
+// #included from: internal/catch_test_registry.hpp
+#define TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED
+
+// #included from: catch_interfaces_testcase.h
+#define TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED
+
+#include <vector>
+
+namespace Catch {
+
+    class TestSpec;
+
+    struct ITestCase : IShared {
+        virtual void invoke () const = 0;
+    protected:
+        virtual ~ITestCase();
+    };
+
+    class TestCase;
+    struct IConfig;
+
+    struct ITestCaseRegistry {
+        virtual ~ITestCaseRegistry();
+        virtual std::vector<TestCase> const& getAllTests() const = 0;
+        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const = 0;
+    };
+
+    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config );
+    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config );
+    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config );
+
+}
+
+namespace Catch {
+
+template<typename C>
+class MethodTestCase : public SharedImpl<ITestCase> {
+
+public:
+    MethodTestCase( void (C::*method)() ) : m_method( method ) {}
+
+    virtual void invoke() const {
+        C obj;
+        (obj.*m_method)();
+    }
+
+private:
+    virtual ~MethodTestCase() {}
+
+    void (C::*m_method)();
+};
+
+typedef void(*TestFunction)();
+
+struct NameAndDesc {
+    NameAndDesc( const char* _name = "", const char* _description= "" )
+    : name( _name ), description( _description )
+    {}
+
+    const char* name;
+    const char* description;
+};
+
+void registerTestCase
+    (   ITestCase* testCase,
+        char const* className,
+        NameAndDesc const& nameAndDesc,
+        SourceLineInfo const& lineInfo );
+
+struct AutoReg {
+
+    AutoReg
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc );
+
+    template<typename C>
+    AutoReg
+        (   void (C::*method)(),
+            char const* className,
+            NameAndDesc const& nameAndDesc,
+            SourceLineInfo const& lineInfo ) {
+
+        registerTestCase
+            (   new MethodTestCase<C>( method ),
+                className,
+                nameAndDesc,
+                lineInfo );
+    }
+
+    ~AutoReg();
+
+private:
+    AutoReg( AutoReg const& );
+    void operator= ( AutoReg const& );
+};
+
+void registerTestCaseFunction
+    (   TestFunction function,
+        SourceLineInfo const& lineInfo,
+        NameAndDesc const& nameAndDesc );
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TESTCASE2( TestName, ... ) \
+        static void TestName(); \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); }\
+        static void TestName()
+    #define INTERNAL_CATCH_TESTCASE( ... ) \
+        INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), __VA_ARGS__ )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestName, ClassName, ... )\
+        namespace{ \
+            struct TestName : ClassName{ \
+                void test(); \
+            }; \
+            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestName::test, #ClassName, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); \
+        } \
+        void TestName::test()
+    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... ) \
+        INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, __VA_ARGS__ )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \
+        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) );
+
+#else
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TESTCASE2( TestName, Name, Desc ) \
+        static void TestName(); \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &TestName, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); }\
+        static void TestName()
+    #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \
+        INTERNAL_CATCH_TESTCASE2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), Name, Desc )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, Name, Desc ) \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( Name, Desc ), CATCH_INTERNAL_LINEINFO ); }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TEST_CASE_METHOD2( TestCaseName, ClassName, TestName, Desc )\
+        namespace{ \
+            struct TestCaseName : ClassName{ \
+                void test(); \
+            }; \
+            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &TestCaseName::test, #ClassName, Catch::NameAndDesc( TestName, Desc ), CATCH_INTERNAL_LINEINFO ); \
+        } \
+        void TestCaseName::test()
+    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, TestName, Desc )\
+        INTERNAL_CATCH_TEST_CASE_METHOD2( INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ), ClassName, TestName, Desc )
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \
+        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) );
+#endif
+
+// #included from: internal/catch_capture.hpp
+#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
+
+// #included from: catch_result_builder.h
+#define TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED
+
+// #included from: catch_result_type.h
+#define TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED
+
+namespace Catch {
+
+    // ResultWas::OfType enum
+    struct ResultWas { enum OfType {
+        Unknown = -1,
+        Ok = 0,
+        Info = 1,
+        Warning = 2,
+
+        FailureBit = 0x10,
+
+        ExpressionFailed = FailureBit | 1,
+        ExplicitFailure = FailureBit | 2,
+
+        Exception = 0x100 | FailureBit,
+
+        ThrewException = Exception | 1,
+        DidntThrowException = Exception | 2,
+
+        FatalErrorCondition = 0x200 | FailureBit
+
+    }; };
+
+    inline bool isOk( ResultWas::OfType resultType ) {
+        return ( resultType & ResultWas::FailureBit ) == 0;
+    }
+    inline bool isJustInfo( int flags ) {
+        return flags == ResultWas::Info;
+    }
+
+    // ResultDisposition::Flags enum
+    struct ResultDisposition { enum Flags {
+        Normal = 0x01,
+
+        ContinueOnFailure = 0x02,   // Failures fail test, but execution continues
+        FalseTest = 0x04,           // Prefix expression with !
+        SuppressFail = 0x08         // Failures are reported but do not fail the test
+    }; };
+
+    inline ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) {
+        return static_cast<ResultDisposition::Flags>( static_cast<int>( lhs ) | static_cast<int>( rhs ) );
+    }
+
+    inline bool shouldContinueOnFailure( int flags )    { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; }
+    inline bool isFalseTest( int flags )                { return ( flags & ResultDisposition::FalseTest ) != 0; }
+    inline bool shouldSuppressFailure( int flags )      { return ( flags & ResultDisposition::SuppressFail ) != 0; }
+
+} // end namespace Catch
+
+// #included from: catch_assertionresult.h
+#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison;
+
+    struct DecomposedExpression
+    {
+        virtual ~DecomposedExpression() {}
+        virtual bool isBinaryExpression() const {
+            return false;
+        }
+        virtual void reconstructExpression( std::string& dest ) const = 0;
+
+        // Only simple binary comparisons can be decomposed.
+        // If more complex check is required then wrap sub-expressions in parentheses.
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator % ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( T const& );
+        template<typename T> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( T const& );
+    };
+
+    struct AssertionInfo
+    {
+        AssertionInfo() {}
+        AssertionInfo(  std::string const& _macroName,
+                        SourceLineInfo const& _lineInfo,
+                        std::string const& _capturedExpression,
+                        ResultDisposition::Flags _resultDisposition );
+
+        std::string macroName;
+        SourceLineInfo lineInfo;
+        std::string capturedExpression;
+        ResultDisposition::Flags resultDisposition;
+    };
+
+    struct AssertionResultData
+    {
+        AssertionResultData() : decomposedExpression( CATCH_NULL )
+                              , resultType( ResultWas::Unknown )
+                              , negated( false )
+                              , parenthesized( false ) {}
+
+        void negate( bool parenthesize ) {
+            negated = !negated;
+            parenthesized = parenthesize;
+            if( resultType == ResultWas::Ok )
+                resultType = ResultWas::ExpressionFailed;
+            else if( resultType == ResultWas::ExpressionFailed )
+                resultType = ResultWas::Ok;
+        }
+
+        std::string const& reconstructExpression() const {
+            if( decomposedExpression != CATCH_NULL ) {
+                decomposedExpression->reconstructExpression( reconstructedExpression );
+                if( parenthesized ) {
+                    reconstructedExpression.insert( 0, 1, '(' );
+                    reconstructedExpression.append( 1, ')' );
+                }
+                if( negated ) {
+                    reconstructedExpression.insert( 0, 1, '!' );
+                }
+                decomposedExpression = CATCH_NULL;
+            }
+            return reconstructedExpression;
+        }
+
+        mutable DecomposedExpression const* decomposedExpression;
+        mutable std::string reconstructedExpression;
+        std::string message;
+        ResultWas::OfType resultType;
+        bool negated;
+        bool parenthesized;
+    };
+
+    class AssertionResult {
+    public:
+        AssertionResult();
+        AssertionResult( AssertionInfo const& info, AssertionResultData const& data );
+        ~AssertionResult();
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+         AssertionResult( AssertionResult const& )              = default;
+         AssertionResult( AssertionResult && )                  = default;
+         AssertionResult& operator = ( AssertionResult const& ) = default;
+         AssertionResult& operator = ( AssertionResult && )     = default;
+#  endif
+
+        bool isOk() const;
+        bool succeeded() const;
+        ResultWas::OfType getResultType() const;
+        bool hasExpression() const;
+        bool hasMessage() const;
+        std::string getExpression() const;
+        std::string getExpressionInMacro() const;
+        bool hasExpandedExpression() const;
+        std::string getExpandedExpression() const;
+        std::string getMessage() const;
+        SourceLineInfo getSourceInfo() const;
+        std::string getTestMacroName() const;
+        void discardDecomposedExpression() const;
+        void expandDecomposedExpression() const;
+
+    protected:
+        AssertionInfo m_info;
+        AssertionResultData m_resultData;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_matchers.hpp
+#define TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED
+
+namespace Catch {
+namespace Matchers {
+    namespace Impl {
+
+    namespace Generic {
+        template<typename ExpressionT> class AllOf;
+        template<typename ExpressionT> class AnyOf;
+        template<typename ExpressionT> class Not;
+    }
+
+    template<typename ExpressionT>
+    struct Matcher : SharedImpl<IShared>
+    {
+        typedef ExpressionT ExpressionType;
+
+        virtual ~Matcher() {}
+        virtual Ptr<Matcher> clone() const = 0;
+        virtual bool match( ExpressionT const& expr ) const = 0;
+        virtual std::string toString() const = 0;
+
+        Generic::AllOf<ExpressionT> operator && ( Matcher<ExpressionT> const& other ) const;
+        Generic::AnyOf<ExpressionT> operator || ( Matcher<ExpressionT> const& other ) const;
+        Generic::Not<ExpressionT> operator ! () const;
+    };
+
+    template<typename DerivedT, typename ExpressionT>
+    struct MatcherImpl : Matcher<ExpressionT> {
+
+        virtual Ptr<Matcher<ExpressionT> > clone() const {
+            return Ptr<Matcher<ExpressionT> >( new DerivedT( static_cast<DerivedT const&>( *this ) ) );
+        }
+    };
+
+    namespace Generic {
+        template<typename ExpressionT>
+        class Not : public MatcherImpl<Not<ExpressionT>, ExpressionT> {
+        public:
+            explicit Not( Matcher<ExpressionT> const& matcher ) : m_matcher(matcher.clone()) {}
+            Not( Not const& other ) : m_matcher( other.m_matcher ) {}
+
+            virtual bool match( ExpressionT const& expr ) const CATCH_OVERRIDE {
+                return !m_matcher->match( expr );
+            }
+
+            virtual std::string toString() const CATCH_OVERRIDE {
+                return "not " + m_matcher->toString();
+            }
+        private:
+            Ptr< Matcher<ExpressionT> > m_matcher;
+        };
+
+        template<typename ExpressionT>
+        class AllOf : public MatcherImpl<AllOf<ExpressionT>, ExpressionT> {
+        public:
+
+            AllOf() {}
+            AllOf( AllOf const& other ) : m_matchers( other.m_matchers ) {}
+
+            AllOf& add( Matcher<ExpressionT> const& matcher ) {
+                m_matchers.push_back( matcher.clone() );
+                return *this;
+            }
+            virtual bool match( ExpressionT const& expr ) const
+            {
+                for( std::size_t i = 0; i < m_matchers.size(); ++i )
+                    if( !m_matchers[i]->match( expr ) )
+                        return false;
+                return true;
+            }
+            virtual std::string toString() const {
+                std::ostringstream oss;
+                oss << "( ";
+                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
+                    if( i != 0 )
+                        oss << " and ";
+                    oss << m_matchers[i]->toString();
+                }
+                oss << " )";
+                return oss.str();
+            }
+
+            AllOf operator && ( Matcher<ExpressionT> const& other ) const {
+                AllOf allOfExpr( *this );
+                allOfExpr.add( other );
+                return allOfExpr;
+            }
+
+        private:
+            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
+        };
+
+        template<typename ExpressionT>
+        class AnyOf : public MatcherImpl<AnyOf<ExpressionT>, ExpressionT> {
+        public:
+
+            AnyOf() {}
+            AnyOf( AnyOf const& other ) : m_matchers( other.m_matchers ) {}
+
+            AnyOf& add( Matcher<ExpressionT> const& matcher ) {
+                m_matchers.push_back( matcher.clone() );
+                return *this;
+            }
+            virtual bool match( ExpressionT const& expr ) const
+            {
+                for( std::size_t i = 0; i < m_matchers.size(); ++i )
+                    if( m_matchers[i]->match( expr ) )
+                        return true;
+                return false;
+            }
+            virtual std::string toString() const {
+                std::ostringstream oss;
+                oss << "( ";
+                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
+                    if( i != 0 )
+                        oss << " or ";
+                    oss << m_matchers[i]->toString();
+                }
+                oss << " )";
+                return oss.str();
+            }
+
+            AnyOf operator || ( Matcher<ExpressionT> const& other ) const {
+                AnyOf anyOfExpr( *this );
+                anyOfExpr.add( other );
+                return anyOfExpr;
+            }
+
+        private:
+            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
+        };
+
+    } // namespace Generic
+
+    template<typename ExpressionT>
+    Generic::AllOf<ExpressionT> Matcher<ExpressionT>::operator && ( Matcher<ExpressionT> const& other ) const {
+        Generic::AllOf<ExpressionT> allOfExpr;
+        allOfExpr.add( *this );
+        allOfExpr.add( other );
+        return allOfExpr;
+    }
+
+    template<typename ExpressionT>
+    Generic::AnyOf<ExpressionT> Matcher<ExpressionT>::operator || ( Matcher<ExpressionT> const& other ) const {
+        Generic::AnyOf<ExpressionT> anyOfExpr;
+        anyOfExpr.add( *this );
+        anyOfExpr.add( other );
+        return anyOfExpr;
+    }
+
+    template<typename ExpressionT>
+    Generic::Not<ExpressionT> Matcher<ExpressionT>::operator ! () const {
+        return Generic::Not<ExpressionT>( *this );
+    }
+
+    namespace StdString {
+
+        inline std::string makeString( std::string const& str ) { return str; }
+        inline std::string makeString( const char* str ) { return str ? std::string( str ) : std::string(); }
+
+        struct CasedString
+        {
+            CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity )
+            :   m_caseSensitivity( caseSensitivity ),
+                m_str( adjustString( str ) )
+            {}
+            std::string adjustString( std::string const& str ) const {
+                return m_caseSensitivity == CaseSensitive::No
+                    ? toLower( str )
+                    : str;
+
+            }
+            std::string toStringSuffix() const
+            {
+                return m_caseSensitivity == CaseSensitive::No
+                    ? " (case insensitive)"
+                    : std::string();
+            }
+            CaseSensitive::Choice m_caseSensitivity;
+            std::string m_str;
+        };
+
+        struct Equals : MatcherImpl<Equals, std::string> {
+            Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            :   m_data( str, caseSensitivity )
+            {}
+            Equals( Equals const& other ) : m_data( other.m_data ){}
+
+            virtual ~Equals();
+
+            virtual bool match( std::string const& expr ) const {
+                return m_data.m_str == m_data.adjustString( expr );;
+            }
+            virtual std::string toString() const {
+                return "equals: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct Contains : MatcherImpl<Contains, std::string> {
+            Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+            Contains( Contains const& other ) : m_data( other.m_data ){}
+
+            virtual ~Contains();
+
+            virtual bool match( std::string const& expr ) const {
+                return m_data.adjustString( expr ).find( m_data.m_str ) != std::string::npos;
+            }
+            virtual std::string toString() const {
+                return "contains: \"" + m_data.m_str  + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct StartsWith : MatcherImpl<StartsWith, std::string> {
+            StartsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+
+            StartsWith( StartsWith const& other ) : m_data( other.m_data ){}
+
+            virtual ~StartsWith();
+
+            virtual bool match( std::string const& expr ) const {
+                return startsWith( m_data.adjustString( expr ), m_data.m_str );
+            }
+            virtual std::string toString() const {
+                return "starts with: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct EndsWith : MatcherImpl<EndsWith, std::string> {
+            EndsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+            EndsWith( EndsWith const& other ) : m_data( other.m_data ){}
+
+            virtual ~EndsWith();
+
+            virtual bool match( std::string const& expr ) const {
+                return endsWith( m_data.adjustString( expr ), m_data.m_str );
+            }
+            virtual std::string toString() const {
+                return "ends with: \"" + m_data.m_str + '"' + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+    } // namespace StdString
+    } // namespace Impl
+
+    // The following functions create the actual matcher objects.
+    // This allows the types to be inferred
+    template<typename ExpressionT>
+    inline Impl::Generic::Not<ExpressionT> Not( Impl::Matcher<ExpressionT> const& m ) {
+        return Impl::Generic::Not<ExpressionT>( m );
+    }
+
+    template<typename ExpressionT>
+    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2 ) {
+        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2,
+                                                    Impl::Matcher<ExpressionT> const& m3 ) {
+        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2 ) {
+        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2,
+                                                    Impl::Matcher<ExpressionT> const& m3 ) {
+        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
+    }
+
+    inline Impl::StdString::Equals      Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Equals( str, caseSensitivity );
+    }
+    inline Impl::StdString::Equals      Equals( const char* str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Equals( Impl::StdString::makeString( str ), caseSensitivity );
+    }
+    inline Impl::StdString::Contains    Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Contains( substr, caseSensitivity );
+    }
+    inline Impl::StdString::Contains    Contains( const char* substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Contains( Impl::StdString::makeString( substr ), caseSensitivity );
+    }
+    inline Impl::StdString::StartsWith  StartsWith( std::string const& substr ) {
+        return Impl::StdString::StartsWith( substr );
+    }
+    inline Impl::StdString::StartsWith  StartsWith( const char* substr ) {
+        return Impl::StdString::StartsWith( Impl::StdString::makeString( substr ) );
+    }
+    inline Impl::StdString::EndsWith    EndsWith( std::string const& substr ) {
+        return Impl::StdString::EndsWith( substr );
+    }
+    inline Impl::StdString::EndsWith    EndsWith( const char* substr ) {
+        return Impl::StdString::EndsWith( Impl::StdString::makeString( substr ) );
+    }
+
+} // namespace Matchers
+
+using namespace Matchers;
+
+} // namespace Catch
+
+namespace Catch {
+
+    struct TestFailureException{};
+
+    template<typename T> class ExpressionLhs;
+
+    struct CopyableStream {
+        CopyableStream() {}
+        CopyableStream( CopyableStream const& other ) {
+            oss << other.oss.str();
+        }
+        CopyableStream& operator=( CopyableStream const& other ) {
+            oss.str(std::string());
+            oss << other.oss.str();
+            return *this;
+        }
+        std::ostringstream oss;
+    };
+
+    class ResultBuilder : public DecomposedExpression {
+    public:
+        ResultBuilder(  char const* macroName,
+                        SourceLineInfo const& lineInfo,
+                        char const* capturedExpression,
+                        ResultDisposition::Flags resultDisposition,
+                        char const* secondArg = "" );
+
+        template<typename T>
+        ExpressionLhs<T const&> operator <= ( T const& operand );
+        ExpressionLhs<bool> operator <= ( bool value );
+
+        template<typename T>
+        ResultBuilder& operator << ( T const& value ) {
+            m_stream.oss << value;
+            return *this;
+        }
+
+        ResultBuilder& setResultType( ResultWas::OfType result );
+        ResultBuilder& setResultType( bool result );
+
+        void endExpression( DecomposedExpression const& expr );
+
+        virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE;
+
+        AssertionResult build() const;
+        AssertionResult build( DecomposedExpression const& expr ) const;
+
+        void useActiveException( ResultDisposition::Flags resultDisposition = ResultDisposition::Normal );
+        void captureResult( ResultWas::OfType resultType );
+        void captureExpression();
+        void captureExpectedException( std::string const& expectedMessage );
+        void captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher );
+        void handleResult( AssertionResult const& result );
+        void react();
+        bool shouldDebugBreak() const;
+        bool allowThrows() const;
+
+        template<typename ArgT, typename MatcherT>
+        void captureMatch( ArgT const& arg, MatcherT const& matcher, char const* matcherString );
+
+    private:
+        AssertionInfo m_assertionInfo;
+        AssertionResultData m_data;
+        CopyableStream m_stream;
+
+        bool m_shouldDebugBreak;
+        bool m_shouldThrow;
+    };
+
+} // namespace Catch
+
+// Include after due to circular dependency:
+// #included from: catch_expression_lhs.hpp
+#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
+
+// #included from: catch_evaluate.hpp
+#define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED
+
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable:4389) // '==' : signed/unsigned mismatch
+#endif
+
+#include <cstddef>
+
+namespace Catch {
+namespace Internal {
+
+    enum Operator {
+        IsEqualTo,
+        IsNotEqualTo,
+        IsLessThan,
+        IsGreaterThan,
+        IsLessThanOrEqualTo,
+        IsGreaterThanOrEqualTo
+    };
+
+    template<Operator Op> struct OperatorTraits             { static const char* getName(){ return "*error*"; } };
+    template<> struct OperatorTraits<IsEqualTo>             { static const char* getName(){ return "=="; } };
+    template<> struct OperatorTraits<IsNotEqualTo>          { static const char* getName(){ return "!="; } };
+    template<> struct OperatorTraits<IsLessThan>            { static const char* getName(){ return "<"; } };
+    template<> struct OperatorTraits<IsGreaterThan>         { static const char* getName(){ return ">"; } };
+    template<> struct OperatorTraits<IsLessThanOrEqualTo>   { static const char* getName(){ return "<="; } };
+    template<> struct OperatorTraits<IsGreaterThanOrEqualTo>{ static const char* getName(){ return ">="; } };
+
+    template<typename T>
+    inline T& opCast(T const& t) { return const_cast<T&>(t); }
+
+// nullptr_t support based on pull request #154 from Konstantin Baumann
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+    inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; }
+#endif // CATCH_CONFIG_CPP11_NULLPTR
+
+    // So the compare overloads can be operator agnostic we convey the operator as a template
+    // enum, which is used to specialise an Evaluator for doing the comparison.
+    template<typename T1, typename T2, Operator Op>
+    class Evaluator{};
+
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs) {
+            return bool( opCast( lhs ) ==  opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsNotEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) != opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsLessThan> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) < opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsGreaterThan> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) > opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsGreaterThanOrEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) >= opCast( rhs ) );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsLessThanOrEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return bool( opCast( lhs ) <= opCast( rhs ) );
+        }
+    };
+
+    template<Operator Op, typename T1, typename T2>
+    bool applyEvaluator( T1 const& lhs, T2 const& rhs ) {
+        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
+    }
+
+    // This level of indirection allows us to specialise for integer types
+    // to avoid signed/ unsigned warnings
+
+    // "base" overload
+    template<Operator Op, typename T1, typename T2>
+    bool compare( T1 const& lhs, T2 const& rhs ) {
+        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
+    }
+
+    // unsigned X to int
+    template<Operator Op> bool compare( unsigned int lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned long lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned char lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+
+    // unsigned X to long
+    template<Operator Op> bool compare( unsigned int lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned long lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned char lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+
+    // int to unsigned X
+    template<Operator Op> bool compare( int lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( int lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( int lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+
+    // long to unsigned X
+    template<Operator Op> bool compare( long lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+
+    // pointer to long (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( long lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, long rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+
+    // pointer to int (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( int lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, int rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+    // long long to unsigned X
+    template<Operator Op> bool compare( long long lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned long long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+
+    // unsigned long long to X
+    template<Operator Op> bool compare( unsigned long long lhs, int rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, long rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, long long rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, char rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+
+    // pointer to long long (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( long long lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, long long rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+#endif // CATCH_CONFIG_CPP11_LONG_LONG
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+    // pointer to nullptr_t (when comparing against nullptr)
+    template<Operator Op, typename T> bool compare( std::nullptr_t, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( nullptr, rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, std::nullptr_t ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, nullptr );
+    }
+#endif // CATCH_CONFIG_CPP11_NULLPTR
+
+} // end of namespace Internal
+} // end of namespace Catch
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+// #included from: catch_tostring.h
+#define TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED
+
+#include <sstream>
+#include <iomanip>
+#include <limits>
+#include <vector>
+#include <cstddef>
+
+#ifdef __OBJC__
+// #included from: catch_objc_arc.hpp
+#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
+
+#import <Foundation/Foundation.h>
+
+#ifdef __has_feature
+#define CATCH_ARC_ENABLED __has_feature(objc_arc)
+#else
+#define CATCH_ARC_ENABLED 0
+#endif
+
+void arcSafeRelease( NSObject* obj );
+id performOptionalSelector( id obj, SEL sel );
+
+#if !CATCH_ARC_ENABLED
+inline void arcSafeRelease( NSObject* obj ) {
+    [obj release];
+}
+inline id performOptionalSelector( id obj, SEL sel ) {
+    if( [obj respondsToSelector: sel] )
+        return [obj performSelector: sel];
+    return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED
+#define CATCH_ARC_STRONG
+#else
+inline void arcSafeRelease( NSObject* ){}
+inline id performOptionalSelector( id obj, SEL sel ) {
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
+#endif
+    if( [obj respondsToSelector: sel] )
+        return [obj performSelector: sel];
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+    return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
+#define CATCH_ARC_STRONG __strong
+#endif
+
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_TUPLE
+#include <tuple>
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_IS_ENUM
+#include <type_traits>
+#endif
+
+namespace Catch {
+
+// Why we're here.
+template<typename T>
+std::string toString( T const& value );
+
+// Built in overloads
+
+std::string toString( std::string const& value );
+std::string toString( std::wstring const& value );
+std::string toString( const char* const value );
+std::string toString( char* const value );
+std::string toString( const wchar_t* const value );
+std::string toString( wchar_t* const value );
+std::string toString( int value );
+std::string toString( unsigned long value );
+std::string toString( unsigned int value );
+std::string toString( const double value );
+std::string toString( const float value );
+std::string toString( bool value );
+std::string toString( char value );
+std::string toString( signed char value );
+std::string toString( unsigned char value );
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+std::string toString( long long value );
+std::string toString( unsigned long long value );
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+std::string toString( std::nullptr_t );
+#endif
+
+#ifdef __OBJC__
+    std::string toString( NSString const * const& nsstring );
+    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring );
+    std::string toString( NSObject* const& nsObject );
+#endif
+
+namespace Detail {
+
+    extern const std::string unprintableString;
+
+    struct BorgType {
+        template<typename T> BorgType( T const& );
+    };
+
+    struct TrueType { char sizer[1]; };
+    struct FalseType { char sizer[2]; };
+
+    TrueType& testStreamable( std::ostream& );
+    FalseType testStreamable( FalseType );
+
+    FalseType operator<<( std::ostream const&, BorgType const& );
+
+    template<typename T>
+    struct IsStreamInsertable {
+        static std::ostream &s;
+        static T  const&t;
+        enum { value = sizeof( testStreamable(s << t) ) == sizeof( TrueType ) };
+    };
+
+#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
+    template<typename T,
+             bool IsEnum = std::is_enum<T>::value
+             >
+    struct EnumStringMaker
+    {
+        static std::string convert( T const& ) { return unprintableString; }
+    };
+
+    template<typename T>
+    struct EnumStringMaker<T,true>
+    {
+        static std::string convert( T const& v )
+        {
+            return ::Catch::toString(
+                static_cast<typename std::underlying_type<T>::type>(v)
+                );
+        }
+    };
+#endif
+    template<bool C>
+    struct StringMakerBase {
+#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
+        template<typename T>
+        static std::string convert( T const& v )
+        {
+            return EnumStringMaker<T>::convert( v );
+        }
+#else
+        template<typename T>
+        static std::string convert( T const& ) { return unprintableString; }
+#endif
+    };
+
+    template<>
+    struct StringMakerBase<true> {
+        template<typename T>
+        static std::string convert( T const& _value ) {
+            std::ostringstream oss;
+            oss << _value;
+            return oss.str();
+        }
+    };
+
+    std::string rawMemoryToString( const void *object, std::size_t size );
+
+    template<typename T>
+    inline std::string rawMemoryToString( const T& object ) {
+      return rawMemoryToString( &object, sizeof(object) );
+    }
+
+} // end namespace Detail
+
+template<typename T>
+struct StringMaker :
+    Detail::StringMakerBase<Detail::IsStreamInsertable<T>::value> {};
+
+template<typename T>
+struct StringMaker<T*> {
+    template<typename U>
+    static std::string convert( U* p ) {
+        if( !p )
+            return "NULL";
+        else
+            return Detail::rawMemoryToString( p );
+    }
+};
+
+template<typename R, typename C>
+struct StringMaker<R C::*> {
+    static std::string convert( R C::* p ) {
+        if( !p )
+            return "NULL";
+        else
+            return Detail::rawMemoryToString( p );
+    }
+};
+
+namespace Detail {
+    template<typename InputIterator>
+    std::string rangeToString( InputIterator first, InputIterator last );
+}
+
+//template<typename T, typename Allocator>
+//struct StringMaker<std::vector<T, Allocator> > {
+//    static std::string convert( std::vector<T,Allocator> const& v ) {
+//        return Detail::rangeToString( v.begin(), v.end() );
+//    }
+//};
+
+template<typename T, typename Allocator>
+std::string toString( std::vector<T,Allocator> const& v ) {
+    return Detail::rangeToString( v.begin(), v.end() );
+}
+
+#ifdef CATCH_CONFIG_CPP11_TUPLE
+
+// toString for tuples
+namespace TupleDetail {
+  template<
+      typename Tuple,
+      std::size_t N = 0,
+      bool = (N < std::tuple_size<Tuple>::value)
+      >
+  struct ElementPrinter {
+      static void print( const Tuple& tuple, std::ostream& os )
+      {
+          os << ( N ? ", " : " " )
+             << Catch::toString(std::get<N>(tuple));
+          ElementPrinter<Tuple,N+1>::print(tuple,os);
+      }
+  };
+
+  template<
+      typename Tuple,
+      std::size_t N
+      >
+  struct ElementPrinter<Tuple,N,false> {
+      static void print( const Tuple&, std::ostream& ) {}
+  };
+
+}
+
+template<typename ...Types>
+struct StringMaker<std::tuple<Types...>> {
+
+    static std::string convert( const std::tuple<Types...>& tuple )
+    {
+        std::ostringstream os;
+        os << '{';
+        TupleDetail::ElementPrinter<std::tuple<Types...>>::print( tuple, os );
+        os << " }";
+        return os.str();
+    }
+};
+#endif // CATCH_CONFIG_CPP11_TUPLE
+
+namespace Detail {
+    template<typename T>
+    std::string makeString( T const& value ) {
+        return StringMaker<T>::convert( value );
+    }
+} // end namespace Detail
+
+/// \brief converts any type to a string
+///
+/// The default template forwards on to ostringstream - except when an
+/// ostringstream overload does not exist - in which case it attempts to detect
+/// that and writes {?}.
+/// Overload (not specialise) this template for custom typs that you don't want
+/// to provide an ostream overload for.
+template<typename T>
+std::string toString( T const& value ) {
+    return StringMaker<T>::convert( value );
+}
+
+    namespace Detail {
+    template<typename InputIterator>
+    std::string rangeToString( InputIterator first, InputIterator last ) {
+        std::ostringstream oss;
+        oss << "{ ";
+        if( first != last ) {
+            oss << Catch::toString( *first );
+            for( ++first ; first != last ; ++first )
+                oss << ", " << Catch::toString( *first );
+        }
+        oss << " }";
+        return oss.str();
+    }
+}
+
+} // end namespace Catch
+
+namespace Catch {
+
+template<typename LhsT, Internal::Operator Op, typename RhsT>
+class BinaryExpression;
+
+template<typename ArgT, typename MatcherT>
+class MatchExpression;
+
+// Wraps the LHS of an expression and overloads comparison operators
+// for also capturing those and RHS (if any)
+template<typename T>
+class ExpressionLhs : public DecomposedExpression {
+public:
+    ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs ), m_truthy(false) {}
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsEqualTo, RhsT const&>
+    operator == ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsNotEqualTo, RhsT const&>
+    operator != ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsNotEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsLessThan, RhsT const&>
+    operator < ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsLessThan>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsGreaterThan, RhsT const&>
+    operator > ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsGreaterThan>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsLessThanOrEqualTo, RhsT const&>
+    operator <= ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsLessThanOrEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    BinaryExpression<T, Internal::IsGreaterThanOrEqualTo, RhsT const&>
+    operator >= ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsGreaterThanOrEqualTo>( rhs );
+    }
+
+    BinaryExpression<T, Internal::IsEqualTo, bool> operator == ( bool rhs ) {
+        return captureExpression<Internal::IsEqualTo>( rhs );
+    }
+
+    BinaryExpression<T, Internal::IsNotEqualTo, bool> operator != ( bool rhs ) {
+        return captureExpression<Internal::IsNotEqualTo>( rhs );
+    }
+
+    void endExpression() {
+        m_truthy = m_lhs ? true : false;
+        m_rb
+            .setResultType( m_truthy )
+            .endExpression( *this );
+    }
+
+    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
+        dest = Catch::toString( m_truthy );
+    }
+
+private:
+    template<Internal::Operator Op, typename RhsT>
+    BinaryExpression<T, Op, RhsT&> captureExpression( RhsT& rhs ) const {
+        return BinaryExpression<T, Op, RhsT&>( m_rb, m_lhs, rhs );
+    }
+
+    template<Internal::Operator Op>
+    BinaryExpression<T, Op, bool> captureExpression( bool rhs ) const {
+        return BinaryExpression<T, Op, bool>( m_rb, m_lhs, rhs );
+    }
+
+private:
+    ResultBuilder& m_rb;
+    T m_lhs;
+    bool m_truthy;
+};
+
+template<typename LhsT, Internal::Operator Op, typename RhsT>
+class BinaryExpression : public DecomposedExpression {
+public:
+    BinaryExpression( ResultBuilder& rb, LhsT lhs, RhsT rhs )
+        : m_rb( rb ), m_lhs( lhs ), m_rhs( rhs ) {}
+
+    void endExpression() const {
+        m_rb
+            .setResultType( Internal::compare<Op>( m_lhs, m_rhs ) )
+            .endExpression( *this );
+    }
+
+    virtual bool isBinaryExpression() const CATCH_OVERRIDE {
+        return true;
+    }
+
+    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
+        std::string lhs = Catch::toString( m_lhs );
+        std::string rhs = Catch::toString( m_rhs );
+        char delim = lhs.size() + rhs.size() < 40 &&
+                     lhs.find('\n') == std::string::npos &&
+                     rhs.find('\n') == std::string::npos ? ' ' : '\n';
+        dest.reserve( 7 + lhs.size() + rhs.size() );
+                   // 2 for spaces around operator
+                   // 2 for operator
+                   // 2 for parentheses (conditionally added later)
+                   // 1 for negation (conditionally added later)
+        dest = lhs;
+        dest += delim;
+        dest += Internal::OperatorTraits<Op>::getName();
+        dest += delim;
+        dest += rhs;
+    }
+
+private:
+    ResultBuilder& m_rb;
+    LhsT m_lhs;
+    RhsT m_rhs;
+};
+
+template<typename ArgT, typename MatcherT>
+class MatchExpression : public DecomposedExpression {
+public:
+    MatchExpression( ArgT arg, MatcherT matcher, char const* matcherString )
+        : m_arg( arg ), m_matcher( matcher ), m_matcherString( matcherString ) {}
+
+    virtual bool isBinaryExpression() const CATCH_OVERRIDE {
+        return true;
+    }
+
+    virtual void reconstructExpression( std::string& dest ) const CATCH_OVERRIDE {
+        std::string matcherAsString = m_matcher.toString();
+        dest = Catch::toString( m_arg );
+        dest += ' ';
+        if( matcherAsString == Detail::unprintableString )
+            dest += m_matcherString;
+        else
+            dest += matcherAsString;
+    }
+
+private:
+    ArgT m_arg;
+    MatcherT m_matcher;
+    char const* m_matcherString;
+};
+
+} // end namespace Catch
+
+
+namespace Catch {
+
+    template<typename T>
+    inline ExpressionLhs<T const&> ResultBuilder::operator <= ( T const& operand ) {
+        return ExpressionLhs<T const&>( *this, operand );
+    }
+
+    inline ExpressionLhs<bool> ResultBuilder::operator <= ( bool value ) {
+        return ExpressionLhs<bool>( *this, value );
+    }
+
+    template<typename ArgT, typename MatcherT>
+    inline void ResultBuilder::captureMatch( ArgT const& arg, MatcherT const& matcher,
+                                             char const* matcherString ) {
+        MatchExpression<ArgT const&, MatcherT const&> expr( arg, matcher, matcherString );
+        setResultType( matcher.match( arg ) );
+        endExpression( expr );
+    }
+
+} // namespace Catch
+
+// #included from: catch_message.h
+#define TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct MessageInfo {
+        MessageInfo(    std::string const& _macroName,
+                        SourceLineInfo const& _lineInfo,
+                        ResultWas::OfType _type );
+
+        std::string macroName;
+        SourceLineInfo lineInfo;
+        ResultWas::OfType type;
+        std::string message;
+        unsigned int sequence;
+
+        bool operator == ( MessageInfo const& other ) const {
+            return sequence == other.sequence;
+        }
+        bool operator < ( MessageInfo const& other ) const {
+            return sequence < other.sequence;
+        }
+    private:
+        static unsigned int globalCount;
+    };
+
+    struct MessageBuilder {
+        MessageBuilder( std::string const& macroName,
+                        SourceLineInfo const& lineInfo,
+                        ResultWas::OfType type )
+        : m_info( macroName, lineInfo, type )
+        {}
+
+        template<typename T>
+        MessageBuilder& operator << ( T const& value ) {
+            m_stream << value;
+            return *this;
+        }
+
+        MessageInfo m_info;
+        std::ostringstream m_stream;
+    };
+
+    class ScopedMessage {
+    public:
+        ScopedMessage( MessageBuilder const& builder );
+        ScopedMessage( ScopedMessage const& other );
+        ~ScopedMessage();
+
+        MessageInfo m_info;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_interfaces_capture.h
+#define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    class TestCase;
+    class AssertionResult;
+    struct AssertionInfo;
+    struct SectionInfo;
+    struct SectionEndInfo;
+    struct MessageInfo;
+    class ScopedMessageBuilder;
+    struct Counts;
+
+    struct IResultCapture {
+
+        virtual ~IResultCapture();
+
+        virtual void assertionEnded( AssertionResult const& result ) = 0;
+        virtual bool sectionStarted(    SectionInfo const& sectionInfo,
+                                        Counts& assertions ) = 0;
+        virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0;
+        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0;
+        virtual void pushScopedMessage( MessageInfo const& message ) = 0;
+        virtual void popScopedMessage( MessageInfo const& message ) = 0;
+
+        virtual std::string getCurrentTestName() const = 0;
+        virtual const AssertionResult* getLastResult() const = 0;
+
+        virtual void handleFatalErrorCondition( std::string const& message ) = 0;
+    };
+
+    IResultCapture& getResultCapture();
+}
+
+// #included from: catch_debugger.h
+#define TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED
+
+// #included from: catch_platform.h
+#define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED
+
+#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
+#  define CATCH_PLATFORM_MAC
+#elif  defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
+#  define CATCH_PLATFORM_IPHONE
+#elif defined(linux) || defined(__linux) || defined(__linux__)
+#  define CATCH_PLATFORM_LINUX
+#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
+#  define CATCH_PLATFORM_WINDOWS
+#  if !defined(NOMINMAX) && !defined(CATCH_CONFIG_NO_NOMINMAX)
+#    define CATCH_DEFINES_NOMINMAX
+#  endif
+#  if !defined(WIN32_LEAN_AND_MEAN) && !defined(CATCH_CONFIG_NO_WIN32_LEAN_AND_MEAN)
+#    define CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+#  endif
+#endif
+
+#include <string>
+
+namespace Catch{
+
+    bool isDebuggerActive();
+    void writeToDebugConsole( std::string const& text );
+}
+
+#ifdef CATCH_PLATFORM_MAC
+
+    // The following code snippet based on:
+    // http://cocoawithlove.com/2008/03/break-into-debugger.html
+    #if defined(__ppc64__) || defined(__ppc__)
+        #define CATCH_TRAP() \
+                __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \
+                : : : "memory","r0","r3","r4" )
+    #else
+        #define CATCH_TRAP() __asm__("int $3\n" : : )
+    #endif
+
+#elif defined(CATCH_PLATFORM_LINUX)
+    // If we can use inline assembler, do it because this allows us to break
+    // directly at the location of the failing check instead of breaking inside
+    // raise() called from it, i.e. one stack frame below.
+    #if defined(__GNUC__) && (defined(__i386) || defined(__x86_64))
+        #define CATCH_TRAP() asm volatile ("int $3")
+    #else // Fall back to the generic way.
+        #include <signal.h>
+
+        #define CATCH_TRAP() raise(SIGTRAP)
+    #endif
+#elif defined(_MSC_VER)
+    #define CATCH_TRAP() __debugbreak()
+#elif defined(__MINGW32__)
+    extern "C" __declspec(dllimport) void __stdcall DebugBreak();
+    #define CATCH_TRAP() DebugBreak()
+#endif
+
+#ifdef CATCH_TRAP
+    #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { CATCH_TRAP(); }
+#else
+    #define CATCH_BREAK_INTO_DEBUGGER() Catch::alwaysTrue();
+#endif
+
+// #included from: catch_interfaces_runner.h
+#define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED
+
+namespace Catch {
+    class TestCase;
+
+    struct IRunner {
+        virtual ~IRunner();
+        virtual bool aborting() const = 0;
+    };
+}
+
+// #included from: catch_type_traits.hpp
+#define TWOBLUECUBES_CATCH_TYPE_TRAITS_HPP_INCLUDED
+
+#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
+#include <type_traits>
+#endif
+
+namespace Catch {
+
+#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
+
+     template <typename T>
+     using add_lvalue_reference = std::add_lvalue_reference<T>;
+
+     template <typename T>
+     using add_const = std::add_const<T>;
+
+#else
+
+    template <typename T>
+    struct add_const {
+        typedef const T type;
+    };
+
+    template <typename T>
+    struct add_lvalue_reference {
+        typedef T& type;
+    };
+    template <typename T>
+    struct add_lvalue_reference<T&> {
+        typedef T& type;
+    };
+    // No && overload, because that is C++11, in which case we have
+    // proper type_traits implementation from the standard library
+
+#endif
+
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// In the event of a failure works out if the debugger needs to be invoked
+// and/or an exception thrown and takes appropriate action.
+// This needs to be done as a macro so the debugger will stop in the user
+// source code rather than in Catch library code
+#define INTERNAL_CATCH_REACT( resultBuilder ) \
+    if( resultBuilder.shouldDebugBreak() ) CATCH_BREAK_INTO_DEBUGGER(); \
+    resultBuilder.react();
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        try { \
+            CATCH_INTERNAL_SUPPRESS_PARENTHESES_WARNINGS \
+            ( __catchResult <= expr ).endExpression(); \
+        } \
+        catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::isTrue( false && static_cast<bool>( !!(expr) ) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look
+    // The double negation silences MSVC's C4800 warning, the static_cast forces short-circuit evaluation if the type has overloaded &&.
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_IF( expr, resultDisposition, macroName ) \
+    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
+    if( Catch::getResultCapture().getLastResult()->succeeded() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_ELSE( expr, resultDisposition, macroName ) \
+    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
+    if( !Catch::getResultCapture().getLastResult()->succeeded() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_NO_THROW( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        try { \
+            static_cast<void>(expr); \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        } \
+        catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_THROWS( expr, resultDisposition, matcher, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition, #matcher ); \
+        if( __catchResult.allowThrows() ) \
+            try { \
+                static_cast<void>(expr); \
+                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
+            } \
+            catch( ... ) { \
+                __catchResult.captureExpectedException( matcher ); \
+            } \
+        else \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr ", " #exceptionType, resultDisposition ); \
+        if( __catchResult.allowThrows() ) \
+            try { \
+                static_cast<void>(expr); \
+                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
+            } \
+            catch( Catch::add_const<Catch::add_lvalue_reference<exceptionType>::type>::type ) { \
+                __catchResult.captureResult( Catch::ResultWas::Ok ); \
+            } \
+            catch( ... ) { \
+                __catchResult.useActiveException( resultDisposition ); \
+            } \
+        else \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, ... ) \
+        do { \
+            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
+            __catchResult << __VA_ARGS__ + ::Catch::StreamEndStop(); \
+            __catchResult.captureResult( messageType ); \
+            INTERNAL_CATCH_REACT( __catchResult ) \
+        } while( Catch::alwaysFalse() )
+#else
+    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \
+        do { \
+            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
+            __catchResult << log + ::Catch::StreamEndStop(); \
+            __catchResult.captureResult( messageType ); \
+            INTERNAL_CATCH_REACT( __catchResult ) \
+        } while( Catch::alwaysFalse() )
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_INFO( log, macroName ) \
+    Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage ) = Catch::MessageBuilder( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log;
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CHECK_THAT( arg, matcher, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \
+        try { \
+            __catchResult.captureMatch( arg, matcher, #matcher ); \
+        } catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+// #included from: internal/catch_section.h
+#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED
+
+// #included from: catch_section_info.h
+#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED
+
+// #included from: catch_totals.hpp
+#define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED
+
+#include <cstddef>
+
+namespace Catch {
+
+    struct Counts {
+        Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {}
+
+        Counts operator - ( Counts const& other ) const {
+            Counts diff;
+            diff.passed = passed - other.passed;
+            diff.failed = failed - other.failed;
+            diff.failedButOk = failedButOk - other.failedButOk;
+            return diff;
+        }
+        Counts& operator += ( Counts const& other ) {
+            passed += other.passed;
+            failed += other.failed;
+            failedButOk += other.failedButOk;
+            return *this;
+        }
+
+        std::size_t total() const {
+            return passed + failed + failedButOk;
+        }
+        bool allPassed() const {
+            return failed == 0 && failedButOk == 0;
+        }
+        bool allOk() const {
+            return failed == 0;
+        }
+
+        std::size_t passed;
+        std::size_t failed;
+        std::size_t failedButOk;
+    };
+
+    struct Totals {
+
+        Totals operator - ( Totals const& other ) const {
+            Totals diff;
+            diff.assertions = assertions - other.assertions;
+            diff.testCases = testCases - other.testCases;
+            return diff;
+        }
+
+        Totals delta( Totals const& prevTotals ) const {
+            Totals diff = *this - prevTotals;
+            if( diff.assertions.failed > 0 )
+                ++diff.testCases.failed;
+            else if( diff.assertions.failedButOk > 0 )
+                ++diff.testCases.failedButOk;
+            else
+                ++diff.testCases.passed;
+            return diff;
+        }
+
+        Totals& operator += ( Totals const& other ) {
+            assertions += other.assertions;
+            testCases += other.testCases;
+            return *this;
+        }
+
+        Counts assertions;
+        Counts testCases;
+    };
+}
+
+#include <string>
+
+namespace Catch {
+
+    struct SectionInfo {
+        SectionInfo
+            (   SourceLineInfo const& _lineInfo,
+                std::string const& _name,
+                std::string const& _description = std::string() );
+
+        std::string name;
+        std::string description;
+        SourceLineInfo lineInfo;
+    };
+
+    struct SectionEndInfo {
+        SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prevAssertions, double _durationInSeconds )
+        : sectionInfo( _sectionInfo ), prevAssertions( _prevAssertions ), durationInSeconds( _durationInSeconds )
+        {}
+
+        SectionInfo sectionInfo;
+        Counts prevAssertions;
+        double durationInSeconds;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_timer.h
+#define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED
+
+#ifdef CATCH_PLATFORM_WINDOWS
+typedef unsigned long long uint64_t;
+#else
+#include <stdint.h>
+#endif
+
+namespace Catch {
+
+    class Timer {
+    public:
+        Timer() : m_ticks( 0 ) {}
+        void start();
+        unsigned int getElapsedMicroseconds() const;
+        unsigned int getElapsedMilliseconds() const;
+        double getElapsedSeconds() const;
+
+    private:
+        uint64_t m_ticks;
+    };
+
+} // namespace Catch
+
+#include <string>
+
+namespace Catch {
+
+    class Section : NonCopyable {
+    public:
+        Section( SectionInfo const& info );
+        ~Section();
+
+        // This indicates whether the section should be executed or not
+        operator bool() const;
+
+    private:
+        SectionInfo m_info;
+
+        std::string m_name;
+        Counts m_assertions;
+        bool m_sectionIncluded;
+        Timer m_timer;
+    };
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define INTERNAL_CATCH_SECTION( ... ) \
+        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
+#else
+    #define INTERNAL_CATCH_SECTION( name, desc ) \
+        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) )
+#endif
+
+// #included from: internal/catch_generators.hpp
+#define TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED
+
+#include <iterator>
+#include <vector>
+#include <string>
+#include <stdlib.h>
+
+namespace Catch {
+
+template<typename T>
+struct IGenerator {
+    virtual ~IGenerator() {}
+    virtual T getValue( std::size_t index ) const = 0;
+    virtual std::size_t size () const = 0;
+};
+
+template<typename T>
+class BetweenGenerator : public IGenerator<T> {
+public:
+    BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){}
+
+    virtual T getValue( std::size_t index ) const {
+        return m_from+static_cast<int>( index );
+    }
+
+    virtual std::size_t size() const {
+        return static_cast<std::size_t>( 1+m_to-m_from );
+    }
+
+private:
+
+    T m_from;
+    T m_to;
+};
+
+template<typename T>
+class ValuesGenerator : public IGenerator<T> {
+public:
+    ValuesGenerator(){}
+
+    void add( T value ) {
+        m_values.push_back( value );
+    }
+
+    virtual T getValue( std::size_t index ) const {
+        return m_values[index];
+    }
+
+    virtual std::size_t size() const {
+        return m_values.size();
+    }
+
+private:
+    std::vector<T> m_values;
+};
+
+template<typename T>
+class CompositeGenerator {
+public:
+    CompositeGenerator() : m_totalSize( 0 ) {}
+
+    // *** Move semantics, similar to auto_ptr ***
+    CompositeGenerator( CompositeGenerator& other )
+    :   m_fileInfo( other.m_fileInfo ),
+        m_totalSize( 0 )
+    {
+        move( other );
+    }
+
+    CompositeGenerator& setFileInfo( const char* fileInfo ) {
+        m_fileInfo = fileInfo;
+        return *this;
+    }
+
+    ~CompositeGenerator() {
+        deleteAll( m_composed );
+    }
+
+    operator T () const {
+        size_t overallIndex = getCurrentContext().getGeneratorIndex( m_fileInfo, m_totalSize );
+
+        typename std::vector<const IGenerator<T>*>::const_iterator it = m_composed.begin();
+        typename std::vector<const IGenerator<T>*>::const_iterator itEnd = m_composed.end();
+        for( size_t index = 0; it != itEnd; ++it )
+        {
+            const IGenerator<T>* generator = *it;
+            if( overallIndex >= index && overallIndex < index + generator->size() )
+            {
+                return generator->getValue( overallIndex-index );
+            }
+            index += generator->size();
+        }
+        CATCH_INTERNAL_ERROR( "Indexed past end of generated range" );
+        return T(); // Suppress spurious "not all control paths return a value" warning in Visual Studio - if you know how to fix this please do so
+    }
+
+    void add( const IGenerator<T>* generator ) {
+        m_totalSize += generator->size();
+        m_composed.push_back( generator );
+    }
+
+    CompositeGenerator& then( CompositeGenerator& other ) {
+        move( other );
+        return *this;
+    }
+
+    CompositeGenerator& then( T value ) {
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( value );
+        add( valuesGen );
+        return *this;
+    }
+
+private:
+
+    void move( CompositeGenerator& other ) {
+        std::copy( other.m_composed.begin(), other.m_composed.end(), std::back_inserter( m_composed ) );
+        m_totalSize += other.m_totalSize;
+        other.m_composed.clear();
+    }
+
+    std::vector<const IGenerator<T>*> m_composed;
+    std::string m_fileInfo;
+    size_t m_totalSize;
+};
+
+namespace Generators
+{
+    template<typename T>
+    CompositeGenerator<T> between( T from, T to ) {
+        CompositeGenerator<T> generators;
+        generators.add( new BetweenGenerator<T>( from, to ) );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2 ) {
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2, T val3 ){
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        valuesGen->add( val3 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2, T val3, T val4 ) {
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        valuesGen->add( val3 );
+        valuesGen->add( val4 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+} // end namespace Generators
+
+using namespace Generators;
+
+} // end namespace Catch
+
+#define INTERNAL_CATCH_LINESTR2( line ) #line
+#define INTERNAL_CATCH_LINESTR( line ) INTERNAL_CATCH_LINESTR2( line )
+
+#define INTERNAL_CATCH_GENERATE( expr ) expr.setFileInfo( __FILE__ "(" INTERNAL_CATCH_LINESTR( __LINE__ ) ")" )
+
+// #included from: internal/catch_interfaces_exception.h
+#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED
+
+#include <string>
+#include <vector>
+
+// #included from: catch_interfaces_registry_hub.h
+#define TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    class TestCase;
+    struct ITestCaseRegistry;
+    struct IExceptionTranslatorRegistry;
+    struct IExceptionTranslator;
+    struct IReporterRegistry;
+    struct IReporterFactory;
+
+    struct IRegistryHub {
+        virtual ~IRegistryHub();
+
+        virtual IReporterRegistry const& getReporterRegistry() const = 0;
+        virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0;
+        virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0;
+    };
+
+    struct IMutableRegistryHub {
+        virtual ~IMutableRegistryHub();
+        virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) = 0;
+        virtual void registerListener( Ptr<IReporterFactory> const& factory ) = 0;
+        virtual void registerTest( TestCase const& testInfo ) = 0;
+        virtual void registerTranslator( const IExceptionTranslator* translator ) = 0;
+    };
+
+    IRegistryHub& getRegistryHub();
+    IMutableRegistryHub& getMutableRegistryHub();
+    void cleanUp();
+    std::string translateActiveException();
+
+}
+
+namespace Catch {
+
+    typedef std::string(*exceptionTranslateFunction)();
+
+    struct IExceptionTranslator;
+    typedef std::vector<const IExceptionTranslator*> ExceptionTranslators;
+
+    struct IExceptionTranslator {
+        virtual ~IExceptionTranslator();
+        virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0;
+    };
+
+    struct IExceptionTranslatorRegistry {
+        virtual ~IExceptionTranslatorRegistry();
+
+        virtual std::string translateActiveException() const = 0;
+    };
+
+    class ExceptionTranslatorRegistrar {
+        template<typename T>
+        class ExceptionTranslator : public IExceptionTranslator {
+        public:
+
+            ExceptionTranslator( std::string(*translateFunction)( T& ) )
+            : m_translateFunction( translateFunction )
+            {}
+
+            virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const CATCH_OVERRIDE {
+                try {
+                    if( it == itEnd )
+                        throw;
+                    else
+                        return (*it)->translate( it+1, itEnd );
+                }
+                catch( T& ex ) {
+                    return m_translateFunction( ex );
+                }
+            }
+
+        protected:
+            std::string(*m_translateFunction)( T& );
+        };
+
+    public:
+        template<typename T>
+        ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
+            getMutableRegistryHub().registerTranslator
+                ( new ExceptionTranslator<T>( translateFunction ) );
+        }
+    };
+}
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_TRANSLATE_EXCEPTION2( translatorName, signature ) \
+    static std::string translatorName( signature ); \
+    namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &translatorName ); }\
+    static std::string translatorName( signature )
+
+#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION2( INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ), signature )
+
+// #included from: internal/catch_approx.hpp
+#define TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED
+
+#include <cmath>
+#include <limits>
+
+#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
+#include <type_traits>
+#endif
+
+namespace Catch {
+namespace Detail {
+
+    class Approx {
+    public:
+        explicit Approx ( double value )
+        :   m_epsilon( std::numeric_limits<float>::epsilon()*100 ),
+            m_scale( 1.0 ),
+            m_value( value )
+        {}
+
+        Approx( Approx const& other )
+        :   m_epsilon( other.m_epsilon ),
+            m_scale( other.m_scale ),
+            m_value( other.m_value )
+        {}
+
+        static Approx custom() {
+            return Approx( 0 );
+        }
+
+        Approx operator()( double value ) {
+            Approx approx( value );
+            approx.epsilon( m_epsilon );
+            approx.scale( m_scale );
+            return approx;
+        }
+
+#if defined(CATCH_CONFIG_CPP11_TYPE_TRAITS)
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator == ( const T& lhs, Approx const& rhs ) {
+            // Thanks to Richard Harris for his help refining this formula
+            auto lhs_v = double(lhs);
+            return std::fabs( lhs_v - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( std::fabs(lhs_v), std::fabs(rhs.m_value) ) );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator == ( Approx const& lhs, const T& rhs ) {
+            return operator==( rhs, lhs );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator != ( T lhs, Approx const& rhs ) {
+            return !operator==( lhs, rhs );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator != ( Approx const& lhs, T rhs ) {
+            return !operator==( rhs, lhs );
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator <= ( T lhs, Approx const& rhs )
+        {
+          return double(lhs) < rhs.m_value || lhs == rhs;
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator <= ( Approx const& lhs, T rhs )
+        {
+          return lhs.m_value < double(rhs) || lhs == rhs;
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator >= ( T lhs, Approx const& rhs )
+        {
+          return double(lhs) > rhs.m_value || lhs == rhs;
+        }
+
+        template <typename T, typename = typename std::enable_if<std::is_constructible<double, T>::value>::type>
+        friend bool operator >= ( Approx const& lhs, T rhs )
+        {
+          return lhs.m_value > double(rhs) || lhs == rhs;
+        }
+#else
+        friend bool operator == ( double lhs, Approx const& rhs ) {
+            // Thanks to Richard Harris for his help refining this formula
+            return std::fabs( lhs - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( std::fabs(lhs), std::fabs(rhs.m_value) ) );
+        }
+
+        friend bool operator == ( Approx const& lhs, double rhs ) {
+            return operator==( rhs, lhs );
+        }
+
+        friend bool operator != ( double lhs, Approx const& rhs ) {
+            return !operator==( lhs, rhs );
+        }
+
+        friend bool operator != ( Approx const& lhs, double rhs ) {
+            return !operator==( rhs, lhs );
+        }
+
+        friend bool operator <= ( double lhs, Approx const& rhs )
+        {
+          return lhs < rhs.m_value || lhs == rhs;
+        }
+
+        friend bool operator <= ( Approx const& lhs, double rhs )
+        {
+          return lhs.m_value < rhs || lhs == rhs;
+        }
+
+        friend bool operator >= ( double lhs, Approx const& rhs )
+        {
+          return lhs > rhs.m_value || lhs == rhs;
+        }
+
+        friend bool operator >= ( Approx const& lhs, double rhs )
+        {
+          return lhs.m_value > rhs || lhs == rhs;
+        }
+#endif
+
+        Approx& epsilon( double newEpsilon ) {
+            m_epsilon = newEpsilon;
+            return *this;
+        }
+
+        Approx& scale( double newScale ) {
+            m_scale = newScale;
+            return *this;
+        }
+
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << "Approx( " << Catch::toString( m_value ) << " )";
+            return oss.str();
+        }
+
+    private:
+        double m_epsilon;
+        double m_scale;
+        double m_value;
+    };
+}
+
+template<>
+inline std::string toString<Detail::Approx>( Detail::Approx const& value ) {
+    return value.toString();
+}
+
+} // end namespace Catch
+
+// #included from: internal/catch_interfaces_tag_alias_registry.h
+#define TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+// #included from: catch_tag_alias.h
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct TagAlias {
+        TagAlias( std::string _tag, SourceLineInfo _lineInfo ) : tag( _tag ), lineInfo( _lineInfo ) {}
+
+        std::string tag;
+        SourceLineInfo lineInfo;
+    };
+
+    struct RegistrarForTagAliases {
+        RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+    };
+
+} // end namespace Catch
+
+#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); }
+// #included from: catch_option.hpp
+#define TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED
+
+namespace Catch {
+
+    // An optional type
+    template<typename T>
+    class Option {
+    public:
+        Option() : nullableValue( CATCH_NULL ) {}
+        Option( T const& _value )
+        : nullableValue( new( storage ) T( _value ) )
+        {}
+        Option( Option const& _other )
+        : nullableValue( _other ? new( storage ) T( *_other ) : CATCH_NULL )
+        {}
+
+        ~Option() {
+            reset();
+        }
+
+        Option& operator= ( Option const& _other ) {
+            if( &_other != this ) {
+                reset();
+                if( _other )
+                    nullableValue = new( storage ) T( *_other );
+            }
+            return *this;
+        }
+        Option& operator = ( T const& _value ) {
+            reset();
+            nullableValue = new( storage ) T( _value );
+            return *this;
+        }
+
+        void reset() {
+            if( nullableValue )
+                nullableValue->~T();
+            nullableValue = CATCH_NULL;
+        }
+
+        T& operator*() { return *nullableValue; }
+        T const& operator*() const { return *nullableValue; }
+        T* operator->() { return nullableValue; }
+        const T* operator->() const { return nullableValue; }
+
+        T valueOr( T const& defaultValue ) const {
+            return nullableValue ? *nullableValue : defaultValue;
+        }
+
+        bool some() const { return nullableValue != CATCH_NULL; }
+        bool none() const { return nullableValue == CATCH_NULL; }
+
+        bool operator !() const { return nullableValue == CATCH_NULL; }
+        operator SafeBool::type() const {
+            return SafeBool::makeSafe( some() );
+        }
+
+    private:
+        T* nullableValue;
+        char storage[sizeof(T)];
+    };
+
+} // end namespace Catch
+
+namespace Catch {
+
+    struct ITagAliasRegistry {
+        virtual ~ITagAliasRegistry();
+        virtual Option<TagAlias> find( std::string const& alias ) const = 0;
+        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0;
+
+        static ITagAliasRegistry const& get();
+    };
+
+} // end namespace Catch
+
+// These files are included here so the single_include script doesn't put them
+// in the conditionally compiled sections
+// #included from: internal/catch_test_case_info.h
+#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
+
+#include <string>
+#include <set>
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    struct ITestCase;
+
+    struct TestCaseInfo {
+        enum SpecialProperties{
+            None = 0,
+            IsHidden = 1 << 1,
+            ShouldFail = 1 << 2,
+            MayFail = 1 << 3,
+            Throws = 1 << 4,
+            NonPortable = 1 << 5
+        };
+
+        TestCaseInfo(   std::string const& _name,
+                        std::string const& _className,
+                        std::string const& _description,
+                        std::set<std::string> const& _tags,
+                        SourceLineInfo const& _lineInfo );
+
+        TestCaseInfo( TestCaseInfo const& other );
+
+        friend void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags );
+
+        bool isHidden() const;
+        bool throws() const;
+        bool okToFail() const;
+        bool expectedToFail() const;
+
+        std::string name;
+        std::string className;
+        std::string description;
+        std::set<std::string> tags;
+        std::set<std::string> lcaseTags;
+        std::string tagsAsString;
+        SourceLineInfo lineInfo;
+        SpecialProperties properties;
+    };
+
+    class TestCase : public TestCaseInfo {
+    public:
+
+        TestCase( ITestCase* testCase, TestCaseInfo const& info );
+        TestCase( TestCase const& other );
+
+        TestCase withName( std::string const& _newName ) const;
+
+        void invoke() const;
+
+        TestCaseInfo const& getTestCaseInfo() const;
+
+        void swap( TestCase& other );
+        bool operator == ( TestCase const& other ) const;
+        bool operator < ( TestCase const& other ) const;
+        TestCase& operator = ( TestCase const& other );
+
+    private:
+        Ptr<ITestCase> test;
+    };
+
+    TestCase makeTestCase(  ITestCase* testCase,
+                            std::string const& className,
+                            std::string const& name,
+                            std::string const& description,
+                            SourceLineInfo const& lineInfo );
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+
+#ifdef __OBJC__
+// #included from: internal/catch_objc.hpp
+#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
+
+#import <objc/runtime.h>
+
+#include <string>
+
+// NB. Any general catch headers included here must be included
+// in catch.hpp first to make sure they are included by the single
+// header for non obj-usage
+
+///////////////////////////////////////////////////////////////////////////////
+// This protocol is really only here for (self) documenting purposes, since
+// all its methods are optional.
+@protocol OcFixture
+
+@optional
+
+-(void) setUp;
+-(void) tearDown;
+
+@end
+
+namespace Catch {
+
+    class OcMethod : public SharedImpl<ITestCase> {
+
+    public:
+        OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {}
+
+        virtual void invoke() const {
+            id obj = [[m_cls alloc] init];
+
+            performOptionalSelector( obj, @selector(setUp)  );
+            performOptionalSelector( obj, m_sel );
+            performOptionalSelector( obj, @selector(tearDown)  );
+
+            arcSafeRelease( obj );
+        }
+    private:
+        virtual ~OcMethod() {}
+
+        Class m_cls;
+        SEL m_sel;
+    };
+
+    namespace Detail{
+
+        inline std::string getAnnotation(   Class cls,
+                                            std::string const& annotationName,
+                                            std::string const& testCaseName ) {
+            NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()];
+            SEL sel = NSSelectorFromString( selStr );
+            arcSafeRelease( selStr );
+            id value = performOptionalSelector( cls, sel );
+            if( value )
+                return [(NSString*)value UTF8String];
+            return "";
+        }
+    }
+
+    inline size_t registerTestMethods() {
+        size_t noTestMethods = 0;
+        int noClasses = objc_getClassList( CATCH_NULL, 0 );
+
+        Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses);
+        objc_getClassList( classes, noClasses );
+
+        for( int c = 0; c < noClasses; c++ ) {
+            Class cls = classes[c];
+            {
+                u_int count;
+                Method* methods = class_copyMethodList( cls, &count );
+                for( u_int m = 0; m < count ; m++ ) {
+                    SEL selector = method_getName(methods[m]);
+                    std::string methodName = sel_getName(selector);
+                    if( startsWith( methodName, "Catch_TestCase_" ) ) {
+                        std::string testCaseName = methodName.substr( 15 );
+                        std::string name = Detail::getAnnotation( cls, "Name", testCaseName );
+                        std::string desc = Detail::getAnnotation( cls, "Description", testCaseName );
+                        const char* className = class_getName( cls );
+
+                        getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, name.c_str(), desc.c_str(), SourceLineInfo() ) );
+                        noTestMethods++;
+                    }
+                }
+                free(methods);
+            }
+        }
+        return noTestMethods;
+    }
+
+    namespace Matchers {
+        namespace Impl {
+        namespace NSStringMatchers {
+
+            template<typename MatcherT>
+            struct StringHolder : MatcherImpl<MatcherT, NSString*>{
+                StringHolder( NSString* substr ) : m_substr( [substr copy] ){}
+                StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){}
+                StringHolder() {
+                    arcSafeRelease( m_substr );
+                }
+
+                NSString* m_substr;
+            };
+
+            struct Equals : StringHolder<Equals> {
+                Equals( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str isEqualToString:m_substr];
+                }
+
+                virtual std::string toString() const {
+                    return "equals string: " + Catch::toString( m_substr );
+                }
+            };
+
+            struct Contains : StringHolder<Contains> {
+                Contains( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location != NSNotFound;
+                }
+
+                virtual std::string toString() const {
+                    return "contains string: " + Catch::toString( m_substr );
+                }
+            };
+
+            struct StartsWith : StringHolder<StartsWith> {
+                StartsWith( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location == 0;
+                }
+
+                virtual std::string toString() const {
+                    return "starts with: " + Catch::toString( m_substr );
+                }
+            };
+            struct EndsWith : StringHolder<EndsWith> {
+                EndsWith( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location == [str length] - [m_substr length];
+                }
+
+                virtual std::string toString() const {
+                    return "ends with: " + Catch::toString( m_substr );
+                }
+            };
+
+        } // namespace NSStringMatchers
+        } // namespace Impl
+
+        inline Impl::NSStringMatchers::Equals
+            Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); }
+
+        inline Impl::NSStringMatchers::Contains
+            Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); }
+
+        inline Impl::NSStringMatchers::StartsWith
+            StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); }
+
+        inline Impl::NSStringMatchers::EndsWith
+            EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); }
+
+    } // namespace Matchers
+
+    using namespace Matchers;
+
+} // namespace Catch
+
+///////////////////////////////////////////////////////////////////////////////
+#define OC_TEST_CASE( name, desc )\
++(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Name_test ) \
+{\
+return @ name; \
+}\
++(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Description_test ) \
+{ \
+return @ desc; \
+} \
+-(void) INTERNAL_CATCH_UNIQUE_NAME( Catch_TestCase_test )
+
+#endif
+
+#ifdef CATCH_IMPL
+// #included from: internal/catch_impl.hpp
+#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
+
+// Collect all the implementation files together here
+// These are the equivalent of what would usually be cpp files
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wweak-vtables"
+#endif
+
+// #included from: ../catch_session.hpp
+#define TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED
+
+// #included from: internal/catch_commandline.hpp
+#define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED
+
+// #included from: catch_config.hpp
+#define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED
+
+// #included from: catch_test_spec_parser.hpp
+#define TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+// #included from: catch_test_spec.hpp
+#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+// #included from: catch_wildcard_pattern.hpp
+#define TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED
+
+#include <stdexcept>
+
+namespace Catch
+{
+    class WildcardPattern {
+        enum WildcardPosition {
+            NoWildcard = 0,
+            WildcardAtStart = 1,
+            WildcardAtEnd = 2,
+            WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd
+        };
+
+    public:
+
+        WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity )
+        :   m_caseSensitivity( caseSensitivity ),
+            m_wildcard( NoWildcard ),
+            m_pattern( adjustCase( pattern ) )
+        {
+            if( startsWith( m_pattern, '*' ) ) {
+                m_pattern = m_pattern.substr( 1 );
+                m_wildcard = WildcardAtStart;
+            }
+            if( endsWith( m_pattern, '*' ) ) {
+                m_pattern = m_pattern.substr( 0, m_pattern.size()-1 );
+                m_wildcard = static_cast<WildcardPosition>( m_wildcard | WildcardAtEnd );
+            }
+        }
+        virtual ~WildcardPattern();
+        virtual bool matches( std::string const& str ) const {
+            switch( m_wildcard ) {
+                case NoWildcard:
+                    return m_pattern == adjustCase( str );
+                case WildcardAtStart:
+                    return endsWith( adjustCase( str ), m_pattern );
+                case WildcardAtEnd:
+                    return startsWith( adjustCase( str ), m_pattern );
+                case WildcardAtBothEnds:
+                    return contains( adjustCase( str ), m_pattern );
+            }
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunreachable-code"
+#endif
+            throw std::logic_error( "Unknown enum" );
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+        }
+    private:
+        std::string adjustCase( std::string const& str ) const {
+            return m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str;
+        }
+        CaseSensitive::Choice m_caseSensitivity;
+        WildcardPosition m_wildcard;
+        std::string m_pattern;
+    };
+}
+
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    class TestSpec {
+        struct Pattern : SharedImpl<> {
+            virtual ~Pattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const = 0;
+        };
+        class NamePattern : public Pattern {
+        public:
+            NamePattern( std::string const& name )
+            : m_wildcardPattern( toLower( name ), CaseSensitive::No )
+            {}
+            virtual ~NamePattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const {
+                return m_wildcardPattern.matches( toLower( testCase.name ) );
+            }
+        private:
+            WildcardPattern m_wildcardPattern;
+        };
+
+        class TagPattern : public Pattern {
+        public:
+            TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
+            virtual ~TagPattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const {
+                return testCase.lcaseTags.find( m_tag ) != testCase.lcaseTags.end();
+            }
+        private:
+            std::string m_tag;
+        };
+
+        class ExcludedPattern : public Pattern {
+        public:
+            ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_underlyingPattern( underlyingPattern ) {}
+            virtual ~ExcludedPattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const { return !m_underlyingPattern->matches( testCase ); }
+        private:
+            Ptr<Pattern> m_underlyingPattern;
+        };
+
+        struct Filter {
+            std::vector<Ptr<Pattern> > m_patterns;
+
+            bool matches( TestCaseInfo const& testCase ) const {
+                // All patterns in a filter must match for the filter to be a match
+                for( std::vector<Ptr<Pattern> >::const_iterator it = m_patterns.begin(), itEnd = m_patterns.end(); it != itEnd; ++it ) {
+                    if( !(*it)->matches( testCase ) )
+                        return false;
+                }
+                return true;
+            }
+        };
+
+    public:
+        bool hasFilters() const {
+            return !m_filters.empty();
+        }
+        bool matches( TestCaseInfo const& testCase ) const {
+            // A TestSpec matches if any filter matches
+            for( std::vector<Filter>::const_iterator it = m_filters.begin(), itEnd = m_filters.end(); it != itEnd; ++it )
+                if( it->matches( testCase ) )
+                    return true;
+            return false;
+        }
+
+    private:
+        std::vector<Filter> m_filters;
+
+        friend class TestSpecParser;
+    };
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+namespace Catch {
+
+    class TestSpecParser {
+        enum Mode{ None, Name, QuotedName, Tag, EscapedName };
+        Mode m_mode;
+        bool m_exclusion;
+        std::size_t m_start, m_pos;
+        std::string m_arg;
+        std::vector<std::size_t> m_escapeChars;
+        TestSpec::Filter m_currentFilter;
+        TestSpec m_testSpec;
+        ITagAliasRegistry const* m_tagAliases;
+
+    public:
+        TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {}
+
+        TestSpecParser& parse( std::string const& arg ) {
+            m_mode = None;
+            m_exclusion = false;
+            m_start = std::string::npos;
+            m_arg = m_tagAliases->expandAliases( arg );
+            m_escapeChars.clear();
+            for( m_pos = 0; m_pos < m_arg.size(); ++m_pos )
+                visitChar( m_arg[m_pos] );
+            if( m_mode == Name )
+                addPattern<TestSpec::NamePattern>();
+            return *this;
+        }
+        TestSpec testSpec() {
+            addFilter();
+            return m_testSpec;
+        }
+    private:
+        void visitChar( char c ) {
+            if( m_mode == None ) {
+                switch( c ) {
+                case ' ': return;
+                case '~': m_exclusion = true; return;
+                case '[': return startNewMode( Tag, ++m_pos );
+                case '"': return startNewMode( QuotedName, ++m_pos );
+                case '\\': return escape();
+                default: startNewMode( Name, m_pos ); break;
+                }
+            }
+            if( m_mode == Name ) {
+                if( c == ',' ) {
+                    addPattern<TestSpec::NamePattern>();
+                    addFilter();
+                }
+                else if( c == '[' ) {
+                    if( subString() == "exclude:" )
+                        m_exclusion = true;
+                    else
+                        addPattern<TestSpec::NamePattern>();
+                    startNewMode( Tag, ++m_pos );
+                }
+                else if( c == '\\' )
+                    escape();
+            }
+            else if( m_mode == EscapedName )
+                m_mode = Name;
+            else if( m_mode == QuotedName && c == '"' )
+                addPattern<TestSpec::NamePattern>();
+            else if( m_mode == Tag && c == ']' )
+                addPattern<TestSpec::TagPattern>();
+        }
+        void startNewMode( Mode mode, std::size_t start ) {
+            m_mode = mode;
+            m_start = start;
+        }
+        void escape() {
+            if( m_mode == None )
+                m_start = m_pos;
+            m_mode = EscapedName;
+            m_escapeChars.push_back( m_pos );
+        }
+        std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); }
+        template<typename T>
+        void addPattern() {
+            std::string token = subString();
+            for( size_t i = 0; i < m_escapeChars.size(); ++i )
+                token = token.substr( 0, m_escapeChars[i]-i ) + token.substr( m_escapeChars[i]+1-i );
+            m_escapeChars.clear();
+            if( startsWith( token, "exclude:" ) ) {
+                m_exclusion = true;
+                token = token.substr( 8 );
+            }
+            if( !token.empty() ) {
+                Ptr<TestSpec::Pattern> pattern = new T( token );
+                if( m_exclusion )
+                    pattern = new TestSpec::ExcludedPattern( pattern );
+                m_currentFilter.m_patterns.push_back( pattern );
+            }
+            m_exclusion = false;
+            m_mode = None;
+        }
+        void addFilter() {
+            if( !m_currentFilter.m_patterns.empty() ) {
+                m_testSpec.m_filters.push_back( m_currentFilter );
+                m_currentFilter = TestSpec::Filter();
+            }
+        }
+    };
+    inline TestSpec parseTestSpec( std::string const& arg ) {
+        return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec();
+    }
+
+} // namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+// #included from: catch_interfaces_config.h
+#define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED
+
+#include <iosfwd>
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    struct Verbosity { enum Level {
+        NoOutput = 0,
+        Quiet,
+        Normal
+    }; };
+
+    struct WarnAbout { enum What {
+        Nothing = 0x00,
+        NoAssertions = 0x01
+    }; };
+
+    struct ShowDurations { enum OrNot {
+        DefaultForReporter,
+        Always,
+        Never
+    }; };
+    struct RunTests { enum InWhatOrder {
+        InDeclarationOrder,
+        InLexicographicalOrder,
+        InRandomOrder
+    }; };
+    struct UseColour { enum YesOrNo {
+        Auto,
+        Yes,
+        No
+    }; };
+
+    class TestSpec;
+
+    struct IConfig : IShared {
+
+        virtual ~IConfig();
+
+        virtual bool allowThrows() const = 0;
+        virtual std::ostream& stream() const = 0;
+        virtual std::string name() const = 0;
+        virtual bool includeSuccessfulResults() const = 0;
+        virtual bool shouldDebugBreak() const = 0;
+        virtual bool warnAboutMissingAssertions() const = 0;
+        virtual int abortAfter() const = 0;
+        virtual bool showInvisibles() const = 0;
+        virtual ShowDurations::OrNot showDurations() const = 0;
+        virtual TestSpec const& testSpec() const = 0;
+        virtual RunTests::InWhatOrder runOrder() const = 0;
+        virtual unsigned int rngSeed() const = 0;
+        virtual UseColour::YesOrNo useColour() const = 0;
+        virtual std::vector<std::string> const& getSectionsToRun() const = 0;
+
+    };
+}
+
+// #included from: catch_stream.h
+#define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
+
+// #included from: catch_streambuf.h
+#define TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED
+
+#include <streambuf>
+
+namespace Catch {
+
+    class StreamBufBase : public std::streambuf {
+    public:
+        virtual ~StreamBufBase() CATCH_NOEXCEPT;
+    };
+}
+
+#include <streambuf>
+#include <ostream>
+#include <fstream>
+#include <memory>
+
+namespace Catch {
+
+    std::ostream& cout();
+    std::ostream& cerr();
+
+    struct IStream {
+        virtual ~IStream() CATCH_NOEXCEPT;
+        virtual std::ostream& stream() const = 0;
+    };
+
+    class FileStream : public IStream {
+        mutable std::ofstream m_ofs;
+    public:
+        FileStream( std::string const& filename );
+        virtual ~FileStream() CATCH_NOEXCEPT;
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+
+    class CoutStream : public IStream {
+        mutable std::ostream m_os;
+    public:
+        CoutStream();
+        virtual ~CoutStream() CATCH_NOEXCEPT;
+
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+
+    class DebugOutStream : public IStream {
+        CATCH_AUTO_PTR( StreamBufBase ) m_streamBuf;
+        mutable std::ostream m_os;
+    public:
+        DebugOutStream();
+        virtual ~DebugOutStream() CATCH_NOEXCEPT;
+
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+}
+
+#include <memory>
+#include <vector>
+#include <string>
+#include <stdexcept>
+
+#ifndef CATCH_CONFIG_CONSOLE_WIDTH
+#define CATCH_CONFIG_CONSOLE_WIDTH 80
+#endif
+
+namespace Catch {
+
+    struct ConfigData {
+
+        ConfigData()
+        :   listTests( false ),
+            listTags( false ),
+            listReporters( false ),
+            listTestNamesOnly( false ),
+            showSuccessfulTests( false ),
+            shouldDebugBreak( false ),
+            noThrow( false ),
+            showHelp( false ),
+            showInvisibles( false ),
+            filenamesAsTags( false ),
+            abortAfter( -1 ),
+            rngSeed( 0 ),
+            verbosity( Verbosity::Normal ),
+            warnings( WarnAbout::Nothing ),
+            showDurations( ShowDurations::DefaultForReporter ),
+            runOrder( RunTests::InDeclarationOrder ),
+            useColour( UseColour::Auto )
+        {}
+
+        bool listTests;
+        bool listTags;
+        bool listReporters;
+        bool listTestNamesOnly;
+
+        bool showSuccessfulTests;
+        bool shouldDebugBreak;
+        bool noThrow;
+        bool showHelp;
+        bool showInvisibles;
+        bool filenamesAsTags;
+
+        int abortAfter;
+        unsigned int rngSeed;
+
+        Verbosity::Level verbosity;
+        WarnAbout::What warnings;
+        ShowDurations::OrNot showDurations;
+        RunTests::InWhatOrder runOrder;
+        UseColour::YesOrNo useColour;
+
+        std::string outputFilename;
+        std::string name;
+        std::string processName;
+
+        std::vector<std::string> reporterNames;
+        std::vector<std::string> testsOrTags;
+        std::vector<std::string> sectionsToRun;
+    };
+
+    class Config : public SharedImpl<IConfig> {
+    private:
+        Config( Config const& other );
+        Config& operator = ( Config const& other );
+        virtual void dummy();
+    public:
+
+        Config()
+        {}
+
+        Config( ConfigData const& data )
+        :   m_data( data ),
+            m_stream( openStream() )
+        {
+            if( !data.testsOrTags.empty() ) {
+                TestSpecParser parser( ITagAliasRegistry::get() );
+                for( std::size_t i = 0; i < data.testsOrTags.size(); ++i )
+                    parser.parse( data.testsOrTags[i] );
+                m_testSpec = parser.testSpec();
+            }
+        }
+
+        virtual ~Config() {}
+
+        std::string const& getFilename() const {
+            return m_data.outputFilename ;
+        }
+
+        bool listTests() const { return m_data.listTests; }
+        bool listTestNamesOnly() const { return m_data.listTestNamesOnly; }
+        bool listTags() const { return m_data.listTags; }
+        bool listReporters() const { return m_data.listReporters; }
+
+        std::string getProcessName() const { return m_data.processName; }
+
+        std::vector<std::string> const& getReporterNames() const { return m_data.reporterNames; }
+        std::vector<std::string> const& getSectionsToRun() const CATCH_OVERRIDE { return m_data.sectionsToRun; }
+
+        virtual TestSpec const& testSpec() const CATCH_OVERRIDE { return m_testSpec; }
+
+        bool showHelp() const { return m_data.showHelp; }
+
+        // IConfig interface
+        virtual bool allowThrows() const CATCH_OVERRIDE                 { return !m_data.noThrow; }
+        virtual std::ostream& stream() const CATCH_OVERRIDE             { return m_stream->stream(); }
+        virtual std::string name() const CATCH_OVERRIDE                 { return m_data.name.empty() ? m_data.processName : m_data.name; }
+        virtual bool includeSuccessfulResults() const CATCH_OVERRIDE    { return m_data.showSuccessfulTests; }
+        virtual bool warnAboutMissingAssertions() const CATCH_OVERRIDE  { return m_data.warnings & WarnAbout::NoAssertions; }
+        virtual ShowDurations::OrNot showDurations() const CATCH_OVERRIDE { return m_data.showDurations; }
+        virtual RunTests::InWhatOrder runOrder() const CATCH_OVERRIDE   { return m_data.runOrder; }
+        virtual unsigned int rngSeed() const CATCH_OVERRIDE             { return m_data.rngSeed; }
+        virtual UseColour::YesOrNo useColour() const CATCH_OVERRIDE     { return m_data.useColour; }
+        virtual bool shouldDebugBreak() const CATCH_OVERRIDE { return m_data.shouldDebugBreak; }
+        virtual int abortAfter() const CATCH_OVERRIDE { return m_data.abortAfter; }
+        virtual bool showInvisibles() const CATCH_OVERRIDE { return m_data.showInvisibles; }
+
+    private:
+
+        IStream const* openStream() {
+            if( m_data.outputFilename.empty() )
+                return new CoutStream();
+            else if( m_data.outputFilename[0] == '%' ) {
+                if( m_data.outputFilename == "%debug" )
+                    return new DebugOutStream();
+                else
+                    throw std::domain_error( "Unrecognised stream: " + m_data.outputFilename );
+            }
+            else
+                return new FileStream( m_data.outputFilename );
+        }
+        ConfigData m_data;
+
+        CATCH_AUTO_PTR( IStream const ) m_stream;
+        TestSpec m_testSpec;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_clara.h
+#define TWOBLUECUBES_CATCH_CLARA_H_INCLUDED
+
+// Use Catch's value for console width (store Clara's off to the side, if present)
+#ifdef CLARA_CONFIG_CONSOLE_WIDTH
+#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CLARA_CONFIG_CONSOLE_WIDTH
+#undef CLARA_CONFIG_CONSOLE_WIDTH
+#endif
+#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
+
+// Declare Clara inside the Catch namespace
+#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch {
+// #included from: ../external/clara.h
+
+// Version 0.0.2.4
+
+// Only use header guard if we are not using an outer namespace
+#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE)
+
+#ifndef STITCH_CLARA_OPEN_NAMESPACE
+#define TWOBLUECUBES_CLARA_H_INCLUDED
+#define STITCH_CLARA_OPEN_NAMESPACE
+#define STITCH_CLARA_CLOSE_NAMESPACE
+#else
+#define STITCH_CLARA_CLOSE_NAMESPACE }
+#endif
+
+#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE
+
+// ----------- #included from tbc_text_format.h -----------
+
+// Only use header guard if we are not using an outer namespace
+#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE)
+#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+#define TBC_TEXT_FORMAT_H_INCLUDED
+#endif
+
+#include <string>
+#include <vector>
+#include <sstream>
+#include <algorithm>
+
+// Use optional outer namespace
+#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
+#endif
+
+namespace Tbc {
+
+#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
+    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+    struct TextAttributes {
+        TextAttributes()
+        :   initialIndent( std::string::npos ),
+            indent( 0 ),
+            width( consoleWidth-1 ),
+            tabChar( '\t' )
+        {}
+
+        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
+        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
+        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
+        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
+
+        std::size_t initialIndent;  // indent of first line, or npos
+        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
+        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
+        char tabChar;               // If this char is seen the indent is changed to current pos
+    };
+
+    class Text {
+    public:
+        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
+        : attr( _attr )
+        {
+            std::string wrappableChars = " [({.,/|\\-";
+            std::size_t indent = _attr.initialIndent != std::string::npos
+                ? _attr.initialIndent
+                : _attr.indent;
+            std::string remainder = _str;
+
+            while( !remainder.empty() ) {
+                if( lines.size() >= 1000 ) {
+                    lines.push_back( "... message truncated due to excessive size" );
+                    return;
+                }
+                std::size_t tabPos = std::string::npos;
+                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
+                std::size_t pos = remainder.find_first_of( '\n' );
+                if( pos <= width ) {
+                    width = pos;
+                }
+                pos = remainder.find_last_of( _attr.tabChar, width );
+                if( pos != std::string::npos ) {
+                    tabPos = pos;
+                    if( remainder[width] == '\n' )
+                        width--;
+                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
+                }
+
+                if( width == remainder.size() ) {
+                    spliceLine( indent, remainder, width );
+                }
+                else if( remainder[width] == '\n' ) {
+                    spliceLine( indent, remainder, width );
+                    if( width <= 1 || remainder.size() != 1 )
+                        remainder = remainder.substr( 1 );
+                    indent = _attr.indent;
+                }
+                else {
+                    pos = remainder.find_last_of( wrappableChars, width );
+                    if( pos != std::string::npos && pos > 0 ) {
+                        spliceLine( indent, remainder, pos );
+                        if( remainder[0] == ' ' )
+                            remainder = remainder.substr( 1 );
+                    }
+                    else {
+                        spliceLine( indent, remainder, width-1 );
+                        lines.back() += "-";
+                    }
+                    if( lines.size() == 1 )
+                        indent = _attr.indent;
+                    if( tabPos != std::string::npos )
+                        indent += tabPos;
+                }
+            }
+        }
+
+        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
+            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
+            _remainder = _remainder.substr( _pos );
+        }
+
+        typedef std::vector<std::string>::const_iterator const_iterator;
+
+        const_iterator begin() const { return lines.begin(); }
+        const_iterator end() const { return lines.end(); }
+        std::string const& last() const { return lines.back(); }
+        std::size_t size() const { return lines.size(); }
+        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << *this;
+            return oss.str();
+        }
+
+        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
+            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
+                it != itEnd; ++it ) {
+                if( it != _text.begin() )
+                    _stream << "\n";
+                _stream << *it;
+            }
+            return _stream;
+        }
+
+    private:
+        std::string str;
+        TextAttributes attr;
+        std::vector<std::string> lines;
+    };
+
+} // end namespace Tbc
+
+#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+} // end outer namespace
+#endif
+
+#endif // TBC_TEXT_FORMAT_H_INCLUDED
+
+// ----------- end of #include from tbc_text_format.h -----------
+// ........... back in clara.h
+
+#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE
+
+// ----------- #included from clara_compilers.h -----------
+
+#ifndef TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+#define TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+
+// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
+// The following features are defined:
+//
+// CLARA_CONFIG_CPP11_NULLPTR : is nullptr supported?
+// CLARA_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
+// CLARA_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
+// CLARA_CONFIG_CPP11_OVERRIDE : is override supported?
+// CLARA_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
+
+// CLARA_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
+
+// CLARA_CONFIG_VARIADIC_MACROS : are variadic macros supported?
+
+// In general each macro has a _NO_<feature name> form
+// (e.g. CLARA_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
+// Many features, at point of detection, define an _INTERNAL_ macro, so they
+// can be combined, en-mass, with the _NO_ forms later.
+
+// All the C++11 features can be disabled with CLARA_CONFIG_NO_CPP11
+
+#ifdef __clang__
+
+#if __has_feature(cxx_nullptr)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+#if __has_feature(cxx_noexcept)
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#endif
+
+#endif // __clang__
+
+////////////////////////////////////////////////////////////////////////////////
+// GCC
+#ifdef __GNUC__
+
+#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+// - otherwise more recent versions define __cplusplus >= 201103L
+// and will get picked up below
+
+#endif // __GNUC__
+
+////////////////////////////////////////////////////////////////////////////////
+// Visual C++
+#ifdef _MSC_VER
+
+#if (_MSC_VER >= 1600)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#endif
+
+#endif // _MSC_VER
+
+////////////////////////////////////////////////////////////////////////////////
+// C++ language feature support
+
+// catch all support for C++11
+#if defined(__cplusplus) && __cplusplus >= 201103L
+
+#define CLARA_CPP11_OR_GREATER
+
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+#ifndef CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#endif
+
+#ifndef CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#endif
+
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE)
+#define CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE
+#endif
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
+#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#endif // __cplusplus >= 201103L
+
+// Now set the actual defines based on the above + anything the user has configured
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NO_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_NULLPTR
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_NOEXCEPT
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_GENERATED_METHODS
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_OVERRIDE) && !defined(CLARA_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_OVERRIDE
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_UNIQUE_PTR) && !defined(CLARA_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+// noexcept support:
+#if defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_NOEXCEPT)
+#define CLARA_NOEXCEPT noexcept
+#  define CLARA_NOEXCEPT_IS(x) noexcept(x)
+#else
+#define CLARA_NOEXCEPT throw()
+#  define CLARA_NOEXCEPT_IS(x)
+#endif
+
+// nullptr support
+#ifdef CLARA_CONFIG_CPP11_NULLPTR
+#define CLARA_NULL nullptr
+#else
+#define CLARA_NULL NULL
+#endif
+
+// override support
+#ifdef CLARA_CONFIG_CPP11_OVERRIDE
+#define CLARA_OVERRIDE override
+#else
+#define CLARA_OVERRIDE
+#endif
+
+// unique_ptr support
+#ifdef CLARA_CONFIG_CPP11_UNIQUE_PTR
+#   define CLARA_AUTO_PTR( T ) std::unique_ptr<T>
+#else
+#   define CLARA_AUTO_PTR( T ) std::auto_ptr<T>
+#endif
+
+#endif // TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+
+// ----------- end of #include from clara_compilers.h -----------
+// ........... back in clara.h
+
+#include <map>
+#include <stdexcept>
+#include <memory>
+
+#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
+#define CLARA_PLATFORM_WINDOWS
+#endif
+
+// Use optional outer namespace
+#ifdef STITCH_CLARA_OPEN_NAMESPACE
+STITCH_CLARA_OPEN_NAMESPACE
+#endif
+
+namespace Clara {
+
+    struct UnpositionalTag {};
+
+    extern UnpositionalTag _;
+
+#ifdef CLARA_CONFIG_MAIN
+    UnpositionalTag _;
+#endif
+
+    namespace Detail {
+
+#ifdef CLARA_CONSOLE_WIDTH
+    const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+        using namespace Tbc;
+
+        inline bool startsWith( std::string const& str, std::string const& prefix ) {
+            return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix;
+        }
+
+        template<typename T> struct RemoveConstRef{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T&>{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T const&>{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T const>{ typedef T type; };
+
+        template<typename T>    struct IsBool       { static const bool value = false; };
+        template<>              struct IsBool<bool> { static const bool value = true; };
+
+        template<typename T>
+        void convertInto( std::string const& _source, T& _dest ) {
+            std::stringstream ss;
+            ss << _source;
+            ss >> _dest;
+            if( ss.fail() )
+                throw std::runtime_error( "Unable to convert " + _source + " to destination type" );
+        }
+        inline void convertInto( std::string const& _source, std::string& _dest ) {
+            _dest = _source;
+        }
+        char toLowerCh(char c) {
+            return static_cast<char>( ::tolower( c ) );
+        }
+        inline void convertInto( std::string const& _source, bool& _dest ) {
+            std::string sourceLC = _source;
+            std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), toLowerCh );
+            if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" )
+                _dest = true;
+            else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" )
+                _dest = false;
+            else
+                throw std::runtime_error( "Expected a boolean value but did not recognise:\n  '" + _source + "'" );
+        }
+
+        template<typename ConfigT>
+        struct IArgFunction {
+            virtual ~IArgFunction() {}
+#ifdef CLARA_CONFIG_CPP11_GENERATED_METHODS
+            IArgFunction()                      = default;
+            IArgFunction( IArgFunction const& ) = default;
+#endif
+            virtual void set( ConfigT& config, std::string const& value ) const = 0;
+            virtual bool takesArg() const = 0;
+            virtual IArgFunction* clone() const = 0;
+        };
+
+        template<typename ConfigT>
+        class BoundArgFunction {
+        public:
+            BoundArgFunction() : functionObj( CLARA_NULL ) {}
+            BoundArgFunction( IArgFunction<ConfigT>* _functionObj ) : functionObj( _functionObj ) {}
+            BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : CLARA_NULL ) {}
+            BoundArgFunction& operator = ( BoundArgFunction const& other ) {
+                IArgFunction<ConfigT>* newFunctionObj = other.functionObj ? other.functionObj->clone() : CLARA_NULL;
+                delete functionObj;
+                functionObj = newFunctionObj;
+                return *this;
+            }
+            ~BoundArgFunction() { delete functionObj; }
+
+            void set( ConfigT& config, std::string const& value ) const {
+                functionObj->set( config, value );
+            }
+            bool takesArg() const { return functionObj->takesArg(); }
+
+            bool isSet() const {
+                return functionObj != CLARA_NULL;
+            }
+        private:
+            IArgFunction<ConfigT>* functionObj;
+        };
+
+        template<typename C>
+        struct NullBinder : IArgFunction<C>{
+            virtual void set( C&, std::string const& ) const {}
+            virtual bool takesArg() const { return true; }
+            virtual IArgFunction<C>* clone() const { return new NullBinder( *this ); }
+        };
+
+        template<typename C, typename M>
+        struct BoundDataMember : IArgFunction<C>{
+            BoundDataMember( M C::* _member ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                convertInto( stringValue, p.*member );
+            }
+            virtual bool takesArg() const { return !IsBool<M>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundDataMember( *this ); }
+            M C::* member;
+        };
+        template<typename C, typename M>
+        struct BoundUnaryMethod : IArgFunction<C>{
+            BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                typename RemoveConstRef<M>::type value;
+                convertInto( stringValue, value );
+                (p.*member)( value );
+            }
+            virtual bool takesArg() const { return !IsBool<M>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundUnaryMethod( *this ); }
+            void (C::*member)( M );
+        };
+        template<typename C>
+        struct BoundNullaryMethod : IArgFunction<C>{
+            BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                bool value;
+                convertInto( stringValue, value );
+                if( value )
+                    (p.*member)();
+            }
+            virtual bool takesArg() const { return false; }
+            virtual IArgFunction<C>* clone() const { return new BoundNullaryMethod( *this ); }
+            void (C::*member)();
+        };
+
+        template<typename C>
+        struct BoundUnaryFunction : IArgFunction<C>{
+            BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {}
+            virtual void set( C& obj, std::string const& stringValue ) const {
+                bool value;
+                convertInto( stringValue, value );
+                if( value )
+                    function( obj );
+            }
+            virtual bool takesArg() const { return false; }
+            virtual IArgFunction<C>* clone() const { return new BoundUnaryFunction( *this ); }
+            void (*function)( C& );
+        };
+
+        template<typename C, typename T>
+        struct BoundBinaryFunction : IArgFunction<C>{
+            BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {}
+            virtual void set( C& obj, std::string const& stringValue ) const {
+                typename RemoveConstRef<T>::type value;
+                convertInto( stringValue, value );
+                function( obj, value );
+            }
+            virtual bool takesArg() const { return !IsBool<T>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }
+            void (*function)( C&, T );
+        };
+
+    } // namespace Detail
+
+    inline std::vector<std::string> argsToVector( int argc, char const* const* const argv ) {
+        std::vector<std::string> args( static_cast<std::size_t>( argc ) );
+        for( std::size_t i = 0; i < static_cast<std::size_t>( argc ); ++i )
+            args[i] = argv[i];
+
+        return args;
+    }
+
+    class Parser {
+        enum Mode { None, MaybeShortOpt, SlashOpt, ShortOpt, LongOpt, Positional };
+        Mode mode;
+        std::size_t from;
+        bool inQuotes;
+    public:
+
+        struct Token {
+            enum Type { Positional, ShortOpt, LongOpt };
+            Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {}
+            Type type;
+            std::string data;
+        };
+
+        Parser() : mode( None ), from( 0 ), inQuotes( false ){}
+
+        void parseIntoTokens( std::vector<std::string> const& args, std::vector<Token>& tokens ) {
+            const std::string doubleDash = "--";
+            for( std::size_t i = 1; i < args.size() && args[i] != doubleDash; ++i )
+                parseIntoTokens( args[i], tokens);
+        }
+
+        void parseIntoTokens( std::string const& arg, std::vector<Token>& tokens ) {
+            for( std::size_t i = 0; i <= arg.size(); ++i ) {
+                char c = arg[i];
+                if( c == '"' )
+                    inQuotes = !inQuotes;
+                mode = handleMode( i, c, arg, tokens );
+            }
+        }
+        Mode handleMode( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
+            switch( mode ) {
+                case None: return handleNone( i, c );
+                case MaybeShortOpt: return handleMaybeShortOpt( i, c );
+                case ShortOpt:
+                case LongOpt:
+                case SlashOpt: return handleOpt( i, c, arg, tokens );
+                case Positional: return handlePositional( i, c, arg, tokens );
+                default: throw std::logic_error( "Unknown mode" );
+            }
+        }
+
+        Mode handleNone( std::size_t i, char c ) {
+            if( inQuotes ) {
+                from = i;
+                return Positional;
+            }
+            switch( c ) {
+                case '-': return MaybeShortOpt;
+#ifdef CLARA_PLATFORM_WINDOWS
+                case '/': from = i+1; return SlashOpt;
+#endif
+                default: from = i; return Positional;
+            }
+        }
+        Mode handleMaybeShortOpt( std::size_t i, char c ) {
+            switch( c ) {
+                case '-': from = i+1; return LongOpt;
+                default: from = i; return ShortOpt;
+            }
+        }
+        Mode handleOpt( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
+            if( std::string( ":=\0", 3 ).find( c ) == std::string::npos )
+                return mode;
+
+            std::string optName = arg.substr( from, i-from );
+            if( mode == ShortOpt )
+                for( std::size_t j = 0; j < optName.size(); ++j )
+                    tokens.push_back( Token( Token::ShortOpt, optName.substr( j, 1 ) ) );
+            else if( mode == SlashOpt && optName.size() == 1 )
+                tokens.push_back( Token( Token::ShortOpt, optName ) );
+            else
+                tokens.push_back( Token( Token::LongOpt, optName ) );
+            return None;
+        }
+        Mode handlePositional( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
+            if( inQuotes || std::string( "\0", 1 ).find( c ) == std::string::npos )
+                return mode;
+
+            std::string data = arg.substr( from, i-from );
+            tokens.push_back( Token( Token::Positional, data ) );
+            return None;
+        }
+    };
+
+    template<typename ConfigT>
+    struct CommonArgProperties {
+        CommonArgProperties() {}
+        CommonArgProperties( Detail::BoundArgFunction<ConfigT> const& _boundField ) : boundField( _boundField ) {}
+
+        Detail::BoundArgFunction<ConfigT> boundField;
+        std::string description;
+        std::string detail;
+        std::string placeholder; // Only value if boundField takes an arg
+
+        bool takesArg() const {
+            return !placeholder.empty();
+        }
+        void validate() const {
+            if( !boundField.isSet() )
+                throw std::logic_error( "option not bound" );
+        }
+    };
+    struct OptionArgProperties {
+        std::vector<std::string> shortNames;
+        std::string longName;
+
+        bool hasShortName( std::string const& shortName ) const {
+            return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end();
+        }
+        bool hasLongName( std::string const& _longName ) const {
+            return _longName == longName;
+        }
+    };
+    struct PositionalArgProperties {
+        PositionalArgProperties() : position( -1 ) {}
+        int position; // -1 means non-positional (floating)
+
+        bool isFixedPositional() const {
+            return position != -1;
+        }
+    };
+
+    template<typename ConfigT>
+    class CommandLine {
+
+        struct Arg : CommonArgProperties<ConfigT>, OptionArgProperties, PositionalArgProperties {
+            Arg() {}
+            Arg( Detail::BoundArgFunction<ConfigT> const& _boundField ) : CommonArgProperties<ConfigT>( _boundField ) {}
+
+            using CommonArgProperties<ConfigT>::placeholder; // !TBD
+
+            std::string dbgName() const {
+                if( !longName.empty() )
+                    return "--" + longName;
+                if( !shortNames.empty() )
+                    return "-" + shortNames[0];
+                return "positional args";
+            }
+            std::string commands() const {
+                std::ostringstream oss;
+                bool first = true;
+                std::vector<std::string>::const_iterator it = shortNames.begin(), itEnd = shortNames.end();
+                for(; it != itEnd; ++it ) {
+                    if( first )
+                        first = false;
+                    else
+                        oss << ", ";
+                    oss << "-" << *it;
+                }
+                if( !longName.empty() ) {
+                    if( !first )
+                        oss << ", ";
+                    oss << "--" << longName;
+                }
+                if( !placeholder.empty() )
+                    oss << " <" << placeholder << ">";
+                return oss.str();
+            }
+        };
+
+        typedef CLARA_AUTO_PTR( Arg ) ArgAutoPtr;
+
+        friend void addOptName( Arg& arg, std::string const& optName )
+        {
+            if( optName.empty() )
+                return;
+            if( Detail::startsWith( optName, "--" ) ) {
+                if( !arg.longName.empty() )
+                    throw std::logic_error( "Only one long opt may be specified. '"
+                        + arg.longName
+                        + "' already specified, now attempting to add '"
+                        + optName + "'" );
+                arg.longName = optName.substr( 2 );
+            }
+            else if( Detail::startsWith( optName, "-" ) )
+                arg.shortNames.push_back( optName.substr( 1 ) );
+            else
+                throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" );
+        }
+        friend void setPositionalArg( Arg& arg, int position )
+        {
+            arg.position = position;
+        }
+
+        class ArgBuilder {
+        public:
+            ArgBuilder( Arg* arg ) : m_arg( arg ) {}
+
+            // Bind a non-boolean data member (requires placeholder string)
+            template<typename C, typename M>
+            void bind( M C::* field, std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundDataMember<C,M>( field );
+                m_arg->placeholder = placeholder;
+            }
+            // Bind a boolean data member (no placeholder required)
+            template<typename C>
+            void bind( bool C::* field ) {
+                m_arg->boundField = new Detail::BoundDataMember<C,bool>( field );
+            }
+
+            // Bind a method taking a single, non-boolean argument (requires a placeholder string)
+            template<typename C, typename M>
+            void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundUnaryMethod<C,M>( unaryMethod );
+                m_arg->placeholder = placeholder;
+            }
+
+            // Bind a method taking a single, boolean argument (no placeholder string required)
+            template<typename C>
+            void bind( void (C::* unaryMethod)( bool ) ) {
+                m_arg->boundField = new Detail::BoundUnaryMethod<C,bool>( unaryMethod );
+            }
+
+            // Bind a method that takes no arguments (will be called if opt is present)
+            template<typename C>
+            void bind( void (C::* nullaryMethod)() ) {
+                m_arg->boundField = new Detail::BoundNullaryMethod<C>( nullaryMethod );
+            }
+
+            // Bind a free function taking a single argument - the object to operate on (no placeholder string required)
+            template<typename C>
+            void bind( void (* unaryFunction)( C& ) ) {
+                m_arg->boundField = new Detail::BoundUnaryFunction<C>( unaryFunction );
+            }
+
+            // Bind a free function taking a single argument - the object to operate on (requires a placeholder string)
+            template<typename C, typename T>
+            void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundBinaryFunction<C, T>( binaryFunction );
+                m_arg->placeholder = placeholder;
+            }
+
+            ArgBuilder& describe( std::string const& description ) {
+                m_arg->description = description;
+                return *this;
+            }
+            ArgBuilder& detail( std::string const& detail ) {
+                m_arg->detail = detail;
+                return *this;
+            }
+
+        protected:
+            Arg* m_arg;
+        };
+
+        class OptBuilder : public ArgBuilder {
+        public:
+            OptBuilder( Arg* arg ) : ArgBuilder( arg ) {}
+            OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {}
+
+            OptBuilder& operator[]( std::string const& optName ) {
+                addOptName( *ArgBuilder::m_arg, optName );
+                return *this;
+            }
+        };
+
+    public:
+
+        CommandLine()
+        :   m_boundProcessName( new Detail::NullBinder<ConfigT>() ),
+            m_highestSpecifiedArgPosition( 0 ),
+            m_throwOnUnrecognisedTokens( false )
+        {}
+        CommandLine( CommandLine const& other )
+        :   m_boundProcessName( other.m_boundProcessName ),
+            m_options ( other.m_options ),
+            m_positionalArgs( other.m_positionalArgs ),
+            m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ),
+            m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens )
+        {
+            if( other.m_floatingArg.get() )
+                m_floatingArg.reset( new Arg( *other.m_floatingArg ) );
+        }
+
+        CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) {
+            m_throwOnUnrecognisedTokens = shouldThrow;
+            return *this;
+        }
+
+        OptBuilder operator[]( std::string const& optName ) {
+            m_options.push_back( Arg() );
+            addOptName( m_options.back(), optName );
+            OptBuilder builder( &m_options.back() );
+            return builder;
+        }
+
+        ArgBuilder operator[]( int position ) {
+            m_positionalArgs.insert( std::make_pair( position, Arg() ) );
+            if( position > m_highestSpecifiedArgPosition )
+                m_highestSpecifiedArgPosition = position;
+            setPositionalArg( m_positionalArgs[position], position );
+            ArgBuilder builder( &m_positionalArgs[position] );
+            return builder;
+        }
+
+        // Invoke this with the _ instance
+        ArgBuilder operator[]( UnpositionalTag ) {
+            if( m_floatingArg.get() )
+                throw std::logic_error( "Only one unpositional argument can be added" );
+            m_floatingArg.reset( new Arg() );
+            ArgBuilder builder( m_floatingArg.get() );
+            return builder;
+        }
+
+        template<typename C, typename M>
+        void bindProcessName( M C::* field ) {
+            m_boundProcessName = new Detail::BoundDataMember<C,M>( field );
+        }
+        template<typename C, typename M>
+        void bindProcessName( void (C::*_unaryMethod)( M ) ) {
+            m_boundProcessName = new Detail::BoundUnaryMethod<C,M>( _unaryMethod );
+        }
+
+        void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const {
+            typename std::vector<Arg>::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it;
+            std::size_t maxWidth = 0;
+            for( it = itBegin; it != itEnd; ++it )
+                maxWidth = (std::max)( maxWidth, it->commands().size() );
+
+            for( it = itBegin; it != itEnd; ++it ) {
+                Detail::Text usage( it->commands(), Detail::TextAttributes()
+                                                        .setWidth( maxWidth+indent )
+                                                        .setIndent( indent ) );
+                Detail::Text desc( it->description, Detail::TextAttributes()
+                                                        .setWidth( width - maxWidth - 3 ) );
+
+                for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) {
+                    std::string usageCol = i < usage.size() ? usage[i] : "";
+                    os << usageCol;
+
+                    if( i < desc.size() && !desc[i].empty() )
+                        os  << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' )
+                            << desc[i];
+                    os << "\n";
+                }
+            }
+        }
+        std::string optUsage() const {
+            std::ostringstream oss;
+            optUsage( oss );
+            return oss.str();
+        }
+
+        void argSynopsis( std::ostream& os ) const {
+            for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) {
+                if( i > 1 )
+                    os << " ";
+                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( i );
+                if( it != m_positionalArgs.end() )
+                    os << "<" << it->second.placeholder << ">";
+                else if( m_floatingArg.get() )
+                    os << "<" << m_floatingArg->placeholder << ">";
+                else
+                    throw std::logic_error( "non consecutive positional arguments with no floating args" );
+            }
+            // !TBD No indication of mandatory args
+            if( m_floatingArg.get() ) {
+                if( m_highestSpecifiedArgPosition > 1 )
+                    os << " ";
+                os << "[<" << m_floatingArg->placeholder << "> ...]";
+            }
+        }
+        std::string argSynopsis() const {
+            std::ostringstream oss;
+            argSynopsis( oss );
+            return oss.str();
+        }
+
+        void usage( std::ostream& os, std::string const& procName ) const {
+            validate();
+            os << "usage:\n  " << procName << " ";
+            argSynopsis( os );
+            if( !m_options.empty() ) {
+                os << " [options]\n\nwhere options are: \n";
+                optUsage( os, 2 );
+            }
+            os << "\n";
+        }
+        std::string usage( std::string const& procName ) const {
+            std::ostringstream oss;
+            usage( oss, procName );
+            return oss.str();
+        }
+
+        ConfigT parse( std::vector<std::string> const& args ) const {
+            ConfigT config;
+            parseInto( args, config );
+            return config;
+        }
+
+        std::vector<Parser::Token> parseInto( std::vector<std::string> const& args, ConfigT& config ) const {
+            std::string processName = args[0];
+            std::size_t lastSlash = processName.find_last_of( "/\\" );
+            if( lastSlash != std::string::npos )
+                processName = processName.substr( lastSlash+1 );
+            m_boundProcessName.set( config, processName );
+            std::vector<Parser::Token> tokens;
+            Parser parser;
+            parser.parseIntoTokens( args, tokens );
+            return populate( tokens, config );
+        }
+
+        std::vector<Parser::Token> populate( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            validate();
+            std::vector<Parser::Token> unusedTokens = populateOptions( tokens, config );
+            unusedTokens = populateFixedArgs( unusedTokens, config );
+            unusedTokens = populateFloatingArgs( unusedTokens, config );
+            return unusedTokens;
+        }
+
+        std::vector<Parser::Token> populateOptions( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            std::vector<Parser::Token> unusedTokens;
+            std::vector<std::string> errors;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                typename std::vector<Arg>::const_iterator it = m_options.begin(), itEnd = m_options.end();
+                for(; it != itEnd; ++it ) {
+                    Arg const& arg = *it;
+
+                    try {
+                        if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) ||
+                            ( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) {
+                            if( arg.takesArg() ) {
+                                if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional )
+                                    errors.push_back( "Expected argument to option: " + token.data );
+                                else
+                                    arg.boundField.set( config, tokens[++i].data );
+                            }
+                            else {
+                                arg.boundField.set( config, "true" );
+                            }
+                            break;
+                        }
+                    }
+                    catch( std::exception& ex ) {
+                        errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" );
+                    }
+                }
+                if( it == itEnd ) {
+                    if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens )
+                        unusedTokens.push_back( token );
+                    else if( errors.empty() && m_throwOnUnrecognisedTokens )
+                        errors.push_back( "unrecognised option: " + token.data );
+                }
+            }
+            if( !errors.empty() ) {
+                std::ostringstream oss;
+                for( std::vector<std::string>::const_iterator it = errors.begin(), itEnd = errors.end();
+                        it != itEnd;
+                        ++it ) {
+                    if( it != errors.begin() )
+                        oss << "\n";
+                    oss << *it;
+                }
+                throw std::runtime_error( oss.str() );
+            }
+            return unusedTokens;
+        }
+        std::vector<Parser::Token> populateFixedArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            std::vector<Parser::Token> unusedTokens;
+            int position = 1;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( position );
+                if( it != m_positionalArgs.end() )
+                    it->second.boundField.set( config, token.data );
+                else
+                    unusedTokens.push_back( token );
+                if( token.type == Parser::Token::Positional )
+                    position++;
+            }
+            return unusedTokens;
+        }
+        std::vector<Parser::Token> populateFloatingArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            if( !m_floatingArg.get() )
+                return tokens;
+            std::vector<Parser::Token> unusedTokens;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                if( token.type == Parser::Token::Positional )
+                    m_floatingArg->boundField.set( config, token.data );
+                else
+                    unusedTokens.push_back( token );
+            }
+            return unusedTokens;
+        }
+
+        void validate() const
+        {
+            if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() )
+                throw std::logic_error( "No options or arguments specified" );
+
+            for( typename std::vector<Arg>::const_iterator  it = m_options.begin(),
+                                                            itEnd = m_options.end();
+                    it != itEnd; ++it )
+                it->validate();
+        }
+
+    private:
+        Detail::BoundArgFunction<ConfigT> m_boundProcessName;
+        std::vector<Arg> m_options;
+        std::map<int, Arg> m_positionalArgs;
+        ArgAutoPtr m_floatingArg;
+        int m_highestSpecifiedArgPosition;
+        bool m_throwOnUnrecognisedTokens;
+    };
+
+} // end namespace Clara
+
+STITCH_CLARA_CLOSE_NAMESPACE
+#undef STITCH_CLARA_OPEN_NAMESPACE
+#undef STITCH_CLARA_CLOSE_NAMESPACE
+
+#endif // TWOBLUECUBES_CLARA_H_INCLUDED
+#undef STITCH_CLARA_OPEN_NAMESPACE
+
+// Restore Clara's value for console width, if present
+#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#endif
+
+#include <fstream>
+#include <ctime>
+
+namespace Catch {
+
+    inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; }
+    inline void abortAfterX( ConfigData& config, int x ) {
+        if( x < 1 )
+            throw std::runtime_error( "Value after -x or --abortAfter must be greater than zero" );
+        config.abortAfter = x;
+    }
+    inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); }
+    inline void addSectionToRun( ConfigData& config, std::string const& sectionName ) { config.sectionsToRun.push_back( sectionName ); }
+    inline void addReporterName( ConfigData& config, std::string const& _reporterName ) { config.reporterNames.push_back( _reporterName ); }
+
+    inline void addWarning( ConfigData& config, std::string const& _warning ) {
+        if( _warning == "NoAssertions" )
+            config.warnings = static_cast<WarnAbout::What>( config.warnings | WarnAbout::NoAssertions );
+        else
+            throw std::runtime_error( "Unrecognised warning: '" + _warning + '\'' );
+    }
+    inline void setOrder( ConfigData& config, std::string const& order ) {
+        if( startsWith( "declared", order ) )
+            config.runOrder = RunTests::InDeclarationOrder;
+        else if( startsWith( "lexical", order ) )
+            config.runOrder = RunTests::InLexicographicalOrder;
+        else if( startsWith( "random", order ) )
+            config.runOrder = RunTests::InRandomOrder;
+        else
+            throw std::runtime_error( "Unrecognised ordering: '" + order + '\'' );
+    }
+    inline void setRngSeed( ConfigData& config, std::string const& seed ) {
+        if( seed == "time" ) {
+            config.rngSeed = static_cast<unsigned int>( std::time(0) );
+        }
+        else {
+            std::stringstream ss;
+            ss << seed;
+            ss >> config.rngSeed;
+            if( ss.fail() )
+                throw std::runtime_error( "Argument to --rng-seed should be the word 'time' or a number" );
+        }
+    }
+    inline void setVerbosity( ConfigData& config, int level ) {
+        // !TBD: accept strings?
+        config.verbosity = static_cast<Verbosity::Level>( level );
+    }
+    inline void setShowDurations( ConfigData& config, bool _showDurations ) {
+        config.showDurations = _showDurations
+            ? ShowDurations::Always
+            : ShowDurations::Never;
+    }
+    inline void setUseColour( ConfigData& config, std::string const& value ) {
+        std::string mode = toLower( value );
+
+        if( mode == "yes" )
+            config.useColour = UseColour::Yes;
+        else if( mode == "no" )
+            config.useColour = UseColour::No;
+        else if( mode == "auto" )
+            config.useColour = UseColour::Auto;
+        else
+            throw std::runtime_error( "colour mode must be one of: auto, yes or no" );
+    }
+    inline void forceColour( ConfigData& config ) {
+        config.useColour = UseColour::Yes;
+    }
+    inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) {
+        std::ifstream f( _filename.c_str() );
+        if( !f.is_open() )
+            throw std::domain_error( "Unable to load input file: " + _filename );
+
+        std::string line;
+        while( std::getline( f, line ) ) {
+            line = trim(line);
+            if( !line.empty() && !startsWith( line, '#' ) ) {
+                if( !startsWith( line, '"' ) )
+                    line = '"' + line + '"';
+                addTestOrTags( config, line + ',' );
+            }
+        }
+    }
+
+    inline Clara::CommandLine<ConfigData> makeCommandLineParser() {
+
+        using namespace Clara;
+        CommandLine<ConfigData> cli;
+
+        cli.bindProcessName( &ConfigData::processName );
+
+        cli["-?"]["-h"]["--help"]
+            .describe( "display usage information" )
+            .bind( &ConfigData::showHelp );
+
+        cli["-l"]["--list-tests"]
+            .describe( "list all/matching test cases" )
+            .bind( &ConfigData::listTests );
+
+        cli["-t"]["--list-tags"]
+            .describe( "list all/matching tags" )
+            .bind( &ConfigData::listTags );
+
+        cli["-s"]["--success"]
+            .describe( "include successful tests in output" )
+            .bind( &ConfigData::showSuccessfulTests );
+
+        cli["-b"]["--break"]
+            .describe( "break into debugger on failure" )
+            .bind( &ConfigData::shouldDebugBreak );
+
+        cli["-e"]["--nothrow"]
+            .describe( "skip exception tests" )
+            .bind( &ConfigData::noThrow );
+
+        cli["-i"]["--invisibles"]
+            .describe( "show invisibles (tabs, newlines)" )
+            .bind( &ConfigData::showInvisibles );
+
+        cli["-o"]["--out"]
+            .describe( "output filename" )
+            .bind( &ConfigData::outputFilename, "filename" );
+
+        cli["-r"]["--reporter"]
+//            .placeholder( "name[:filename]" )
+            .describe( "reporter to use (defaults to console)" )
+            .bind( &addReporterName, "name" );
+
+        cli["-n"]["--name"]
+            .describe( "suite name" )
+            .bind( &ConfigData::name, "name" );
+
+        cli["-a"]["--abort"]
+            .describe( "abort at first failure" )
+            .bind( &abortAfterFirst );
+
+        cli["-x"]["--abortx"]
+            .describe( "abort after x failures" )
+            .bind( &abortAfterX, "no. failures" );
+
+        cli["-w"]["--warn"]
+            .describe( "enable warnings" )
+            .bind( &addWarning, "warning name" );
+
+// - needs updating if reinstated
+//        cli.into( &setVerbosity )
+//            .describe( "level of verbosity (0=no output)" )
+//            .shortOpt( "v")
+//            .longOpt( "verbosity" )
+//            .placeholder( "level" );
+
+        cli[_]
+            .describe( "which test or tests to use" )
+            .bind( &addTestOrTags, "test name, pattern or tags" );
+
+        cli["-d"]["--durations"]
+            .describe( "show test durations" )
+            .bind( &setShowDurations, "yes|no" );
+
+        cli["-f"]["--input-file"]
+            .describe( "load test names to run from a file" )
+            .bind( &loadTestNamesFromFile, "filename" );
+
+        cli["-#"]["--filenames-as-tags"]
+            .describe( "adds a tag for the filename" )
+            .bind( &ConfigData::filenamesAsTags );
+
+        cli["-c"]["--section"]
+                .describe( "specify section to run" )
+                .bind( &addSectionToRun, "section name" );
+
+        // Less common commands which don't have a short form
+        cli["--list-test-names-only"]
+            .describe( "list all/matching test cases names only" )
+            .bind( &ConfigData::listTestNamesOnly );
+
+        cli["--list-reporters"]
+            .describe( "list all reporters" )
+            .bind( &ConfigData::listReporters );
+
+        cli["--order"]
+            .describe( "test case order (defaults to decl)" )
+            .bind( &setOrder, "decl|lex|rand" );
+
+        cli["--rng-seed"]
+            .describe( "set a specific seed for random numbers" )
+            .bind( &setRngSeed, "'time'|number" );
+
+        cli["--force-colour"]
+            .describe( "force colourised output (deprecated)" )
+            .bind( &forceColour );
+
+        cli["--use-colour"]
+            .describe( "should output be colourised" )
+            .bind( &setUseColour, "yes|no" );
+
+        return cli;
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_list.hpp
+#define TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED
+
+// #included from: catch_text.h
+#define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED
+
+#define TBC_TEXT_FORMAT_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
+
+#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Catch
+// #included from: ../external/tbc_text_format.h
+// Only use header guard if we are not using an outer namespace
+#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+#  ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#   define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#  endif
+# else
+#  define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+# endif
+#endif
+#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#include <string>
+#include <vector>
+#include <sstream>
+
+// Use optional outer namespace
+#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
+#endif
+
+namespace Tbc {
+
+#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
+    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+    struct TextAttributes {
+        TextAttributes()
+        :   initialIndent( std::string::npos ),
+            indent( 0 ),
+            width( consoleWidth-1 )
+        {}
+
+        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
+        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
+        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
+
+        std::size_t initialIndent;  // indent of first line, or npos
+        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
+        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
+    };
+
+    class Text {
+    public:
+        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
+        : attr( _attr )
+        {
+            const std::string wrappableBeforeChars = "[({<\t";
+            const std::string wrappableAfterChars = "])}>-,./|\\";
+            const std::string wrappableInsteadOfChars = " \n\r";
+            std::string indent = _attr.initialIndent != std::string::npos
+                ? std::string( _attr.initialIndent, ' ' )
+                : std::string( _attr.indent, ' ' );
+
+            typedef std::string::const_iterator iterator;
+            iterator it = _str.begin();
+            const iterator strEnd = _str.end();
+
+            while( it != strEnd ) {
+
+                if( lines.size() >= 1000 ) {
+                    lines.push_back( "... message truncated due to excessive size" );
+                    return;
+                }
+
+                std::string suffix;
+                std::size_t width = (std::min)( static_cast<size_t>( strEnd-it ), _attr.width-static_cast<size_t>( indent.size() ) );
+                iterator itEnd = it+width;
+                iterator itNext = _str.end();
+
+                iterator itNewLine = std::find( it, itEnd, '\n' );
+                if( itNewLine != itEnd )
+                    itEnd = itNewLine;
+
+                if( itEnd != strEnd  ) {
+                    bool foundWrapPoint = false;
+                    iterator findIt = itEnd;
+                    do {
+                        if( wrappableAfterChars.find( *findIt ) != std::string::npos && findIt != itEnd ) {
+                            itEnd = findIt+1;
+                            itNext = findIt+1;
+                            foundWrapPoint = true;
+                        }
+                        else if( findIt > it && wrappableBeforeChars.find( *findIt ) != std::string::npos ) {
+                            itEnd = findIt;
+                            itNext = findIt;
+                            foundWrapPoint = true;
+                        }
+                        else if( wrappableInsteadOfChars.find( *findIt ) != std::string::npos ) {
+                            itNext = findIt+1;
+                            itEnd = findIt;
+                            foundWrapPoint = true;
+                        }
+                        if( findIt == it )
+                            break;
+                        else
+                            --findIt;
+                    }
+                    while( !foundWrapPoint );
+
+                    if( !foundWrapPoint ) {
+                        // No good wrap char, so we'll break mid word and add a hyphen
+                        --itEnd;
+                        itNext = itEnd;
+                        suffix = "-";
+                    }
+                    else {
+                        while( itEnd > it && wrappableInsteadOfChars.find( *(itEnd-1) ) != std::string::npos )
+                            --itEnd;
+                    }
+                }
+                lines.push_back( indent + std::string( it, itEnd ) + suffix );
+
+                if( indent.size() != _attr.indent )
+                    indent = std::string( _attr.indent, ' ' );
+                it = itNext;
+            }
+        }
+
+        typedef std::vector<std::string>::const_iterator const_iterator;
+
+        const_iterator begin() const { return lines.begin(); }
+        const_iterator end() const { return lines.end(); }
+        std::string const& last() const { return lines.back(); }
+        std::size_t size() const { return lines.size(); }
+        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << *this;
+            return oss.str();
+        }
+
+        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
+            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
+                it != itEnd; ++it ) {
+                if( it != _text.begin() )
+                    _stream << "\n";
+                _stream << *it;
+            }
+            return _stream;
+        }
+
+    private:
+        std::string str;
+        TextAttributes attr;
+        std::vector<std::string> lines;
+    };
+
+} // end namespace Tbc
+
+#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+} // end outer namespace
+#endif
+
+#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+namespace Catch {
+    using Tbc::Text;
+    using Tbc::TextAttributes;
+}
+
+// #included from: catch_console_colour.hpp
+#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED
+
+namespace Catch {
+
+    struct Colour {
+        enum Code {
+            None = 0,
+
+            White,
+            Red,
+            Green,
+            Blue,
+            Cyan,
+            Yellow,
+            Grey,
+
+            Bright = 0x10,
+
+            BrightRed = Bright | Red,
+            BrightGreen = Bright | Green,
+            LightGrey = Bright | Grey,
+            BrightWhite = Bright | White,
+
+            // By intention
+            FileName = LightGrey,
+            Warning = Yellow,
+            ResultError = BrightRed,
+            ResultSuccess = BrightGreen,
+            ResultExpectedFailure = Warning,
+
+            Error = BrightRed,
+            Success = Green,
+
+            OriginalExpression = Cyan,
+            ReconstructedExpression = Yellow,
+
+            SecondaryText = LightGrey,
+            Headers = White
+        };
+
+        // Use constructed object for RAII guard
+        Colour( Code _colourCode );
+        Colour( Colour const& other );
+        ~Colour();
+
+        // Use static method for one-shot changes
+        static void use( Code _colourCode );
+
+    private:
+        bool m_moved;
+    };
+
+    inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; }
+
+} // end namespace Catch
+
+// #included from: catch_interfaces_reporter.h
+#define TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED
+
+#include <string>
+#include <ostream>
+#include <map>
+
+namespace Catch
+{
+    struct ReporterConfig {
+        explicit ReporterConfig( Ptr<IConfig const> const& _fullConfig )
+        :   m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {}
+
+        ReporterConfig( Ptr<IConfig const> const& _fullConfig, std::ostream& _stream )
+        :   m_stream( &_stream ), m_fullConfig( _fullConfig ) {}
+
+        std::ostream& stream() const    { return *m_stream; }
+        Ptr<IConfig const> fullConfig() const { return m_fullConfig; }
+
+    private:
+        std::ostream* m_stream;
+        Ptr<IConfig const> m_fullConfig;
+    };
+
+    struct ReporterPreferences {
+        ReporterPreferences()
+        : shouldRedirectStdOut( false )
+        {}
+
+        bool shouldRedirectStdOut;
+    };
+
+    template<typename T>
+    struct LazyStat : Option<T> {
+        LazyStat() : used( false ) {}
+        LazyStat& operator=( T const& _value ) {
+            Option<T>::operator=( _value );
+            used = false;
+            return *this;
+        }
+        void reset() {
+            Option<T>::reset();
+            used = false;
+        }
+        bool used;
+    };
+
+    struct TestRunInfo {
+        TestRunInfo( std::string const& _name ) : name( _name ) {}
+        std::string name;
+    };
+    struct GroupInfo {
+        GroupInfo(  std::string const& _name,
+                    std::size_t _groupIndex,
+                    std::size_t _groupsCount )
+        :   name( _name ),
+            groupIndex( _groupIndex ),
+            groupsCounts( _groupsCount )
+        {}
+
+        std::string name;
+        std::size_t groupIndex;
+        std::size_t groupsCounts;
+    };
+
+    struct AssertionStats {
+        AssertionStats( AssertionResult const& _assertionResult,
+                        std::vector<MessageInfo> const& _infoMessages,
+                        Totals const& _totals )
+        :   assertionResult( _assertionResult ),
+            infoMessages( _infoMessages ),
+            totals( _totals )
+        {
+            if( assertionResult.hasMessage() ) {
+                // Copy message into messages list.
+                // !TBD This should have been done earlier, somewhere
+                MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() );
+                builder << assertionResult.getMessage();
+                builder.m_info.message = builder.m_stream.str();
+
+                infoMessages.push_back( builder.m_info );
+            }
+        }
+        virtual ~AssertionStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        AssertionStats( AssertionStats const& )              = default;
+        AssertionStats( AssertionStats && )                  = default;
+        AssertionStats& operator = ( AssertionStats const& ) = default;
+        AssertionStats& operator = ( AssertionStats && )     = default;
+#  endif
+
+        AssertionResult assertionResult;
+        std::vector<MessageInfo> infoMessages;
+        Totals totals;
+    };
+
+    struct SectionStats {
+        SectionStats(   SectionInfo const& _sectionInfo,
+                        Counts const& _assertions,
+                        double _durationInSeconds,
+                        bool _missingAssertions )
+        :   sectionInfo( _sectionInfo ),
+            assertions( _assertions ),
+            durationInSeconds( _durationInSeconds ),
+            missingAssertions( _missingAssertions )
+        {}
+        virtual ~SectionStats();
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        SectionStats( SectionStats const& )              = default;
+        SectionStats( SectionStats && )                  = default;
+        SectionStats& operator = ( SectionStats const& ) = default;
+        SectionStats& operator = ( SectionStats && )     = default;
+#  endif
+
+        SectionInfo sectionInfo;
+        Counts assertions;
+        double durationInSeconds;
+        bool missingAssertions;
+    };
+
+    struct TestCaseStats {
+        TestCaseStats(  TestCaseInfo const& _testInfo,
+                        Totals const& _totals,
+                        std::string const& _stdOut,
+                        std::string const& _stdErr,
+                        bool _aborting )
+        : testInfo( _testInfo ),
+            totals( _totals ),
+            stdOut( _stdOut ),
+            stdErr( _stdErr ),
+            aborting( _aborting )
+        {}
+        virtual ~TestCaseStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestCaseStats( TestCaseStats const& )              = default;
+        TestCaseStats( TestCaseStats && )                  = default;
+        TestCaseStats& operator = ( TestCaseStats const& ) = default;
+        TestCaseStats& operator = ( TestCaseStats && )     = default;
+#  endif
+
+        TestCaseInfo testInfo;
+        Totals totals;
+        std::string stdOut;
+        std::string stdErr;
+        bool aborting;
+    };
+
+    struct TestGroupStats {
+        TestGroupStats( GroupInfo const& _groupInfo,
+                        Totals const& _totals,
+                        bool _aborting )
+        :   groupInfo( _groupInfo ),
+            totals( _totals ),
+            aborting( _aborting )
+        {}
+        TestGroupStats( GroupInfo const& _groupInfo )
+        :   groupInfo( _groupInfo ),
+            aborting( false )
+        {}
+        virtual ~TestGroupStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestGroupStats( TestGroupStats const& )              = default;
+        TestGroupStats( TestGroupStats && )                  = default;
+        TestGroupStats& operator = ( TestGroupStats const& ) = default;
+        TestGroupStats& operator = ( TestGroupStats && )     = default;
+#  endif
+
+        GroupInfo groupInfo;
+        Totals totals;
+        bool aborting;
+    };
+
+    struct TestRunStats {
+        TestRunStats(   TestRunInfo const& _runInfo,
+                        Totals const& _totals,
+                        bool _aborting )
+        :   runInfo( _runInfo ),
+            totals( _totals ),
+            aborting( _aborting )
+        {}
+        virtual ~TestRunStats();
+
+#  ifndef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestRunStats( TestRunStats const& _other )
+        :   runInfo( _other.runInfo ),
+            totals( _other.totals ),
+            aborting( _other.aborting )
+        {}
+#  else
+        TestRunStats( TestRunStats const& )              = default;
+        TestRunStats( TestRunStats && )                  = default;
+        TestRunStats& operator = ( TestRunStats const& ) = default;
+        TestRunStats& operator = ( TestRunStats && )     = default;
+#  endif
+
+        TestRunInfo runInfo;
+        Totals totals;
+        bool aborting;
+    };
+
+    class MultipleReporters;
+
+    struct IStreamingReporter : IShared {
+        virtual ~IStreamingReporter();
+
+        // Implementing class must also provide the following static method:
+        // static std::string getDescription();
+
+        virtual ReporterPreferences getPreferences() const = 0;
+
+        virtual void noMatchingTestCases( std::string const& spec ) = 0;
+
+        virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0;
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0;
+
+        virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0;
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0;
+
+        virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0;
+
+        // The return value indicates if the messages buffer should be cleared:
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0;
+
+        virtual void sectionEnded( SectionStats const& sectionStats ) = 0;
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0;
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0;
+        virtual void testRunEnded( TestRunStats const& testRunStats ) = 0;
+
+        virtual void skipTest( TestCaseInfo const& testInfo ) = 0;
+
+        virtual MultipleReporters* tryAsMulti() { return CATCH_NULL; }
+    };
+
+    struct IReporterFactory : IShared {
+        virtual ~IReporterFactory();
+        virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0;
+        virtual std::string getDescription() const = 0;
+    };
+
+    struct IReporterRegistry {
+        typedef std::map<std::string, Ptr<IReporterFactory> > FactoryMap;
+        typedef std::vector<Ptr<IReporterFactory> > Listeners;
+
+        virtual ~IReporterRegistry();
+        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const = 0;
+        virtual FactoryMap const& getFactories() const = 0;
+        virtual Listeners const& getListeners() const = 0;
+    };
+
+    Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter );
+
+}
+
+#include <limits>
+#include <algorithm>
+
+namespace Catch {
+
+    inline std::size_t listTests( Config const& config ) {
+
+        TestSpec testSpec = config.testSpec();
+        if( config.testSpec().hasFilters() )
+            Catch::cout() << "Matching test cases:\n";
+        else {
+            Catch::cout() << "All available test cases:\n";
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        }
+
+        std::size_t matchedTests = 0;
+        TextAttributes nameAttr, tagsAttr;
+        nameAttr.setInitialIndent( 2 ).setIndent( 4 );
+        tagsAttr.setIndent( 6 );
+
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            matchedTests++;
+            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
+            Colour::Code colour = testCaseInfo.isHidden()
+                ? Colour::SecondaryText
+                : Colour::None;
+            Colour colourGuard( colour );
+
+            Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl;
+            if( !testCaseInfo.tags.empty() )
+                Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl;
+        }
+
+        if( !config.testSpec().hasFilters() )
+            Catch::cout() << pluralise( matchedTests, "test case" ) << '\n' << std::endl;
+        else
+            Catch::cout() << pluralise( matchedTests, "matching test case" ) << '\n' << std::endl;
+        return matchedTests;
+    }
+
+    inline std::size_t listTestsNamesOnly( Config const& config ) {
+        TestSpec testSpec = config.testSpec();
+        if( !config.testSpec().hasFilters() )
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        std::size_t matchedTests = 0;
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            matchedTests++;
+            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
+            if( startsWith( testCaseInfo.name, '#' ) )
+               Catch::cout() << '"' << testCaseInfo.name << '"' << std::endl;
+            else
+               Catch::cout() << testCaseInfo.name << std::endl;
+        }
+        return matchedTests;
+    }
+
+    struct TagInfo {
+        TagInfo() : count ( 0 ) {}
+        void add( std::string const& spelling ) {
+            ++count;
+            spellings.insert( spelling );
+        }
+        std::string all() const {
+            std::string out;
+            for( std::set<std::string>::const_iterator it = spellings.begin(), itEnd = spellings.end();
+                        it != itEnd;
+                        ++it )
+                out += "[" + *it + "]";
+            return out;
+        }
+        std::set<std::string> spellings;
+        std::size_t count;
+    };
+
+    inline std::size_t listTags( Config const& config ) {
+        TestSpec testSpec = config.testSpec();
+        if( config.testSpec().hasFilters() )
+            Catch::cout() << "Tags for matching test cases:\n";
+        else {
+            Catch::cout() << "All available tags:\n";
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        }
+
+        std::map<std::string, TagInfo> tagCounts;
+
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            for( std::set<std::string>::const_iterator  tagIt = it->getTestCaseInfo().tags.begin(),
+                                                        tagItEnd = it->getTestCaseInfo().tags.end();
+                    tagIt != tagItEnd;
+                    ++tagIt ) {
+                std::string tagName = *tagIt;
+                std::string lcaseTagName = toLower( tagName );
+                std::map<std::string, TagInfo>::iterator countIt = tagCounts.find( lcaseTagName );
+                if( countIt == tagCounts.end() )
+                    countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first;
+                countIt->second.add( tagName );
+            }
+        }
+
+        for( std::map<std::string, TagInfo>::const_iterator countIt = tagCounts.begin(),
+                                                            countItEnd = tagCounts.end();
+                countIt != countItEnd;
+                ++countIt ) {
+            std::ostringstream oss;
+            oss << "  " << std::setw(2) << countIt->second.count << "  ";
+            Text wrapper( countIt->second.all(), TextAttributes()
+                                                    .setInitialIndent( 0 )
+                                                    .setIndent( oss.str().size() )
+                                                    .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) );
+            Catch::cout() << oss.str() << wrapper << '\n';
+        }
+        Catch::cout() << pluralise( tagCounts.size(), "tag" ) << '\n' << std::endl;
+        return tagCounts.size();
+    }
+
+    inline std::size_t listReporters( Config const& /*config*/ ) {
+        Catch::cout() << "Available reporters:\n";
+        IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories();
+        IReporterRegistry::FactoryMap::const_iterator itBegin = factories.begin(), itEnd = factories.end(), it;
+        std::size_t maxNameLen = 0;
+        for(it = itBegin; it != itEnd; ++it )
+            maxNameLen = (std::max)( maxNameLen, it->first.size() );
+
+        for(it = itBegin; it != itEnd; ++it ) {
+            Text wrapper( it->second->getDescription(), TextAttributes()
+                                                        .setInitialIndent( 0 )
+                                                        .setIndent( 7+maxNameLen )
+                                                        .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) );
+            Catch::cout() << "  "
+                    << it->first
+                    << ':'
+                    << std::string( maxNameLen - it->first.size() + 2, ' ' )
+                    << wrapper << '\n';
+        }
+        Catch::cout() << std::endl;
+        return factories.size();
+    }
+
+    inline Option<std::size_t> list( Config const& config ) {
+        Option<std::size_t> listedCount;
+        if( config.listTests() )
+            listedCount = listedCount.valueOr(0) + listTests( config );
+        if( config.listTestNamesOnly() )
+            listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config );
+        if( config.listTags() )
+            listedCount = listedCount.valueOr(0) + listTags( config );
+        if( config.listReporters() )
+            listedCount = listedCount.valueOr(0) + listReporters( config );
+        return listedCount;
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_run_context.hpp
+#define TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED
+
+// #included from: catch_test_case_tracker.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED
+
+#include <map>
+#include <string>
+#include <assert.h>
+#include <vector>
+#include <iterator>
+#include <stdexcept>
+
+namespace Catch {
+namespace TestCaseTracking {
+
+    struct NameAndLocation {
+        std::string name;
+        SourceLineInfo location;
+
+        NameAndLocation( std::string const& _name, SourceLineInfo const& _location )
+        :   name( _name ),
+            location( _location )
+        {}
+    };
+
+    struct ITracker : SharedImpl<> {
+        virtual ~ITracker();
+
+        // static queries
+        virtual NameAndLocation const& nameAndLocation() const = 0;
+
+        // dynamic queries
+        virtual bool isComplete() const = 0; // Successfully completed or failed
+        virtual bool isSuccessfullyCompleted() const = 0;
+        virtual bool isOpen() const = 0; // Started but not complete
+        virtual bool hasChildren() const = 0;
+
+        virtual ITracker& parent() = 0;
+
+        // actions
+        virtual void close() = 0; // Successfully complete
+        virtual void fail() = 0;
+        virtual void markAsNeedingAnotherRun() = 0;
+
+        virtual void addChild( Ptr<ITracker> const& child ) = 0;
+        virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) = 0;
+        virtual void openChild() = 0;
+
+        // Debug/ checking
+        virtual bool isSectionTracker() const = 0;
+        virtual bool isIndexTracker() const = 0;
+    };
+
+    class  TrackerContext {
+
+        enum RunState {
+            NotStarted,
+            Executing,
+            CompletedCycle
+        };
+
+        Ptr<ITracker> m_rootTracker;
+        ITracker* m_currentTracker;
+        RunState m_runState;
+
+    public:
+
+        static TrackerContext& instance() {
+            static TrackerContext s_instance;
+            return s_instance;
+        }
+
+        TrackerContext()
+        :   m_currentTracker( CATCH_NULL ),
+            m_runState( NotStarted )
+        {}
+
+        ITracker& startRun();
+
+        void endRun() {
+            m_rootTracker.reset();
+            m_currentTracker = CATCH_NULL;
+            m_runState = NotStarted;
+        }
+
+        void startCycle() {
+            m_currentTracker = m_rootTracker.get();
+            m_runState = Executing;
+        }
+        void completeCycle() {
+            m_runState = CompletedCycle;
+        }
+
+        bool completedCycle() const {
+            return m_runState == CompletedCycle;
+        }
+        ITracker& currentTracker() {
+            return *m_currentTracker;
+        }
+        void setCurrentTracker( ITracker* tracker ) {
+            m_currentTracker = tracker;
+        }
+    };
+
+    class TrackerBase : public ITracker {
+    protected:
+        enum CycleState {
+            NotStarted,
+            Executing,
+            ExecutingChildren,
+            NeedsAnotherRun,
+            CompletedSuccessfully,
+            Failed
+        };
+        class TrackerHasName {
+            NameAndLocation m_nameAndLocation;
+        public:
+            TrackerHasName( NameAndLocation const& nameAndLocation ) : m_nameAndLocation( nameAndLocation ) {}
+            bool operator ()( Ptr<ITracker> const& tracker ) {
+                return
+                    tracker->nameAndLocation().name == m_nameAndLocation.name &&
+                    tracker->nameAndLocation().location == m_nameAndLocation.location;
+            }
+        };
+        typedef std::vector<Ptr<ITracker> > Children;
+        NameAndLocation m_nameAndLocation;
+        TrackerContext& m_ctx;
+        ITracker* m_parent;
+        Children m_children;
+        CycleState m_runState;
+    public:
+        TrackerBase( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
+        :   m_nameAndLocation( nameAndLocation ),
+            m_ctx( ctx ),
+            m_parent( parent ),
+            m_runState( NotStarted )
+        {}
+        virtual ~TrackerBase();
+
+        virtual NameAndLocation const& nameAndLocation() const CATCH_OVERRIDE {
+            return m_nameAndLocation;
+        }
+        virtual bool isComplete() const CATCH_OVERRIDE {
+            return m_runState == CompletedSuccessfully || m_runState == Failed;
+        }
+        virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE {
+            return m_runState == CompletedSuccessfully;
+        }
+        virtual bool isOpen() const CATCH_OVERRIDE {
+            return m_runState != NotStarted && !isComplete();
+        }
+        virtual bool hasChildren() const CATCH_OVERRIDE {
+            return !m_children.empty();
+        }
+
+        virtual void addChild( Ptr<ITracker> const& child ) CATCH_OVERRIDE {
+            m_children.push_back( child );
+        }
+
+        virtual ITracker* findChild( NameAndLocation const& nameAndLocation ) CATCH_OVERRIDE {
+            Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( nameAndLocation ) );
+            return( it != m_children.end() )
+                ? it->get()
+                : CATCH_NULL;
+        }
+        virtual ITracker& parent() CATCH_OVERRIDE {
+            assert( m_parent ); // Should always be non-null except for root
+            return *m_parent;
+        }
+
+        virtual void openChild() CATCH_OVERRIDE {
+            if( m_runState != ExecutingChildren ) {
+                m_runState = ExecutingChildren;
+                if( m_parent )
+                    m_parent->openChild();
+            }
+        }
+
+        virtual bool isSectionTracker() const CATCH_OVERRIDE { return false; }
+        virtual bool isIndexTracker() const CATCH_OVERRIDE { return false; }
+
+        void open() {
+            m_runState = Executing;
+            moveToThis();
+            if( m_parent )
+                m_parent->openChild();
+        }
+
+        virtual void close() CATCH_OVERRIDE {
+
+            // Close any still open children (e.g. generators)
+            while( &m_ctx.currentTracker() != this )
+                m_ctx.currentTracker().close();
+
+            switch( m_runState ) {
+                case NotStarted:
+                case CompletedSuccessfully:
+                case Failed:
+                    throw std::logic_error( "Illogical state" );
+
+                case NeedsAnotherRun:
+                    break;;
+
+                case Executing:
+                    m_runState = CompletedSuccessfully;
+                    break;
+                case ExecutingChildren:
+                    if( m_children.empty() || m_children.back()->isComplete() )
+                        m_runState = CompletedSuccessfully;
+                    break;
+
+                default:
+                    throw std::logic_error( "Unexpected state" );
+            }
+            moveToParent();
+            m_ctx.completeCycle();
+        }
+        virtual void fail() CATCH_OVERRIDE {
+            m_runState = Failed;
+            if( m_parent )
+                m_parent->markAsNeedingAnotherRun();
+            moveToParent();
+            m_ctx.completeCycle();
+        }
+        virtual void markAsNeedingAnotherRun() CATCH_OVERRIDE {
+            m_runState = NeedsAnotherRun;
+        }
+    private:
+        void moveToParent() {
+            assert( m_parent );
+            m_ctx.setCurrentTracker( m_parent );
+        }
+        void moveToThis() {
+            m_ctx.setCurrentTracker( this );
+        }
+    };
+
+    class SectionTracker : public TrackerBase {
+        std::vector<std::string> m_filters;
+    public:
+        SectionTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent )
+        :   TrackerBase( nameAndLocation, ctx, parent )
+        {
+            if( parent ) {
+                while( !parent->isSectionTracker() )
+                    parent = &parent->parent();
+
+                SectionTracker& parentSection = static_cast<SectionTracker&>( *parent );
+                addNextFilters( parentSection.m_filters );
+            }
+        }
+        virtual ~SectionTracker();
+
+        virtual bool isSectionTracker() const CATCH_OVERRIDE { return true; }
+
+        static SectionTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation ) {
+            SectionTracker* section = CATCH_NULL;
+
+            ITracker& currentTracker = ctx.currentTracker();
+            if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) {
+                assert( childTracker );
+                assert( childTracker->isSectionTracker() );
+                section = static_cast<SectionTracker*>( childTracker );
+            }
+            else {
+                section = new SectionTracker( nameAndLocation, ctx, &currentTracker );
+                currentTracker.addChild( section );
+            }
+            if( !ctx.completedCycle() )
+                section->tryOpen();
+            return *section;
+        }
+
+        void tryOpen() {
+            if( !isComplete() && (m_filters.empty() || m_filters[0].empty() ||  m_filters[0] == m_nameAndLocation.name ) )
+                open();
+        }
+
+        void addInitialFilters( std::vector<std::string> const& filters ) {
+            if( !filters.empty() ) {
+                m_filters.push_back(""); // Root - should never be consulted
+                m_filters.push_back(""); // Test Case - not a section filter
+                std::copy( filters.begin(), filters.end(), std::back_inserter( m_filters ) );
+            }
+        }
+        void addNextFilters( std::vector<std::string> const& filters ) {
+            if( filters.size() > 1 )
+                std::copy( filters.begin()+1, filters.end(), std::back_inserter( m_filters ) );
+        }
+    };
+
+    class IndexTracker : public TrackerBase {
+        int m_size;
+        int m_index;
+    public:
+        IndexTracker( NameAndLocation const& nameAndLocation, TrackerContext& ctx, ITracker* parent, int size )
+        :   TrackerBase( nameAndLocation, ctx, parent ),
+            m_size( size ),
+            m_index( -1 )
+        {}
+        virtual ~IndexTracker();
+
+        virtual bool isIndexTracker() const CATCH_OVERRIDE { return true; }
+
+        static IndexTracker& acquire( TrackerContext& ctx, NameAndLocation const& nameAndLocation, int size ) {
+            IndexTracker* tracker = CATCH_NULL;
+
+            ITracker& currentTracker = ctx.currentTracker();
+            if( ITracker* childTracker = currentTracker.findChild( nameAndLocation ) ) {
+                assert( childTracker );
+                assert( childTracker->isIndexTracker() );
+                tracker = static_cast<IndexTracker*>( childTracker );
+            }
+            else {
+                tracker = new IndexTracker( nameAndLocation, ctx, &currentTracker, size );
+                currentTracker.addChild( tracker );
+            }
+
+            if( !ctx.completedCycle() && !tracker->isComplete() ) {
+                if( tracker->m_runState != ExecutingChildren && tracker->m_runState != NeedsAnotherRun )
+                    tracker->moveNext();
+                tracker->open();
+            }
+
+            return *tracker;
+        }
+
+        int index() const { return m_index; }
+
+        void moveNext() {
+            m_index++;
+            m_children.clear();
+        }
+
+        virtual void close() CATCH_OVERRIDE {
+            TrackerBase::close();
+            if( m_runState == CompletedSuccessfully && m_index < m_size-1 )
+                m_runState = Executing;
+        }
+    };
+
+    inline ITracker& TrackerContext::startRun() {
+        m_rootTracker = new SectionTracker( NameAndLocation( "{root}", CATCH_INTERNAL_LINEINFO ), *this, CATCH_NULL );
+        m_currentTracker = CATCH_NULL;
+        m_runState = Executing;
+        return *m_rootTracker;
+    }
+
+} // namespace TestCaseTracking
+
+using TestCaseTracking::ITracker;
+using TestCaseTracking::TrackerContext;
+using TestCaseTracking::SectionTracker;
+using TestCaseTracking::IndexTracker;
+
+} // namespace Catch
+
+// #included from: catch_fatal_condition.hpp
+#define TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED
+
+namespace Catch {
+
+    // Report the error condition
+    inline void reportFatal( std::string const& message ) {
+        IContext& context = Catch::getCurrentContext();
+        IResultCapture* resultCapture = context.getResultCapture();
+        resultCapture->handleFatalErrorCondition( message );
+    }
+
+} // namespace Catch
+
+#if defined ( CATCH_PLATFORM_WINDOWS ) /////////////////////////////////////////
+// #included from: catch_windows_h_proxy.h
+
+#define TWOBLUECUBES_CATCH_WINDOWS_H_PROXY_H_INCLUDED
+
+#ifdef CATCH_DEFINES_NOMINMAX
+#  define NOMINMAX
+#endif
+#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+#  define WIN32_LEAN_AND_MEAN
+#endif
+
+#ifdef __AFXDLL
+#include <AfxWin.h>
+#else
+#include <windows.h>
+#endif
+
+#ifdef CATCH_DEFINES_NOMINMAX
+#  undef NOMINMAX
+#endif
+#ifdef CATCH_DEFINES_WIN32_LEAN_AND_MEAN
+#  undef WIN32_LEAN_AND_MEAN
+#endif
+
+
+#  if !defined ( CATCH_CONFIG_WINDOWS_SEH )
+
+namespace Catch {
+    struct FatalConditionHandler {
+        void reset() {}
+    };
+}
+
+#  else // CATCH_CONFIG_WINDOWS_SEH is defined
+
+namespace Catch {
+
+    struct SignalDefs { DWORD id; const char* name; };
+    extern SignalDefs signalDefs[];
+    // There is no 1-1 mapping between signals and windows exceptions.
+    // Windows can easily distinguish between SO and SigSegV,
+    // but SigInt, SigTerm, etc are handled differently.
+    SignalDefs signalDefs[] = {
+        { EXCEPTION_ILLEGAL_INSTRUCTION,  "SIGILL - Illegal instruction signal" },
+        { EXCEPTION_STACK_OVERFLOW, "SIGSEGV - Stack overflow" },
+        { EXCEPTION_ACCESS_VIOLATION, "SIGSEGV - Segmentation violation signal" },
+        { EXCEPTION_INT_DIVIDE_BY_ZERO, "Divide by zero error" },
+    };
+
+    struct FatalConditionHandler {
+
+        static LONG CALLBACK handleVectoredException(PEXCEPTION_POINTERS ExceptionInfo) {
+            for (int i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
+                if (ExceptionInfo->ExceptionRecord->ExceptionCode == signalDefs[i].id) {
+                    reset();
+                    reportFatal(signalDefs[i].name);
+                }
+            }
+            // If its not an exception we care about, pass it along.
+            // This stops us from eating debugger breaks etc.
+            return EXCEPTION_CONTINUE_SEARCH;
+        }
+
+        FatalConditionHandler() {
+            isSet = true;
+            // 32k seems enough for Catch to handle stack overflow,
+            // but the value was found experimentally, so there is no strong guarantee
+            guaranteeSize = 32 * 1024;
+            exceptionHandlerHandle = CATCH_NULL;
+            // Register as first handler in current chain
+            exceptionHandlerHandle = AddVectoredExceptionHandler(1, handleVectoredException);
+            // Pass in guarantee size to be filled
+            SetThreadStackGuarantee(&guaranteeSize);
+        }
+
+        static void reset() {
+            if (isSet) {
+                // Unregister handler and restore the old guarantee
+                RemoveVectoredExceptionHandler(exceptionHandlerHandle);
+                SetThreadStackGuarantee(&guaranteeSize);
+                exceptionHandlerHandle = CATCH_NULL;
+                isSet = false;
+            }
+        }
+
+        ~FatalConditionHandler() {
+            reset();
+        }
+    private:
+        static bool isSet;
+        static ULONG guaranteeSize;
+        static PVOID exceptionHandlerHandle;
+    };
+
+    bool FatalConditionHandler::isSet = false;
+    ULONG FatalConditionHandler::guaranteeSize = 0;
+    PVOID FatalConditionHandler::exceptionHandlerHandle = CATCH_NULL;
+
+} // namespace Catch
+
+#  endif // CATCH_CONFIG_WINDOWS_SEH
+
+#else // Not Windows - assumed to be POSIX compatible //////////////////////////
+
+#include <signal.h>
+
+namespace Catch {
+
+    struct SignalDefs {
+        int id;
+        const char* name;
+    };
+    extern SignalDefs signalDefs[];
+    SignalDefs signalDefs[] = {
+            { SIGINT,  "SIGINT - Terminal interrupt signal" },
+            { SIGILL,  "SIGILL - Illegal instruction signal" },
+            { SIGFPE,  "SIGFPE - Floating point error signal" },
+            { SIGSEGV, "SIGSEGV - Segmentation violation signal" },
+            { SIGTERM, "SIGTERM - Termination request signal" },
+            { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" }
+    };
+
+    struct FatalConditionHandler {
+
+        static bool isSet;
+        static struct sigaction oldSigActions [sizeof(signalDefs)/sizeof(SignalDefs)];
+        static stack_t oldSigStack;
+        static char altStackMem[SIGSTKSZ];
+
+        static void handleSignal( int sig ) {
+            std::string name = "<unknown signal>";
+            for (std::size_t i = 0; i < sizeof(signalDefs) / sizeof(SignalDefs); ++i) {
+                SignalDefs &def = signalDefs[i];
+                if (sig == def.id) {
+                    name = def.name;
+                    break;
+                }
+            }
+            reset();
+            reportFatal(name);
+            raise( sig );
+        }
+
+        FatalConditionHandler() {
+            isSet = true;
+            stack_t sigStack;
+            sigStack.ss_sp = altStackMem;
+            sigStack.ss_size = SIGSTKSZ;
+            sigStack.ss_flags = 0;
+            sigaltstack(&sigStack, &oldSigStack);
+            struct sigaction sa = { 0 };
+
+            sa.sa_handler = handleSignal;
+            sa.sa_flags = SA_ONSTACK;
+            for (std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i) {
+                sigaction(signalDefs[i].id, &sa, &oldSigActions[i]);
+            }
+        }
+
+        ~FatalConditionHandler() {
+            reset();
+        }
+        static void reset() {
+            if( isSet ) {
+                // Set signals back to previous values -- hopefully nobody overwrote them in the meantime
+                for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i ) {
+                    sigaction(signalDefs[i].id, &oldSigActions[i], CATCH_NULL);
+                }
+                // Return the old stack
+                sigaltstack(&oldSigStack, CATCH_NULL);
+                isSet = false;
+            }
+        }
+    };
+
+    bool FatalConditionHandler::isSet = false;
+    struct sigaction FatalConditionHandler::oldSigActions[sizeof(signalDefs)/sizeof(SignalDefs)] = {};
+    stack_t FatalConditionHandler::oldSigStack = {};
+    char FatalConditionHandler::altStackMem[SIGSTKSZ] = {};
+
+} // namespace Catch
+
+#endif // not Windows
+
+#include <set>
+#include <string>
+
+namespace Catch {
+
+    class StreamRedirect {
+
+    public:
+        StreamRedirect( std::ostream& stream, std::string& targetString )
+        :   m_stream( stream ),
+            m_prevBuf( stream.rdbuf() ),
+            m_targetString( targetString )
+        {
+            stream.rdbuf( m_oss.rdbuf() );
+        }
+
+        ~StreamRedirect() {
+            m_targetString += m_oss.str();
+            m_stream.rdbuf( m_prevBuf );
+        }
+
+    private:
+        std::ostream& m_stream;
+        std::streambuf* m_prevBuf;
+        std::ostringstream m_oss;
+        std::string& m_targetString;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class RunContext : public IResultCapture, public IRunner {
+
+        RunContext( RunContext const& );
+        void operator =( RunContext const& );
+
+    public:
+
+        explicit RunContext( Ptr<IConfig const> const& _config, Ptr<IStreamingReporter> const& reporter )
+        :   m_runInfo( _config->name() ),
+            m_context( getCurrentMutableContext() ),
+            m_activeTestCase( CATCH_NULL ),
+            m_config( _config ),
+            m_reporter( reporter )
+        {
+            m_context.setRunner( this );
+            m_context.setConfig( m_config );
+            m_context.setResultCapture( this );
+            m_reporter->testRunStarting( m_runInfo );
+        }
+
+        virtual ~RunContext() {
+            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) );
+        }
+
+        void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) {
+            m_reporter->testGroupStarting( GroupInfo( testSpec, groupIndex, groupsCount ) );
+        }
+        void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ) {
+            m_reporter->testGroupEnded( TestGroupStats( GroupInfo( testSpec, groupIndex, groupsCount ), totals, aborting() ) );
+        }
+
+        Totals runTest( TestCase const& testCase ) {
+            Totals prevTotals = m_totals;
+
+            std::string redirectedCout;
+            std::string redirectedCerr;
+
+            TestCaseInfo testInfo = testCase.getTestCaseInfo();
+
+            m_reporter->testCaseStarting( testInfo );
+
+            m_activeTestCase = &testCase;
+
+            do {
+                ITracker& rootTracker = m_trackerContext.startRun();
+                assert( rootTracker.isSectionTracker() );
+                static_cast<SectionTracker&>( rootTracker ).addInitialFilters( m_config->getSectionsToRun() );
+                do {
+                    m_trackerContext.startCycle();
+                    m_testCaseTracker = &SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( testInfo.name, testInfo.lineInfo ) );
+                    runCurrentTest( redirectedCout, redirectedCerr );
+                }
+                while( !m_testCaseTracker->isSuccessfullyCompleted() && !aborting() );
+            }
+            // !TBD: deprecated - this will be replaced by indexed trackers
+            while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() );
+
+            Totals deltaTotals = m_totals.delta( prevTotals );
+            if( testInfo.expectedToFail() && deltaTotals.testCases.passed > 0 ) {
+                deltaTotals.assertions.failed++;
+                deltaTotals.testCases.passed--;
+                deltaTotals.testCases.failed++;
+            }
+            m_totals.testCases += deltaTotals.testCases;
+            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
+                                                        deltaTotals,
+                                                        redirectedCout,
+                                                        redirectedCerr,
+                                                        aborting() ) );
+
+            m_activeTestCase = CATCH_NULL;
+            m_testCaseTracker = CATCH_NULL;
+
+            return deltaTotals;
+        }
+
+        Ptr<IConfig const> config() const {
+            return m_config;
+        }
+
+    private: // IResultCapture
+
+        virtual void assertionEnded( AssertionResult const& result ) {
+            if( result.getResultType() == ResultWas::Ok ) {
+                m_totals.assertions.passed++;
+            }
+            else if( !result.isOk() ) {
+                m_totals.assertions.failed++;
+            }
+
+            if( m_reporter->assertionEnded( AssertionStats( result, m_messages, m_totals ) ) )
+                m_messages.clear();
+
+            // Reset working state
+            m_lastAssertionInfo = AssertionInfo( std::string(), m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}" , m_lastAssertionInfo.resultDisposition );
+            m_lastResult = result;
+        }
+
+        virtual bool sectionStarted (
+            SectionInfo const& sectionInfo,
+            Counts& assertions
+        )
+        {
+            ITracker& sectionTracker = SectionTracker::acquire( m_trackerContext, TestCaseTracking::NameAndLocation( sectionInfo.name, sectionInfo.lineInfo ) );
+            if( !sectionTracker.isOpen() )
+                return false;
+            m_activeSections.push_back( &sectionTracker );
+
+            m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo;
+
+            m_reporter->sectionStarting( sectionInfo );
+
+            assertions = m_totals.assertions;
+
+            return true;
+        }
+        bool testForMissingAssertions( Counts& assertions ) {
+            if( assertions.total() != 0 )
+                return false;
+            if( !m_config->warnAboutMissingAssertions() )
+                return false;
+            if( m_trackerContext.currentTracker().hasChildren() )
+                return false;
+            m_totals.assertions.failed++;
+            assertions.failed++;
+            return true;
+        }
+
+        virtual void sectionEnded( SectionEndInfo const& endInfo ) {
+            Counts assertions = m_totals.assertions - endInfo.prevAssertions;
+            bool missingAssertions = testForMissingAssertions( assertions );
+
+            if( !m_activeSections.empty() ) {
+                m_activeSections.back()->close();
+                m_activeSections.pop_back();
+            }
+
+            m_reporter->sectionEnded( SectionStats( endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions ) );
+            m_messages.clear();
+        }
+
+        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) {
+            if( m_unfinishedSections.empty() )
+                m_activeSections.back()->fail();
+            else
+                m_activeSections.back()->close();
+            m_activeSections.pop_back();
+
+            m_unfinishedSections.push_back( endInfo );
+        }
+
+        virtual void pushScopedMessage( MessageInfo const& message ) {
+            m_messages.push_back( message );
+        }
+
+        virtual void popScopedMessage( MessageInfo const& message ) {
+            m_messages.erase( std::remove( m_messages.begin(), m_messages.end(), message ), m_messages.end() );
+        }
+
+        virtual std::string getCurrentTestName() const {
+            return m_activeTestCase
+                ? m_activeTestCase->getTestCaseInfo().name
+                : std::string();
+        }
+
+        virtual const AssertionResult* getLastResult() const {
+            return &m_lastResult;
+        }
+
+        virtual void handleFatalErrorCondition( std::string const& message ) {
+            ResultBuilder resultBuilder = makeUnexpectedResultBuilder();
+            resultBuilder.setResultType( ResultWas::FatalErrorCondition );
+            resultBuilder << message;
+            resultBuilder.captureExpression();
+
+            handleUnfinishedSections();
+
+            // Recreate section for test case (as we will lose the one that was in scope)
+            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
+            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
+
+            Counts assertions;
+            assertions.failed = 1;
+            SectionStats testCaseSectionStats( testCaseSection, assertions, 0, false );
+            m_reporter->sectionEnded( testCaseSectionStats );
+
+            TestCaseInfo testInfo = m_activeTestCase->getTestCaseInfo();
+
+            Totals deltaTotals;
+            deltaTotals.testCases.failed = 1;
+            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
+                                                        deltaTotals,
+                                                        std::string(),
+                                                        std::string(),
+                                                        false ) );
+            m_totals.testCases.failed++;
+            testGroupEnded( std::string(), m_totals, 1, 1 );
+            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, false ) );
+        }
+
+    public:
+        // !TBD We need to do this another way!
+        bool aborting() const {
+            return m_totals.assertions.failed == static_cast<std::size_t>( m_config->abortAfter() );
+        }
+
+    private:
+
+        void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) {
+            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
+            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
+            m_reporter->sectionStarting( testCaseSection );
+            Counts prevAssertions = m_totals.assertions;
+            double duration = 0;
+            try {
+                m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, std::string(), ResultDisposition::Normal );
+
+                seedRng( *m_config );
+
+                Timer timer;
+                timer.start();
+                if( m_reporter->getPreferences().shouldRedirectStdOut ) {
+                    StreamRedirect coutRedir( Catch::cout(), redirectedCout );
+                    StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr );
+                    invokeActiveTestCase();
+                }
+                else {
+                    invokeActiveTestCase();
+                }
+                duration = timer.getElapsedSeconds();
+            }
+            catch( TestFailureException& ) {
+                // This just means the test was aborted due to failure
+            }
+            catch(...) {
+                makeUnexpectedResultBuilder().useActiveException();
+            }
+            m_testCaseTracker->close();
+            handleUnfinishedSections();
+            m_messages.clear();
+
+            Counts assertions = m_totals.assertions - prevAssertions;
+            bool missingAssertions = testForMissingAssertions( assertions );
+
+            if( testCaseInfo.okToFail() ) {
+                std::swap( assertions.failedButOk, assertions.failed );
+                m_totals.assertions.failed -= assertions.failedButOk;
+                m_totals.assertions.failedButOk += assertions.failedButOk;
+            }
+
+            SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions );
+            m_reporter->sectionEnded( testCaseSectionStats );
+        }
+
+        void invokeActiveTestCase() {
+            FatalConditionHandler fatalConditionHandler; // Handle signals
+            m_activeTestCase->invoke();
+            fatalConditionHandler.reset();
+        }
+
+    private:
+
+        ResultBuilder makeUnexpectedResultBuilder() const {
+            return ResultBuilder(   m_lastAssertionInfo.macroName.c_str(),
+                                    m_lastAssertionInfo.lineInfo,
+                                    m_lastAssertionInfo.capturedExpression.c_str(),
+                                    m_lastAssertionInfo.resultDisposition );
+        }
+
+        void handleUnfinishedSections() {
+            // If sections ended prematurely due to an exception we stored their
+            // infos here so we can tear them down outside the unwind process.
+            for( std::vector<SectionEndInfo>::const_reverse_iterator it = m_unfinishedSections.rbegin(),
+                        itEnd = m_unfinishedSections.rend();
+                    it != itEnd;
+                    ++it )
+                sectionEnded( *it );
+            m_unfinishedSections.clear();
+        }
+
+        TestRunInfo m_runInfo;
+        IMutableContext& m_context;
+        TestCase const* m_activeTestCase;
+        ITracker* m_testCaseTracker;
+        ITracker* m_currentSectionTracker;
+        AssertionResult m_lastResult;
+
+        Ptr<IConfig const> m_config;
+        Totals m_totals;
+        Ptr<IStreamingReporter> m_reporter;
+        std::vector<MessageInfo> m_messages;
+        AssertionInfo m_lastAssertionInfo;
+        std::vector<SectionEndInfo> m_unfinishedSections;
+        std::vector<ITracker*> m_activeSections;
+        TrackerContext m_trackerContext;
+    };
+
+    IResultCapture& getResultCapture() {
+        if( IResultCapture* capture = getCurrentContext().getResultCapture() )
+            return *capture;
+        else
+            throw std::logic_error( "No result capture instance" );
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_version.h
+#define TWOBLUECUBES_CATCH_VERSION_H_INCLUDED
+
+namespace Catch {
+
+    // Versioning information
+    struct Version {
+        Version(    unsigned int _majorVersion,
+                    unsigned int _minorVersion,
+                    unsigned int _patchNumber,
+                    std::string const& _branchName,
+                    unsigned int _buildNumber );
+
+        unsigned int const majorVersion;
+        unsigned int const minorVersion;
+        unsigned int const patchNumber;
+
+        // buildNumber is only used if branchName is not null
+        std::string const branchName;
+        unsigned int const buildNumber;
+
+        friend std::ostream& operator << ( std::ostream& os, Version const& version );
+
+    private:
+        void operator=( Version const& );
+    };
+
+    extern Version libraryVersion;
+}
+
+#include <fstream>
+#include <stdlib.h>
+#include <limits>
+
+namespace Catch {
+
+    Ptr<IStreamingReporter> createReporter( std::string const& reporterName, Ptr<Config> const& config ) {
+        Ptr<IStreamingReporter> reporter = getRegistryHub().getReporterRegistry().create( reporterName, config.get() );
+        if( !reporter ) {
+            std::ostringstream oss;
+            oss << "No reporter registered with name: '" << reporterName << "'";
+            throw std::domain_error( oss.str() );
+        }
+        return reporter;
+    }
+
+    Ptr<IStreamingReporter> makeReporter( Ptr<Config> const& config ) {
+        std::vector<std::string> reporters = config->getReporterNames();
+        if( reporters.empty() )
+            reporters.push_back( "console" );
+
+        Ptr<IStreamingReporter> reporter;
+        for( std::vector<std::string>::const_iterator it = reporters.begin(), itEnd = reporters.end();
+                it != itEnd;
+                ++it )
+            reporter = addReporter( reporter, createReporter( *it, config ) );
+        return reporter;
+    }
+    Ptr<IStreamingReporter> addListeners( Ptr<IConfig const> const& config, Ptr<IStreamingReporter> reporters ) {
+        IReporterRegistry::Listeners listeners = getRegistryHub().getReporterRegistry().getListeners();
+        for( IReporterRegistry::Listeners::const_iterator it = listeners.begin(), itEnd = listeners.end();
+                it != itEnd;
+                ++it )
+            reporters = addReporter(reporters, (*it)->create( ReporterConfig( config ) ) );
+        return reporters;
+    }
+
+    Totals runTests( Ptr<Config> const& config ) {
+
+        Ptr<IConfig const> iconfig = config.get();
+
+        Ptr<IStreamingReporter> reporter = makeReporter( config );
+        reporter = addListeners( iconfig, reporter );
+
+        RunContext context( iconfig, reporter );
+
+        Totals totals;
+
+        context.testGroupStarting( config->name(), 1, 1 );
+
+        TestSpec testSpec = config->testSpec();
+        if( !testSpec.hasFilters() )
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests
+
+        std::vector<TestCase> const& allTestCases = getAllTestCasesSorted( *iconfig );
+        for( std::vector<TestCase>::const_iterator it = allTestCases.begin(), itEnd = allTestCases.end();
+                it != itEnd;
+                ++it ) {
+            if( !context.aborting() && matchTest( *it, testSpec, *iconfig ) )
+                totals += context.runTest( *it );
+            else
+                reporter->skipTest( *it );
+        }
+
+        context.testGroupEnded( iconfig->name(), totals, 1, 1 );
+        return totals;
+    }
+
+    void applyFilenamesAsTags( IConfig const& config ) {
+        std::vector<TestCase> const& tests = getAllTestCasesSorted( config );
+        for(std::size_t i = 0; i < tests.size(); ++i ) {
+            TestCase& test = const_cast<TestCase&>( tests[i] );
+            std::set<std::string> tags = test.tags;
+
+            std::string filename = test.lineInfo.file;
+            std::string::size_type lastSlash = filename.find_last_of( "\\/" );
+            if( lastSlash != std::string::npos )
+                filename = filename.substr( lastSlash+1 );
+
+            std::string::size_type lastDot = filename.find_last_of( "." );
+            if( lastDot != std::string::npos )
+                filename = filename.substr( 0, lastDot );
+
+            tags.insert( "#" + filename );
+            setTags( test, tags );
+        }
+    }
+
+    class Session : NonCopyable {
+        static bool alreadyInstantiated;
+
+    public:
+
+        struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; };
+
+        Session()
+        : m_cli( makeCommandLineParser() ) {
+            if( alreadyInstantiated ) {
+                std::string msg = "Only one instance of Catch::Session can ever be used";
+                Catch::cerr() << msg << std::endl;
+                throw std::logic_error( msg );
+            }
+            alreadyInstantiated = true;
+        }
+        ~Session() {
+            Catch::cleanUp();
+        }
+
+        void showHelp( std::string const& processName ) {
+            Catch::cout() << "\nCatch v" << libraryVersion << "\n";
+
+            m_cli.usage( Catch::cout(), processName );
+            Catch::cout() << "For more detail usage please see the project docs\n" << std::endl;
+        }
+
+        int applyCommandLine( int argc, char const* const* const argv, OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) {
+            try {
+                m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail );
+                m_unusedTokens = m_cli.parseInto( Clara::argsToVector( argc, argv ), m_configData );
+                if( m_configData.showHelp )
+                    showHelp( m_configData.processName );
+                m_config.reset();
+            }
+            catch( std::exception& ex ) {
+                {
+                    Colour colourGuard( Colour::Red );
+                    Catch::cerr()
+                        << "\nError(s) in input:\n"
+                        << Text( ex.what(), TextAttributes().setIndent(2) )
+                        << "\n\n";
+                }
+                m_cli.usage( Catch::cout(), m_configData.processName );
+                return (std::numeric_limits<int>::max)();
+            }
+            return 0;
+        }
+
+        void useConfigData( ConfigData const& _configData ) {
+            m_configData = _configData;
+            m_config.reset();
+        }
+
+        int run( int argc, char const* const* const argv ) {
+
+            int returnCode = applyCommandLine( argc, argv );
+            if( returnCode == 0 )
+                returnCode = run();
+            return returnCode;
+        }
+
+        int run() {
+            if( m_configData.showHelp )
+                return 0;
+
+            try
+            {
+                config(); // Force config to be constructed
+
+                seedRng( *m_config );
+
+                if( m_configData.filenamesAsTags )
+                    applyFilenamesAsTags( *m_config );
+
+                // Handle list request
+                if( Option<std::size_t> listed = list( config() ) )
+                    return static_cast<int>( *listed );
+
+                return static_cast<int>( runTests( m_config ).assertions.failed );
+            }
+            catch( std::exception& ex ) {
+                Catch::cerr() << ex.what() << std::endl;
+                return (std::numeric_limits<int>::max)();
+            }
+        }
+
+        Clara::CommandLine<ConfigData> const& cli() const {
+            return m_cli;
+        }
+        std::vector<Clara::Parser::Token> const& unusedTokens() const {
+            return m_unusedTokens;
+        }
+        ConfigData& configData() {
+            return m_configData;
+        }
+        Config& config() {
+            if( !m_config )
+                m_config = new Config( m_configData );
+            return *m_config;
+        }
+    private:
+        Clara::CommandLine<ConfigData> m_cli;
+        std::vector<Clara::Parser::Token> m_unusedTokens;
+        ConfigData m_configData;
+        Ptr<Config> m_config;
+    };
+
+    bool Session::alreadyInstantiated = false;
+
+} // end namespace Catch
+
+// #included from: catch_registry_hub.hpp
+#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED
+
+// #included from: catch_test_case_registry_impl.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED
+
+#include <vector>
+#include <set>
+#include <sstream>
+#include <algorithm>
+
+namespace Catch {
+
+    struct RandomNumberGenerator {
+        typedef std::ptrdiff_t result_type;
+
+        result_type operator()( result_type n ) const { return std::rand() % n; }
+
+#ifdef CATCH_CONFIG_CPP11_SHUFFLE
+        static constexpr result_type min() { return 0; }
+        static constexpr result_type max() { return 1000000; }
+        result_type operator()() const { return std::rand() % max(); }
+#endif
+        template<typename V>
+        static void shuffle( V& vector ) {
+            RandomNumberGenerator rng;
+#ifdef CATCH_CONFIG_CPP11_SHUFFLE
+            std::shuffle( vector.begin(), vector.end(), rng );
+#else
+            std::random_shuffle( vector.begin(), vector.end(), rng );
+#endif
+        }
+    };
+
+    inline std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ) {
+
+        std::vector<TestCase> sorted = unsortedTestCases;
+
+        switch( config.runOrder() ) {
+            case RunTests::InLexicographicalOrder:
+                std::sort( sorted.begin(), sorted.end() );
+                break;
+            case RunTests::InRandomOrder:
+                {
+                    seedRng( config );
+                    RandomNumberGenerator::shuffle( sorted );
+                }
+                break;
+            case RunTests::InDeclarationOrder:
+                // already in declaration order
+                break;
+        }
+        return sorted;
+    }
+    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) {
+        return testSpec.matches( testCase ) && ( config.allowThrows() || !testCase.throws() );
+    }
+
+    void enforceNoDuplicateTestCases( std::vector<TestCase> const& functions ) {
+        std::set<TestCase> seenFunctions;
+        for( std::vector<TestCase>::const_iterator it = functions.begin(), itEnd = functions.end();
+            it != itEnd;
+            ++it ) {
+            std::pair<std::set<TestCase>::const_iterator, bool> prev = seenFunctions.insert( *it );
+            if( !prev.second ) {
+                std::ostringstream ss;
+
+                ss  << Colour( Colour::Red )
+                    << "error: TEST_CASE( \"" << it->name << "\" ) already defined.\n"
+                    << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo << '\n'
+                    << "\tRedefined at " << it->getTestCaseInfo().lineInfo << std::endl;
+
+                throw std::runtime_error(ss.str());
+            }
+        }
+    }
+
+    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ) {
+        std::vector<TestCase> filtered;
+        filtered.reserve( testCases.size() );
+        for( std::vector<TestCase>::const_iterator it = testCases.begin(), itEnd = testCases.end();
+                it != itEnd;
+                ++it )
+            if( matchTest( *it, testSpec, config ) )
+                filtered.push_back( *it );
+        return filtered;
+    }
+    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ) {
+        return getRegistryHub().getTestCaseRegistry().getAllTestsSorted( config );
+    }
+
+    class TestRegistry : public ITestCaseRegistry {
+    public:
+        TestRegistry()
+        :   m_currentSortOrder( RunTests::InDeclarationOrder ),
+            m_unnamedCount( 0 )
+        {}
+        virtual ~TestRegistry();
+
+        virtual void registerTest( TestCase const& testCase ) {
+            std::string name = testCase.getTestCaseInfo().name;
+            if( name.empty() ) {
+                std::ostringstream oss;
+                oss << "Anonymous test case " << ++m_unnamedCount;
+                return registerTest( testCase.withName( oss.str() ) );
+            }
+            m_functions.push_back( testCase );
+        }
+
+        virtual std::vector<TestCase> const& getAllTests() const {
+            return m_functions;
+        }
+        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const {
+            if( m_sortedFunctions.empty() )
+                enforceNoDuplicateTestCases( m_functions );
+
+            if(  m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty() ) {
+                m_sortedFunctions = sortTests( config, m_functions );
+                m_currentSortOrder = config.runOrder();
+            }
+            return m_sortedFunctions;
+        }
+
+    private:
+        std::vector<TestCase> m_functions;
+        mutable RunTests::InWhatOrder m_currentSortOrder;
+        mutable std::vector<TestCase> m_sortedFunctions;
+        size_t m_unnamedCount;
+        std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class FreeFunctionTestCase : public SharedImpl<ITestCase> {
+    public:
+
+        FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {}
+
+        virtual void invoke() const {
+            m_fun();
+        }
+
+    private:
+        virtual ~FreeFunctionTestCase();
+
+        TestFunction m_fun;
+    };
+
+    inline std::string extractClassName( std::string const& classOrQualifiedMethodName ) {
+        std::string className = classOrQualifiedMethodName;
+        if( startsWith( className, '&' ) )
+        {
+            std::size_t lastColons = className.rfind( "::" );
+            std::size_t penultimateColons = className.rfind( "::", lastColons-1 );
+            if( penultimateColons == std::string::npos )
+                penultimateColons = 1;
+            className = className.substr( penultimateColons, lastColons-penultimateColons );
+        }
+        return className;
+    }
+
+    void registerTestCase
+        (   ITestCase* testCase,
+            char const* classOrQualifiedMethodName,
+            NameAndDesc const& nameAndDesc,
+            SourceLineInfo const& lineInfo ) {
+
+        getMutableRegistryHub().registerTest
+            ( makeTestCase
+                (   testCase,
+                    extractClassName( classOrQualifiedMethodName ),
+                    nameAndDesc.name,
+                    nameAndDesc.description,
+                    lineInfo ) );
+    }
+    void registerTestCaseFunction
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc ) {
+        registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo );
+    }
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    AutoReg::AutoReg
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc ) {
+        registerTestCaseFunction( function, lineInfo, nameAndDesc );
+    }
+
+    AutoReg::~AutoReg() {}
+
+} // end namespace Catch
+
+// #included from: catch_reporter_registry.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED
+
+#include <map>
+
+namespace Catch {
+
+    class ReporterRegistry : public IReporterRegistry {
+
+    public:
+
+        virtual ~ReporterRegistry() CATCH_OVERRIDE {}
+
+        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const CATCH_OVERRIDE {
+            FactoryMap::const_iterator it =  m_factories.find( name );
+            if( it == m_factories.end() )
+                return CATCH_NULL;
+            return it->second->create( ReporterConfig( config ) );
+        }
+
+        void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) {
+            m_factories.insert( std::make_pair( name, factory ) );
+        }
+        void registerListener( Ptr<IReporterFactory> const& factory ) {
+            m_listeners.push_back( factory );
+        }
+
+        virtual FactoryMap const& getFactories() const CATCH_OVERRIDE {
+            return m_factories;
+        }
+        virtual Listeners const& getListeners() const CATCH_OVERRIDE {
+            return m_listeners;
+        }
+
+    private:
+        FactoryMap m_factories;
+        Listeners m_listeners;
+    };
+}
+
+// #included from: catch_exception_translator_registry.hpp
+#define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED
+
+#ifdef __OBJC__
+#import "Foundation/Foundation.h"
+#endif
+
+namespace Catch {
+
+    class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
+    public:
+        ~ExceptionTranslatorRegistry() {
+            deleteAll( m_translators );
+        }
+
+        virtual void registerTranslator( const IExceptionTranslator* translator ) {
+            m_translators.push_back( translator );
+        }
+
+        virtual std::string translateActiveException() const {
+            try {
+#ifdef __OBJC__
+                // In Objective-C try objective-c exceptions first
+                @try {
+                    return tryTranslators();
+                }
+                @catch (NSException *exception) {
+                    return Catch::toString( [exception description] );
+                }
+#else
+                return tryTranslators();
+#endif
+            }
+            catch( TestFailureException& ) {
+                throw;
+            }
+            catch( std::exception& ex ) {
+                return ex.what();
+            }
+            catch( std::string& msg ) {
+                return msg;
+            }
+            catch( const char* msg ) {
+                return msg;
+            }
+            catch(...) {
+                return "Unknown exception";
+            }
+        }
+
+        std::string tryTranslators() const {
+            if( m_translators.empty() )
+                throw;
+            else
+                return m_translators[0]->translate( m_translators.begin()+1, m_translators.end() );
+        }
+
+    private:
+        std::vector<const IExceptionTranslator*> m_translators;
+    };
+}
+
+namespace Catch {
+
+    namespace {
+
+        class RegistryHub : public IRegistryHub, public IMutableRegistryHub {
+
+            RegistryHub( RegistryHub const& );
+            void operator=( RegistryHub const& );
+
+        public: // IRegistryHub
+            RegistryHub() {
+            }
+            virtual IReporterRegistry const& getReporterRegistry() const CATCH_OVERRIDE {
+                return m_reporterRegistry;
+            }
+            virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_OVERRIDE {
+                return m_testCaseRegistry;
+            }
+            virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() CATCH_OVERRIDE {
+                return m_exceptionTranslatorRegistry;
+            }
+
+        public: // IMutableRegistryHub
+            virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
+                m_reporterRegistry.registerReporter( name, factory );
+            }
+            virtual void registerListener( Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
+                m_reporterRegistry.registerListener( factory );
+            }
+            virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE {
+                m_testCaseRegistry.registerTest( testInfo );
+            }
+            virtual void registerTranslator( const IExceptionTranslator* translator ) CATCH_OVERRIDE {
+                m_exceptionTranslatorRegistry.registerTranslator( translator );
+            }
+
+        private:
+            TestRegistry m_testCaseRegistry;
+            ReporterRegistry m_reporterRegistry;
+            ExceptionTranslatorRegistry m_exceptionTranslatorRegistry;
+        };
+
+        // Single, global, instance
+        inline RegistryHub*& getTheRegistryHub() {
+            static RegistryHub* theRegistryHub = CATCH_NULL;
+            if( !theRegistryHub )
+                theRegistryHub = new RegistryHub();
+            return theRegistryHub;
+        }
+    }
+
+    IRegistryHub& getRegistryHub() {
+        return *getTheRegistryHub();
+    }
+    IMutableRegistryHub& getMutableRegistryHub() {
+        return *getTheRegistryHub();
+    }
+    void cleanUp() {
+        delete getTheRegistryHub();
+        getTheRegistryHub() = CATCH_NULL;
+        cleanUpContext();
+    }
+    std::string translateActiveException() {
+        return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_notimplemented_exception.hpp
+#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED
+
+#include <sstream>
+
+namespace Catch {
+
+    NotImplementedException::NotImplementedException( SourceLineInfo const& lineInfo )
+    :   m_lineInfo( lineInfo ) {
+        std::ostringstream oss;
+        oss << lineInfo << ": function ";
+        oss << "not implemented";
+        m_what = oss.str();
+    }
+
+    const char* NotImplementedException::what() const CATCH_NOEXCEPT {
+        return m_what.c_str();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_context_impl.hpp
+#define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED
+
+// #included from: catch_stream.hpp
+#define TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED
+
+#include <stdexcept>
+#include <cstdio>
+#include <iostream>
+
+namespace Catch {
+
+    template<typename WriterF, size_t bufferSize=256>
+    class StreamBufImpl : public StreamBufBase {
+        char data[bufferSize];
+        WriterF m_writer;
+
+    public:
+        StreamBufImpl() {
+            setp( data, data + sizeof(data) );
+        }
+
+        ~StreamBufImpl() CATCH_NOEXCEPT {
+            sync();
+        }
+
+    private:
+        int overflow( int c ) {
+            sync();
+
+            if( c != EOF ) {
+                if( pbase() == epptr() )
+                    m_writer( std::string( 1, static_cast<char>( c ) ) );
+                else
+                    sputc( static_cast<char>( c ) );
+            }
+            return 0;
+        }
+
+        int sync() {
+            if( pbase() != pptr() ) {
+                m_writer( std::string( pbase(), static_cast<std::string::size_type>( pptr() - pbase() ) ) );
+                setp( pbase(), epptr() );
+            }
+            return 0;
+        }
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    FileStream::FileStream( std::string const& filename ) {
+        m_ofs.open( filename.c_str() );
+        if( m_ofs.fail() ) {
+            std::ostringstream oss;
+            oss << "Unable to open file: '" << filename << '\'';
+            throw std::domain_error( oss.str() );
+        }
+    }
+
+    std::ostream& FileStream::stream() const {
+        return m_ofs;
+    }
+
+    struct OutputDebugWriter {
+
+        void operator()( std::string const&str ) {
+            writeToDebugConsole( str );
+        }
+    };
+
+    DebugOutStream::DebugOutStream()
+    :   m_streamBuf( new StreamBufImpl<OutputDebugWriter>() ),
+        m_os( m_streamBuf.get() )
+    {}
+
+    std::ostream& DebugOutStream::stream() const {
+        return m_os;
+    }
+
+    // Store the streambuf from cout up-front because
+    // cout may get redirected when running tests
+    CoutStream::CoutStream()
+    :   m_os( Catch::cout().rdbuf() )
+    {}
+
+    std::ostream& CoutStream::stream() const {
+        return m_os;
+    }
+
+#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions
+    std::ostream& cout() {
+        return std::cout;
+    }
+    std::ostream& cerr() {
+        return std::cerr;
+    }
+#endif
+}
+
+namespace Catch {
+
+    class Context : public IMutableContext {
+
+        Context() : m_config( CATCH_NULL ), m_runner( CATCH_NULL ), m_resultCapture( CATCH_NULL ) {}
+        Context( Context const& );
+        void operator=( Context const& );
+
+    public:
+        virtual ~Context() {
+            deleteAllValues( m_generatorsByTestName );
+        }
+
+    public: // IContext
+        virtual IResultCapture* getResultCapture() {
+            return m_resultCapture;
+        }
+        virtual IRunner* getRunner() {
+            return m_runner;
+        }
+        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) {
+            return getGeneratorsForCurrentTest()
+            .getGeneratorInfo( fileInfo, totalSize )
+            .getCurrentIndex();
+        }
+        virtual bool advanceGeneratorsForCurrentTest() {
+            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
+            return generators && generators->moveNext();
+        }
+
+        virtual Ptr<IConfig const> getConfig() const {
+            return m_config;
+        }
+
+    public: // IMutableContext
+        virtual void setResultCapture( IResultCapture* resultCapture ) {
+            m_resultCapture = resultCapture;
+        }
+        virtual void setRunner( IRunner* runner ) {
+            m_runner = runner;
+        }
+        virtual void setConfig( Ptr<IConfig const> const& config ) {
+            m_config = config;
+        }
+
+        friend IMutableContext& getCurrentMutableContext();
+
+    private:
+        IGeneratorsForTest* findGeneratorsForCurrentTest() {
+            std::string testName = getResultCapture()->getCurrentTestName();
+
+            std::map<std::string, IGeneratorsForTest*>::const_iterator it =
+                m_generatorsByTestName.find( testName );
+            return it != m_generatorsByTestName.end()
+                ? it->second
+                : CATCH_NULL;
+        }
+
+        IGeneratorsForTest& getGeneratorsForCurrentTest() {
+            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
+            if( !generators ) {
+                std::string testName = getResultCapture()->getCurrentTestName();
+                generators = createGeneratorsForTest();
+                m_generatorsByTestName.insert( std::make_pair( testName, generators ) );
+            }
+            return *generators;
+        }
+
+    private:
+        Ptr<IConfig const> m_config;
+        IRunner* m_runner;
+        IResultCapture* m_resultCapture;
+        std::map<std::string, IGeneratorsForTest*> m_generatorsByTestName;
+    };
+
+    namespace {
+        Context* currentContext = CATCH_NULL;
+    }
+    IMutableContext& getCurrentMutableContext() {
+        if( !currentContext )
+            currentContext = new Context();
+        return *currentContext;
+    }
+    IContext& getCurrentContext() {
+        return getCurrentMutableContext();
+    }
+
+    void cleanUpContext() {
+        delete currentContext;
+        currentContext = CATCH_NULL;
+    }
+}
+
+// #included from: catch_console_colour_impl.hpp
+#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED
+
+namespace Catch {
+    namespace {
+
+        struct IColourImpl {
+            virtual ~IColourImpl() {}
+            virtual void use( Colour::Code _colourCode ) = 0;
+        };
+
+        struct NoColourImpl : IColourImpl {
+            void use( Colour::Code ) {}
+
+            static IColourImpl* instance() {
+                static NoColourImpl s_instance;
+                return &s_instance;
+            }
+        };
+
+    } // anon namespace
+} // namespace Catch
+
+#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI )
+#   ifdef CATCH_PLATFORM_WINDOWS
+#       define CATCH_CONFIG_COLOUR_WINDOWS
+#   else
+#       define CATCH_CONFIG_COLOUR_ANSI
+#   endif
+#endif
+
+#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) /////////////////////////////////////////
+
+namespace Catch {
+namespace {
+
+    class Win32ColourImpl : public IColourImpl {
+    public:
+        Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) )
+        {
+            CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
+            GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo );
+            originalForegroundAttributes = csbiInfo.wAttributes & ~( BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY );
+            originalBackgroundAttributes = csbiInfo.wAttributes & ~( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY );
+        }
+
+        virtual void use( Colour::Code _colourCode ) {
+            switch( _colourCode ) {
+                case Colour::None:      return setTextAttribute( originalForegroundAttributes );
+                case Colour::White:     return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
+                case Colour::Red:       return setTextAttribute( FOREGROUND_RED );
+                case Colour::Green:     return setTextAttribute( FOREGROUND_GREEN );
+                case Colour::Blue:      return setTextAttribute( FOREGROUND_BLUE );
+                case Colour::Cyan:      return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN );
+                case Colour::Yellow:    return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN );
+                case Colour::Grey:      return setTextAttribute( 0 );
+
+                case Colour::LightGrey:     return setTextAttribute( FOREGROUND_INTENSITY );
+                case Colour::BrightRed:     return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED );
+                case Colour::BrightGreen:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN );
+                case Colour::BrightWhite:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
+
+                case Colour::Bright: throw std::logic_error( "not a colour" );
+            }
+        }
+
+    private:
+        void setTextAttribute( WORD _textAttribute ) {
+            SetConsoleTextAttribute( stdoutHandle, _textAttribute | originalBackgroundAttributes );
+        }
+        HANDLE stdoutHandle;
+        WORD originalForegroundAttributes;
+        WORD originalBackgroundAttributes;
+    };
+
+    IColourImpl* platformColourInstance() {
+        static Win32ColourImpl s_instance;
+
+        Ptr<IConfig const> config = getCurrentContext().getConfig();
+        UseColour::YesOrNo colourMode = config
+            ? config->useColour()
+            : UseColour::Auto;
+        if( colourMode == UseColour::Auto )
+            colourMode = !isDebuggerActive()
+                ? UseColour::Yes
+                : UseColour::No;
+        return colourMode == UseColour::Yes
+            ? &s_instance
+            : NoColourImpl::instance();
+    }
+
+} // end anon namespace
+} // end namespace Catch
+
+#elif defined( CATCH_CONFIG_COLOUR_ANSI ) //////////////////////////////////////
+
+#include <unistd.h>
+
+namespace Catch {
+namespace {
+
+    // use POSIX/ ANSI console terminal codes
+    // Thanks to Adam Strzelecki for original contribution
+    // (http://github.com/nanoant)
+    // https://github.com/philsquared/Catch/pull/131
+    class PosixColourImpl : public IColourImpl {
+    public:
+        virtual void use( Colour::Code _colourCode ) {
+            switch( _colourCode ) {
+                case Colour::None:
+                case Colour::White:     return setColour( "[0m" );
+                case Colour::Red:       return setColour( "[0;31m" );
+                case Colour::Green:     return setColour( "[0;32m" );
+                case Colour::Blue:      return setColour( "[0;34m" );
+                case Colour::Cyan:      return setColour( "[0;36m" );
+                case Colour::Yellow:    return setColour( "[0;33m" );
+                case Colour::Grey:      return setColour( "[1;30m" );
+
+                case Colour::LightGrey:     return setColour( "[0;37m" );
+                case Colour::BrightRed:     return setColour( "[1;31m" );
+                case Colour::BrightGreen:   return setColour( "[1;32m" );
+                case Colour::BrightWhite:   return setColour( "[1;37m" );
+
+                case Colour::Bright: throw std::logic_error( "not a colour" );
+            }
+        }
+        static IColourImpl* instance() {
+            static PosixColourImpl s_instance;
+            return &s_instance;
+        }
+
+    private:
+        void setColour( const char* _escapeCode ) {
+            Catch::cout() << '\033' << _escapeCode;
+        }
+    };
+
+    IColourImpl* platformColourInstance() {
+        Ptr<IConfig const> config = getCurrentContext().getConfig();
+        UseColour::YesOrNo colourMode = config
+            ? config->useColour()
+            : UseColour::Auto;
+        if( colourMode == UseColour::Auto )
+            colourMode = (!isDebuggerActive() && isatty(STDOUT_FILENO) )
+                ? UseColour::Yes
+                : UseColour::No;
+        return colourMode == UseColour::Yes
+            ? PosixColourImpl::instance()
+            : NoColourImpl::instance();
+    }
+
+} // end anon namespace
+} // end namespace Catch
+
+#else  // not Windows or ANSI ///////////////////////////////////////////////
+
+namespace Catch {
+
+    static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); }
+
+} // end namespace Catch
+
+#endif // Windows/ ANSI/ None
+
+namespace Catch {
+
+    Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); }
+    Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast<Colour&>( _other ).m_moved = true; }
+    Colour::~Colour(){ if( !m_moved ) use( None ); }
+
+    void Colour::use( Code _colourCode ) {
+        static IColourImpl* impl = platformColourInstance();
+        impl->use( _colourCode );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_generators_impl.hpp
+#define TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED
+
+#include <vector>
+#include <string>
+#include <map>
+
+namespace Catch {
+
+    struct GeneratorInfo : IGeneratorInfo {
+
+        GeneratorInfo( std::size_t size )
+        :   m_size( size ),
+            m_currentIndex( 0 )
+        {}
+
+        bool moveNext() {
+            if( ++m_currentIndex == m_size ) {
+                m_currentIndex = 0;
+                return false;
+            }
+            return true;
+        }
+
+        std::size_t getCurrentIndex() const {
+            return m_currentIndex;
+        }
+
+        std::size_t m_size;
+        std::size_t m_currentIndex;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class GeneratorsForTest : public IGeneratorsForTest {
+
+    public:
+        ~GeneratorsForTest() {
+            deleteAll( m_generatorsInOrder );
+        }
+
+        IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) {
+            std::map<std::string, IGeneratorInfo*>::const_iterator it = m_generatorsByName.find( fileInfo );
+            if( it == m_generatorsByName.end() ) {
+                IGeneratorInfo* info = new GeneratorInfo( size );
+                m_generatorsByName.insert( std::make_pair( fileInfo, info ) );
+                m_generatorsInOrder.push_back( info );
+                return *info;
+            }
+            return *it->second;
+        }
+
+        bool moveNext() {
+            std::vector<IGeneratorInfo*>::const_iterator it = m_generatorsInOrder.begin();
+            std::vector<IGeneratorInfo*>::const_iterator itEnd = m_generatorsInOrder.end();
+            for(; it != itEnd; ++it ) {
+                if( (*it)->moveNext() )
+                    return true;
+            }
+            return false;
+        }
+
+    private:
+        std::map<std::string, IGeneratorInfo*> m_generatorsByName;
+        std::vector<IGeneratorInfo*> m_generatorsInOrder;
+    };
+
+    IGeneratorsForTest* createGeneratorsForTest()
+    {
+        return new GeneratorsForTest();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_assertionresult.hpp
+#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
+
+namespace Catch {
+
+    AssertionInfo::AssertionInfo(   std::string const& _macroName,
+                                    SourceLineInfo const& _lineInfo,
+                                    std::string const& _capturedExpression,
+                                    ResultDisposition::Flags _resultDisposition )
+    :   macroName( _macroName ),
+        lineInfo( _lineInfo ),
+        capturedExpression( _capturedExpression ),
+        resultDisposition( _resultDisposition )
+    {}
+
+    AssertionResult::AssertionResult() {}
+
+    AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data )
+    :   m_info( info ),
+        m_resultData( data )
+    {}
+
+    AssertionResult::~AssertionResult() {}
+
+    // Result was a success
+    bool AssertionResult::succeeded() const {
+        return Catch::isOk( m_resultData.resultType );
+    }
+
+    // Result was a success, or failure is suppressed
+    bool AssertionResult::isOk() const {
+        return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition );
+    }
+
+    ResultWas::OfType AssertionResult::getResultType() const {
+        return m_resultData.resultType;
+    }
+
+    bool AssertionResult::hasExpression() const {
+        return !m_info.capturedExpression.empty();
+    }
+
+    bool AssertionResult::hasMessage() const {
+        return !m_resultData.message.empty();
+    }
+
+    std::string AssertionResult::getExpression() const {
+        if( isFalseTest( m_info.resultDisposition ) )
+            return '!' + m_info.capturedExpression;
+        else
+            return m_info.capturedExpression;
+    }
+    std::string AssertionResult::getExpressionInMacro() const {
+        if( m_info.macroName.empty() )
+            return m_info.capturedExpression;
+        else
+            return m_info.macroName + "( " + m_info.capturedExpression + " )";
+    }
+
+    bool AssertionResult::hasExpandedExpression() const {
+        return hasExpression() && getExpandedExpression() != getExpression();
+    }
+
+    std::string AssertionResult::getExpandedExpression() const {
+        return m_resultData.reconstructExpression();
+    }
+
+    std::string AssertionResult::getMessage() const {
+        return m_resultData.message;
+    }
+    SourceLineInfo AssertionResult::getSourceInfo() const {
+        return m_info.lineInfo;
+    }
+
+    std::string AssertionResult::getTestMacroName() const {
+        return m_info.macroName;
+    }
+
+    void AssertionResult::discardDecomposedExpression() const {
+        m_resultData.decomposedExpression = CATCH_NULL;
+    }
+
+    void AssertionResult::expandDecomposedExpression() const {
+        m_resultData.reconstructExpression();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_test_case_info.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED
+
+#include <cctype>
+
+namespace Catch {
+
+    inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) {
+        if( startsWith( tag, '.' ) ||
+            tag == "hide" ||
+            tag == "!hide" )
+            return TestCaseInfo::IsHidden;
+        else if( tag == "!throws" )
+            return TestCaseInfo::Throws;
+        else if( tag == "!shouldfail" )
+            return TestCaseInfo::ShouldFail;
+        else if( tag == "!mayfail" )
+            return TestCaseInfo::MayFail;
+        else if( tag == "!nonportable" )
+            return TestCaseInfo::NonPortable;
+        else
+            return TestCaseInfo::None;
+    }
+    inline bool isReservedTag( std::string const& tag ) {
+        return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !std::isalnum( tag[0] );
+    }
+    inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) {
+        if( isReservedTag( tag ) ) {
+            {
+                Colour colourGuard( Colour::Red );
+                Catch::cerr()
+                    << "Tag name [" << tag << "] not allowed.\n"
+                    << "Tag names starting with non alpha-numeric characters are reserved\n";
+            }
+            {
+                Colour colourGuard( Colour::FileName );
+                Catch::cerr() << _lineInfo << std::endl;
+            }
+            exit(1);
+        }
+    }
+
+    TestCase makeTestCase(  ITestCase* _testCase,
+                            std::string const& _className,
+                            std::string const& _name,
+                            std::string const& _descOrTags,
+                            SourceLineInfo const& _lineInfo )
+    {
+        bool isHidden( startsWith( _name, "./" ) ); // Legacy support
+
+        // Parse out tags
+        std::set<std::string> tags;
+        std::string desc, tag;
+        bool inTag = false;
+        for( std::size_t i = 0; i < _descOrTags.size(); ++i ) {
+            char c = _descOrTags[i];
+            if( !inTag ) {
+                if( c == '[' )
+                    inTag = true;
+                else
+                    desc += c;
+            }
+            else {
+                if( c == ']' ) {
+                    TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag );
+                    if( prop == TestCaseInfo::IsHidden )
+                        isHidden = true;
+                    else if( prop == TestCaseInfo::None )
+                        enforceNotReservedTag( tag, _lineInfo );
+
+                    tags.insert( tag );
+                    tag.clear();
+                    inTag = false;
+                }
+                else
+                    tag += c;
+            }
+        }
+        if( isHidden ) {
+            tags.insert( "hide" );
+            tags.insert( "." );
+        }
+
+        TestCaseInfo info( _name, _className, desc, tags, _lineInfo );
+        return TestCase( _testCase, info );
+    }
+
+    void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags )
+    {
+        testCaseInfo.tags = tags;
+        testCaseInfo.lcaseTags.clear();
+
+        std::ostringstream oss;
+        for( std::set<std::string>::const_iterator it = tags.begin(), itEnd = tags.end(); it != itEnd; ++it ) {
+            oss << '[' << *it << ']';
+            std::string lcaseTag = toLower( *it );
+            testCaseInfo.properties = static_cast<TestCaseInfo::SpecialProperties>( testCaseInfo.properties | parseSpecialTag( lcaseTag ) );
+            testCaseInfo.lcaseTags.insert( lcaseTag );
+        }
+        testCaseInfo.tagsAsString = oss.str();
+    }
+
+    TestCaseInfo::TestCaseInfo( std::string const& _name,
+                                std::string const& _className,
+                                std::string const& _description,
+                                std::set<std::string> const& _tags,
+                                SourceLineInfo const& _lineInfo )
+    :   name( _name ),
+        className( _className ),
+        description( _description ),
+        lineInfo( _lineInfo ),
+        properties( None )
+    {
+        setTags( *this, _tags );
+    }
+
+    TestCaseInfo::TestCaseInfo( TestCaseInfo const& other )
+    :   name( other.name ),
+        className( other.className ),
+        description( other.description ),
+        tags( other.tags ),
+        lcaseTags( other.lcaseTags ),
+        tagsAsString( other.tagsAsString ),
+        lineInfo( other.lineInfo ),
+        properties( other.properties )
+    {}
+
+    bool TestCaseInfo::isHidden() const {
+        return ( properties & IsHidden ) != 0;
+    }
+    bool TestCaseInfo::throws() const {
+        return ( properties & Throws ) != 0;
+    }
+    bool TestCaseInfo::okToFail() const {
+        return ( properties & (ShouldFail | MayFail ) ) != 0;
+    }
+    bool TestCaseInfo::expectedToFail() const {
+        return ( properties & (ShouldFail ) ) != 0;
+    }
+
+    TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {}
+
+    TestCase::TestCase( TestCase const& other )
+    :   TestCaseInfo( other ),
+        test( other.test )
+    {}
+
+    TestCase TestCase::withName( std::string const& _newName ) const {
+        TestCase other( *this );
+        other.name = _newName;
+        return other;
+    }
+
+    void TestCase::swap( TestCase& other ) {
+        test.swap( other.test );
+        name.swap( other.name );
+        className.swap( other.className );
+        description.swap( other.description );
+        tags.swap( other.tags );
+        lcaseTags.swap( other.lcaseTags );
+        tagsAsString.swap( other.tagsAsString );
+        std::swap( TestCaseInfo::properties, static_cast<TestCaseInfo&>( other ).properties );
+        std::swap( lineInfo, other.lineInfo );
+    }
+
+    void TestCase::invoke() const {
+        test->invoke();
+    }
+
+    bool TestCase::operator == ( TestCase const& other ) const {
+        return  test.get() == other.test.get() &&
+                name == other.name &&
+                className == other.className;
+    }
+
+    bool TestCase::operator < ( TestCase const& other ) const {
+        return name < other.name;
+    }
+    TestCase& TestCase::operator = ( TestCase const& other ) {
+        TestCase temp( other );
+        swap( temp );
+        return *this;
+    }
+
+    TestCaseInfo const& TestCase::getTestCaseInfo() const
+    {
+        return *this;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_version.hpp
+#define TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
+
+namespace Catch {
+
+    Version::Version
+        (   unsigned int _majorVersion,
+            unsigned int _minorVersion,
+            unsigned int _patchNumber,
+            std::string const& _branchName,
+            unsigned int _buildNumber )
+    :   majorVersion( _majorVersion ),
+        minorVersion( _minorVersion ),
+        patchNumber( _patchNumber ),
+        branchName( _branchName ),
+        buildNumber( _buildNumber )
+    {}
+
+    std::ostream& operator << ( std::ostream& os, Version const& version ) {
+        os  << version.majorVersion << '.'
+            << version.minorVersion << '.'
+            << version.patchNumber;
+
+        if( !version.branchName.empty() ) {
+            os  << '-' << version.branchName
+                << '.' << version.buildNumber;
+        }
+        return os;
+    }
+
+    Version libraryVersion( 1, 7, 2, "", 0 );
+
+}
+
+// #included from: catch_message.hpp
+#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED
+
+namespace Catch {
+
+    MessageInfo::MessageInfo(   std::string const& _macroName,
+                                SourceLineInfo const& _lineInfo,
+                                ResultWas::OfType _type )
+    :   macroName( _macroName ),
+        lineInfo( _lineInfo ),
+        type( _type ),
+        sequence( ++globalCount )
+    {}
+
+    // This may need protecting if threading support is added
+    unsigned int MessageInfo::globalCount = 0;
+
+    ////////////////////////////////////////////////////////////////////////////
+
+    ScopedMessage::ScopedMessage( MessageBuilder const& builder )
+    : m_info( builder.m_info )
+    {
+        m_info.message = builder.m_stream.str();
+        getResultCapture().pushScopedMessage( m_info );
+    }
+    ScopedMessage::ScopedMessage( ScopedMessage const& other )
+    : m_info( other.m_info )
+    {}
+
+    ScopedMessage::~ScopedMessage() {
+        getResultCapture().popScopedMessage( m_info );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_legacy_reporter_adapter.hpp
+#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED
+
+// #included from: catch_legacy_reporter_adapter.h
+#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
+
+namespace Catch
+{
+    // Deprecated
+    struct IReporter : IShared {
+        virtual ~IReporter();
+
+        virtual bool shouldRedirectStdout() const = 0;
+
+        virtual void StartTesting() = 0;
+        virtual void EndTesting( Totals const& totals ) = 0;
+        virtual void StartGroup( std::string const& groupName ) = 0;
+        virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0;
+        virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0;
+        virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0;
+        virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0;
+        virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0;
+        virtual void NoAssertionsInSection( std::string const& sectionName ) = 0;
+        virtual void NoAssertionsInTestCase( std::string const& testName ) = 0;
+        virtual void Aborted() = 0;
+        virtual void Result( AssertionResult const& result ) = 0;
+    };
+
+    class LegacyReporterAdapter : public SharedImpl<IStreamingReporter>
+    {
+    public:
+        LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter );
+        virtual ~LegacyReporterAdapter();
+
+        virtual ReporterPreferences getPreferences() const;
+        virtual void noMatchingTestCases( std::string const& );
+        virtual void testRunStarting( TestRunInfo const& );
+        virtual void testGroupStarting( GroupInfo const& groupInfo );
+        virtual void testCaseStarting( TestCaseInfo const& testInfo );
+        virtual void sectionStarting( SectionInfo const& sectionInfo );
+        virtual void assertionStarting( AssertionInfo const& );
+        virtual bool assertionEnded( AssertionStats const& assertionStats );
+        virtual void sectionEnded( SectionStats const& sectionStats );
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats );
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats );
+        virtual void testRunEnded( TestRunStats const& testRunStats );
+        virtual void skipTest( TestCaseInfo const& );
+
+    private:
+        Ptr<IReporter> m_legacyReporter;
+    };
+}
+
+namespace Catch
+{
+    LegacyReporterAdapter::LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter )
+    :   m_legacyReporter( legacyReporter )
+    {}
+    LegacyReporterAdapter::~LegacyReporterAdapter() {}
+
+    ReporterPreferences LegacyReporterAdapter::getPreferences() const {
+        ReporterPreferences prefs;
+        prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout();
+        return prefs;
+    }
+
+    void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {}
+    void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) {
+        m_legacyReporter->StartTesting();
+    }
+    void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) {
+        m_legacyReporter->StartGroup( groupInfo.name );
+    }
+    void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) {
+        m_legacyReporter->StartTestCase( testInfo );
+    }
+    void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) {
+        m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description );
+    }
+    void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) {
+        // Not on legacy interface
+    }
+
+    bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) {
+        if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
+            for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
+                    it != itEnd;
+                    ++it ) {
+                if( it->type == ResultWas::Info ) {
+                    ResultBuilder rb( it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal );
+                    rb << it->message;
+                    rb.setResultType( ResultWas::Info );
+                    AssertionResult result = rb.build();
+                    m_legacyReporter->Result( result );
+                }
+            }
+        }
+        m_legacyReporter->Result( assertionStats.assertionResult );
+        return true;
+    }
+    void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) {
+        if( sectionStats.missingAssertions )
+            m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name );
+        m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions );
+    }
+    void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) {
+        m_legacyReporter->EndTestCase
+            (   testCaseStats.testInfo,
+                testCaseStats.totals,
+                testCaseStats.stdOut,
+                testCaseStats.stdErr );
+    }
+    void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) {
+        if( testGroupStats.aborting )
+            m_legacyReporter->Aborted();
+        m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals );
+    }
+    void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) {
+        m_legacyReporter->EndTesting( testRunStats.totals );
+    }
+    void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) {
+    }
+}
+
+// #included from: catch_timer.hpp
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++11-long-long"
+#endif
+
+#ifdef CATCH_PLATFORM_WINDOWS
+#else
+#include <sys/time.h>
+#endif
+
+namespace Catch {
+
+    namespace {
+#ifdef CATCH_PLATFORM_WINDOWS
+        uint64_t getCurrentTicks() {
+            static uint64_t hz=0, hzo=0;
+            if (!hz) {
+                QueryPerformanceFrequency( reinterpret_cast<LARGE_INTEGER*>( &hz ) );
+                QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &hzo ) );
+            }
+            uint64_t t;
+            QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &t ) );
+            return ((t-hzo)*1000000)/hz;
+        }
+#else
+        uint64_t getCurrentTicks() {
+            timeval t;
+            gettimeofday(&t,CATCH_NULL);
+            return static_cast<uint64_t>( t.tv_sec ) * 1000000ull + static_cast<uint64_t>( t.tv_usec );
+        }
+#endif
+    }
+
+    void Timer::start() {
+        m_ticks = getCurrentTicks();
+    }
+    unsigned int Timer::getElapsedMicroseconds() const {
+        return static_cast<unsigned int>(getCurrentTicks() - m_ticks);
+    }
+    unsigned int Timer::getElapsedMilliseconds() const {
+        return static_cast<unsigned int>(getElapsedMicroseconds()/1000);
+    }
+    double Timer::getElapsedSeconds() const {
+        return getElapsedMicroseconds()/1000000.0;
+    }
+
+} // namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+// #included from: catch_common.hpp
+#define TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED
+
+#include <cstring>
+#include <cctype>
+
+namespace Catch {
+
+    bool startsWith( std::string const& s, std::string const& prefix ) {
+        return s.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), s.begin());
+    }
+    bool startsWith( std::string const& s, char prefix ) {
+        return !s.empty() && s[0] == prefix;
+    }
+    bool endsWith( std::string const& s, std::string const& suffix ) {
+        return s.size() >= suffix.size() && std::equal(suffix.rbegin(), suffix.rend(), s.rbegin());
+    }
+    bool endsWith( std::string const& s, char suffix ) {
+        return !s.empty() && s[s.size()-1] == suffix;
+    }
+    bool contains( std::string const& s, std::string const& infix ) {
+        return s.find( infix ) != std::string::npos;
+    }
+    char toLowerCh(char c) {
+        return static_cast<char>( std::tolower( c ) );
+    }
+    void toLowerInPlace( std::string& s ) {
+        std::transform( s.begin(), s.end(), s.begin(), toLowerCh );
+    }
+    std::string toLower( std::string const& s ) {
+        std::string lc = s;
+        toLowerInPlace( lc );
+        return lc;
+    }
+    std::string trim( std::string const& str ) {
+        static char const* whitespaceChars = "\n\r\t ";
+        std::string::size_type start = str.find_first_not_of( whitespaceChars );
+        std::string::size_type end = str.find_last_not_of( whitespaceChars );
+
+        return start != std::string::npos ? str.substr( start, 1+end-start ) : std::string();
+    }
+
+    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) {
+        bool replaced = false;
+        std::size_t i = str.find( replaceThis );
+        while( i != std::string::npos ) {
+            replaced = true;
+            str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() );
+            if( i < str.size()-withThis.size() )
+                i = str.find( replaceThis, i+withThis.size() );
+            else
+                i = std::string::npos;
+        }
+        return replaced;
+    }
+
+    pluralise::pluralise( std::size_t count, std::string const& label )
+    :   m_count( count ),
+        m_label( label )
+    {}
+
+    std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) {
+        os << pluraliser.m_count << ' ' << pluraliser.m_label;
+        if( pluraliser.m_count != 1 )
+            os << 's';
+        return os;
+    }
+
+    SourceLineInfo::SourceLineInfo() : file(""), line( 0 ){}
+    SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line )
+    :   file( _file ),
+        line( _line )
+    {}
+    bool SourceLineInfo::empty() const {
+        return file[0] == '\0';
+    }
+    bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const {
+        return line == other.line && (file == other.file || std::strcmp(file, other.file) == 0);
+    }
+    bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const {
+        return line < other.line || ( line == other.line && (std::strcmp(file, other.file) < 0));
+    }
+
+    void seedRng( IConfig const& config ) {
+        if( config.rngSeed() != 0 )
+            std::srand( config.rngSeed() );
+    }
+    unsigned int rngSeed() {
+        return getCurrentContext().getConfig()->rngSeed();
+    }
+
+    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) {
+#ifndef __GNUG__
+        os << info.file << '(' << info.line << ')';
+#else
+        os << info.file << ':' << info.line;
+#endif
+        return os;
+    }
+
+    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) {
+        std::ostringstream oss;
+        oss << locationInfo << ": Internal Catch error: '" << message << '\'';
+        if( alwaysTrue() )
+            throw std::logic_error( oss.str() );
+    }
+}
+
+// #included from: catch_section.hpp
+#define TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED
+
+namespace Catch {
+
+    SectionInfo::SectionInfo
+        (   SourceLineInfo const& _lineInfo,
+            std::string const& _name,
+            std::string const& _description )
+    :   name( _name ),
+        description( _description ),
+        lineInfo( _lineInfo )
+    {}
+
+    Section::Section( SectionInfo const& info )
+    :   m_info( info ),
+        m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) )
+    {
+        m_timer.start();
+    }
+
+    Section::~Section() {
+        if( m_sectionIncluded ) {
+            SectionEndInfo endInfo( m_info, m_assertions, m_timer.getElapsedSeconds() );
+            if( std::uncaught_exception() )
+                getResultCapture().sectionEndedEarly( endInfo );
+            else
+                getResultCapture().sectionEnded( endInfo );
+        }
+    }
+
+    // This indicates whether the section should be executed or not
+    Section::operator bool() const {
+        return m_sectionIncluded;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_debugger.hpp
+#define TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED
+
+#ifdef CATCH_PLATFORM_MAC
+
+    #include <assert.h>
+    #include <stdbool.h>
+    #include <sys/types.h>
+    #include <unistd.h>
+    #include <sys/sysctl.h>
+
+    namespace Catch{
+
+        // The following function is taken directly from the following technical note:
+        // http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html
+
+        // Returns true if the current process is being debugged (either
+        // running under the debugger or has a debugger attached post facto).
+        bool isDebuggerActive(){
+
+            int                 mib[4];
+            struct kinfo_proc   info;
+            size_t              size;
+
+            // Initialize the flags so that, if sysctl fails for some bizarre
+            // reason, we get a predictable result.
+
+            info.kp_proc.p_flag = 0;
+
+            // Initialize mib, which tells sysctl the info we want, in this case
+            // we're looking for information about a specific process ID.
+
+            mib[0] = CTL_KERN;
+            mib[1] = KERN_PROC;
+            mib[2] = KERN_PROC_PID;
+            mib[3] = getpid();
+
+            // Call sysctl.
+
+            size = sizeof(info);
+            if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, CATCH_NULL, 0) != 0 ) {
+                Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl;
+                return false;
+            }
+
+            // We're being debugged if the P_TRACED flag is set.
+
+            return ( (info.kp_proc.p_flag & P_TRACED) != 0 );
+        }
+    } // namespace Catch
+
+#elif defined(CATCH_PLATFORM_LINUX)
+    #include <fstream>
+    #include <string>
+
+    namespace Catch{
+        // The standard POSIX way of detecting a debugger is to attempt to
+        // ptrace() the process, but this needs to be done from a child and not
+        // this process itself to still allow attaching to this process later
+        // if wanted, so is rather heavy. Under Linux we have the PID of the
+        // "debugger" (which doesn't need to be gdb, of course, it could also
+        // be strace, for example) in /proc/$PID/status, so just get it from
+        // there instead.
+        bool isDebuggerActive(){
+            std::ifstream in("/proc/self/status");
+            for( std::string line; std::getline(in, line); ) {
+                static const int PREFIX_LEN = 11;
+                if( line.compare(0, PREFIX_LEN, "TracerPid:\t") == 0 ) {
+                    // We're traced if the PID is not 0 and no other PID starts
+                    // with 0 digit, so it's enough to check for just a single
+                    // character.
+                    return line.length() > PREFIX_LEN && line[PREFIX_LEN] != '0';
+                }
+            }
+
+            return false;
+        }
+    } // namespace Catch
+#elif defined(_MSC_VER)
+    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
+    namespace Catch {
+        bool isDebuggerActive() {
+            return IsDebuggerPresent() != 0;
+        }
+    }
+#elif defined(__MINGW32__)
+    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
+    namespace Catch {
+        bool isDebuggerActive() {
+            return IsDebuggerPresent() != 0;
+        }
+    }
+#else
+    namespace Catch {
+       inline bool isDebuggerActive() { return false; }
+    }
+#endif // Platform
+
+#ifdef CATCH_PLATFORM_WINDOWS
+
+    namespace Catch {
+        void writeToDebugConsole( std::string const& text ) {
+            ::OutputDebugStringA( text.c_str() );
+        }
+    }
+#else
+    namespace Catch {
+        void writeToDebugConsole( std::string const& text ) {
+            // !TBD: Need a version for Mac/ XCode and other IDEs
+            Catch::cout() << text;
+        }
+    }
+#endif // Platform
+
+// #included from: catch_tostring.hpp
+#define TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
+
+namespace Catch {
+
+namespace Detail {
+
+    const std::string unprintableString = "{?}";
+
+    namespace {
+        const int hexThreshold = 255;
+
+        struct Endianness {
+            enum Arch { Big, Little };
+
+            static Arch which() {
+                union _{
+                    int asInt;
+                    char asChar[sizeof (int)];
+                } u;
+
+                u.asInt = 1;
+                return ( u.asChar[sizeof(int)-1] == 1 ) ? Big : Little;
+            }
+        };
+    }
+
+    std::string rawMemoryToString( const void *object, std::size_t size )
+    {
+        // Reverse order for little endian architectures
+        int i = 0, end = static_cast<int>( size ), inc = 1;
+        if( Endianness::which() == Endianness::Little ) {
+            i = end-1;
+            end = inc = -1;
+        }
+
+        unsigned char const *bytes = static_cast<unsigned char const *>(object);
+        std::ostringstream os;
+        os << "0x" << std::setfill('0') << std::hex;
+        for( ; i != end; i += inc )
+             os << std::setw(2) << static_cast<unsigned>(bytes[i]);
+       return os.str();
+    }
+}
+
+std::string toString( std::string const& value ) {
+    std::string s = value;
+    if( getCurrentContext().getConfig()->showInvisibles() ) {
+        for(size_t i = 0; i < s.size(); ++i ) {
+            std::string subs;
+            switch( s[i] ) {
+            case '\n': subs = "\\n"; break;
+            case '\t': subs = "\\t"; break;
+            default: break;
+            }
+            if( !subs.empty() ) {
+                s = s.substr( 0, i ) + subs + s.substr( i+1 );
+                ++i;
+            }
+        }
+    }
+    return '"' + s + '"';
+}
+std::string toString( std::wstring const& value ) {
+
+    std::string s;
+    s.reserve( value.size() );
+    for(size_t i = 0; i < value.size(); ++i )
+        s += value[i] <= 0xff ? static_cast<char>( value[i] ) : '?';
+    return Catch::toString( s );
+}
+
+std::string toString( const char* const value ) {
+    return value ? Catch::toString( std::string( value ) ) : std::string( "{null string}" );
+}
+
+std::string toString( char* const value ) {
+    return Catch::toString( static_cast<const char*>( value ) );
+}
+
+std::string toString( const wchar_t* const value )
+{
+    return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" );
+}
+
+std::string toString( wchar_t* const value )
+{
+    return Catch::toString( static_cast<const wchar_t*>( value ) );
+}
+
+std::string toString( int value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+
+std::string toString( unsigned long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+
+std::string toString( unsigned int value ) {
+    return Catch::toString( static_cast<unsigned long>( value ) );
+}
+
+template<typename T>
+std::string fpToString( T value, int precision ) {
+    std::ostringstream oss;
+    oss << std::setprecision( precision )
+        << std::fixed
+        << value;
+    std::string d = oss.str();
+    std::size_t i = d.find_last_not_of( '0' );
+    if( i != std::string::npos && i != d.size()-1 ) {
+        if( d[i] == '.' )
+            i++;
+        d = d.substr( 0, i+1 );
+    }
+    return d;
+}
+
+std::string toString( const double value ) {
+    return fpToString( value, 10 );
+}
+std::string toString( const float value ) {
+    return fpToString( value, 5 ) + 'f';
+}
+
+std::string toString( bool value ) {
+    return value ? "true" : "false";
+}
+
+std::string toString( char value ) {
+    if ( value == '\r' )
+        return "'\\r'";
+    if ( value == '\f' )
+        return "'\\f'";
+    if ( value == '\n' )
+        return "'\\n'";
+    if ( value == '\t' )
+        return "'\\t'";
+    if ( '\0' <= value && value < ' ' )
+        return toString( static_cast<unsigned int>( value ) );
+    char chstr[] = "' '";
+    chstr[1] = value;
+    return chstr;
+}
+
+std::string toString( signed char value ) {
+    return toString( static_cast<char>( value ) );
+}
+
+std::string toString( unsigned char value ) {
+    return toString( static_cast<char>( value ) );
+}
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+std::string toString( long long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+std::string toString( unsigned long long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ')';
+    return oss.str();
+}
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+std::string toString( std::nullptr_t ) {
+    return "nullptr";
+}
+#endif
+
+#ifdef __OBJC__
+    std::string toString( NSString const * const& nsstring ) {
+        if( !nsstring )
+            return "nil";
+        return "@" + toString([nsstring UTF8String]);
+    }
+    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) {
+        if( !nsstring )
+            return "nil";
+        return "@" + toString([nsstring UTF8String]);
+    }
+    std::string toString( NSObject* const& nsObject ) {
+        return toString( [nsObject description] );
+    }
+#endif
+
+} // end namespace Catch
+
+// #included from: catch_result_builder.hpp
+#define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED
+
+namespace Catch {
+
+    std::string capturedExpressionWithSecondArgument( std::string const& capturedExpression, std::string const& secondArg ) {
+        return secondArg.empty() || secondArg == "\"\""
+            ? capturedExpression
+            : capturedExpression + ", " + secondArg;
+    }
+    ResultBuilder::ResultBuilder(   char const* macroName,
+                                    SourceLineInfo const& lineInfo,
+                                    char const* capturedExpression,
+                                    ResultDisposition::Flags resultDisposition,
+                                    char const* secondArg )
+    :   m_assertionInfo( macroName, lineInfo, capturedExpressionWithSecondArgument( capturedExpression, secondArg ), resultDisposition ),
+        m_shouldDebugBreak( false ),
+        m_shouldThrow( false )
+    {}
+
+    ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) {
+        m_data.resultType = result;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setResultType( bool result ) {
+        m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed;
+        return *this;
+    }
+
+    void ResultBuilder::endExpression( DecomposedExpression const& expr ) {
+        AssertionResult result = build( expr );
+        handleResult( result );
+    }
+
+    void ResultBuilder::useActiveException( ResultDisposition::Flags resultDisposition ) {
+        m_assertionInfo.resultDisposition = resultDisposition;
+        m_stream.oss << Catch::translateActiveException();
+        captureResult( ResultWas::ThrewException );
+    }
+
+    void ResultBuilder::captureResult( ResultWas::OfType resultType ) {
+        setResultType( resultType );
+        captureExpression();
+    }
+
+    void ResultBuilder::captureExpectedException( std::string const& expectedMessage ) {
+        if( expectedMessage.empty() )
+            captureExpectedException( Matchers::Impl::Generic::AllOf<std::string>() );
+        else
+            captureExpectedException( Matchers::Equals( expectedMessage ) );
+    }
+
+    void ResultBuilder::captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher ) {
+
+        assert( !isFalseTest( m_assertionInfo.resultDisposition ) );
+        AssertionResultData data = m_data;
+        data.resultType = ResultWas::Ok;
+        data.reconstructedExpression = m_assertionInfo.capturedExpression;
+
+        std::string actualMessage = Catch::translateActiveException();
+        if( !matcher.match( actualMessage ) ) {
+            data.resultType = ResultWas::ExpressionFailed;
+            data.reconstructedExpression = actualMessage;
+        }
+        AssertionResult result( m_assertionInfo, data );
+        handleResult( result );
+    }
+
+    void ResultBuilder::captureExpression() {
+        AssertionResult result = build();
+        handleResult( result );
+    }
+
+    void ResultBuilder::handleResult( AssertionResult const& result )
+    {
+        getResultCapture().assertionEnded( result );
+
+        if( !result.isOk() ) {
+            if( getCurrentContext().getConfig()->shouldDebugBreak() )
+                m_shouldDebugBreak = true;
+            if( getCurrentContext().getRunner()->aborting() || (m_assertionInfo.resultDisposition & ResultDisposition::Normal) )
+                m_shouldThrow = true;
+        }
+    }
+
+    void ResultBuilder::react() {
+        if( m_shouldThrow )
+            throw Catch::TestFailureException();
+    }
+
+    bool ResultBuilder::shouldDebugBreak() const { return m_shouldDebugBreak; }
+    bool ResultBuilder::allowThrows() const { return getCurrentContext().getConfig()->allowThrows(); }
+
+    AssertionResult ResultBuilder::build() const
+    {
+        return build( *this );
+    }
+
+    // CAVEAT: The returned AssertionResult stores a pointer to the argument expr,
+    //         a temporary DecomposedExpression, which in turn holds references to
+    //         operands, possibly temporary as well.
+    //         It should immediately be passed to handleResult; if the expression
+    //         needs to be reported, its string expansion must be composed before
+    //         the temporaries are destroyed.
+    AssertionResult ResultBuilder::build( DecomposedExpression const& expr ) const
+    {
+        assert( m_data.resultType != ResultWas::Unknown );
+        AssertionResultData data = m_data;
+
+        // Flip bool results if FalseTest flag is set
+        if( isFalseTest( m_assertionInfo.resultDisposition ) ) {
+            data.negate( expr.isBinaryExpression() );
+        }
+
+        data.message = m_stream.oss.str();
+        data.decomposedExpression = &expr; // for lazy reconstruction
+        return AssertionResult( m_assertionInfo, data );
+    }
+
+    void ResultBuilder::reconstructExpression( std::string& dest ) const {
+        dest = m_assertionInfo.capturedExpression;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_tag_alias_registry.hpp
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED
+
+// #included from: catch_tag_alias_registry.h
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+#include <map>
+
+namespace Catch {
+
+    class TagAliasRegistry : public ITagAliasRegistry {
+    public:
+        virtual ~TagAliasRegistry();
+        virtual Option<TagAlias> find( std::string const& alias ) const;
+        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const;
+        void add( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+        static TagAliasRegistry& get();
+
+    private:
+        std::map<std::string, TagAlias> m_registry;
+    };
+
+} // end namespace Catch
+
+namespace Catch {
+
+    TagAliasRegistry::~TagAliasRegistry() {}
+
+    Option<TagAlias> TagAliasRegistry::find( std::string const& alias ) const {
+        std::map<std::string, TagAlias>::const_iterator it = m_registry.find( alias );
+        if( it != m_registry.end() )
+            return it->second;
+        else
+            return Option<TagAlias>();
+    }
+
+    std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const {
+        std::string expandedTestSpec = unexpandedTestSpec;
+        for( std::map<std::string, TagAlias>::const_iterator it = m_registry.begin(), itEnd = m_registry.end();
+                it != itEnd;
+                ++it ) {
+            std::size_t pos = expandedTestSpec.find( it->first );
+            if( pos != std::string::npos ) {
+                expandedTestSpec =  expandedTestSpec.substr( 0, pos ) +
+                                    it->second.tag +
+                                    expandedTestSpec.substr( pos + it->first.size() );
+            }
+        }
+        return expandedTestSpec;
+    }
+
+    void TagAliasRegistry::add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
+
+        if( !startsWith( alias, "[@" ) || !endsWith( alias, ']' ) ) {
+            std::ostringstream oss;
+            oss << "error: tag alias, \"" << alias << "\" is not of the form [@alias name].\n" << lineInfo;
+            throw std::domain_error( oss.str().c_str() );
+        }
+        if( !m_registry.insert( std::make_pair( alias, TagAlias( tag, lineInfo ) ) ).second ) {
+            std::ostringstream oss;
+            oss << "error: tag alias, \"" << alias << "\" already registered.\n"
+                << "\tFirst seen at " << find(alias)->lineInfo << '\n'
+                << "\tRedefined at " << lineInfo;
+            throw std::domain_error( oss.str().c_str() );
+        }
+    }
+
+    TagAliasRegistry& TagAliasRegistry::get() {
+        static TagAliasRegistry instance;
+        return instance;
+
+    }
+
+    ITagAliasRegistry::~ITagAliasRegistry() {}
+    ITagAliasRegistry const& ITagAliasRegistry::get() { return TagAliasRegistry::get(); }
+
+    RegistrarForTagAliases::RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
+        try {
+            TagAliasRegistry::get().add( alias, tag, lineInfo );
+        }
+        catch( std::exception& ex ) {
+            Colour colourGuard( Colour::Red );
+            Catch::cerr() << ex.what() << std::endl;
+            exit(1);
+        }
+    }
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_multi.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED
+
+namespace Catch {
+
+class MultipleReporters : public SharedImpl<IStreamingReporter> {
+    typedef std::vector<Ptr<IStreamingReporter> > Reporters;
+    Reporters m_reporters;
+
+public:
+    void add( Ptr<IStreamingReporter> const& reporter ) {
+        m_reporters.push_back( reporter );
+    }
+
+public: // IStreamingReporter
+
+    virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+        return m_reporters[0]->getPreferences();
+    }
+
+    virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->noMatchingTestCases( spec );
+    }
+
+    virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testRunStarting( testRunInfo );
+    }
+
+    virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testGroupStarting( groupInfo );
+    }
+
+    virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testCaseStarting( testInfo );
+    }
+
+    virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->sectionStarting( sectionInfo );
+    }
+
+    virtual void assertionStarting( AssertionInfo const& assertionInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->assertionStarting( assertionInfo );
+    }
+
+    // The return value indicates if the messages buffer should be cleared:
+    virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+        bool clearBuffer = false;
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            clearBuffer |= (*it)->assertionEnded( assertionStats );
+        return clearBuffer;
+    }
+
+    virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->sectionEnded( sectionStats );
+    }
+
+    virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testCaseEnded( testCaseStats );
+    }
+
+    virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testGroupEnded( testGroupStats );
+    }
+
+    virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testRunEnded( testRunStats );
+    }
+
+    virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->skipTest( testInfo );
+    }
+
+    virtual MultipleReporters* tryAsMulti() CATCH_OVERRIDE {
+        return this;
+    }
+
+};
+
+Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter ) {
+    Ptr<IStreamingReporter> resultingReporter;
+
+    if( existingReporter ) {
+        MultipleReporters* multi = existingReporter->tryAsMulti();
+        if( !multi ) {
+            multi = new MultipleReporters;
+            resultingReporter = Ptr<IStreamingReporter>( multi );
+            if( existingReporter )
+                multi->add( existingReporter );
+        }
+        else
+            resultingReporter = existingReporter;
+        multi->add( additionalReporter );
+    }
+    else
+        resultingReporter = additionalReporter;
+
+    return resultingReporter;
+}
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_xml.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED
+
+// #included from: catch_reporter_bases.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED
+
+#include <cstring>
+
+namespace Catch {
+
+    struct StreamingReporterBase : SharedImpl<IStreamingReporter> {
+
+        StreamingReporterBase( ReporterConfig const& _config )
+        :   m_config( _config.fullConfig() ),
+            stream( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = false;
+        }
+
+        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+            return m_reporterPrefs;
+        }
+
+        virtual ~StreamingReporterBase() CATCH_OVERRIDE;
+
+        virtual void noMatchingTestCases( std::string const& ) CATCH_OVERRIDE {}
+
+        virtual void testRunStarting( TestRunInfo const& _testRunInfo ) CATCH_OVERRIDE {
+            currentTestRunInfo = _testRunInfo;
+        }
+        virtual void testGroupStarting( GroupInfo const& _groupInfo ) CATCH_OVERRIDE {
+            currentGroupInfo = _groupInfo;
+        }
+
+        virtual void testCaseStarting( TestCaseInfo const& _testInfo ) CATCH_OVERRIDE {
+            currentTestCaseInfo = _testInfo;
+        }
+        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
+            m_sectionStack.push_back( _sectionInfo );
+        }
+
+        virtual void sectionEnded( SectionStats const& /* _sectionStats */ ) CATCH_OVERRIDE {
+            m_sectionStack.pop_back();
+        }
+        virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats */ ) CATCH_OVERRIDE {
+            currentTestCaseInfo.reset();
+        }
+        virtual void testGroupEnded( TestGroupStats const& /* _testGroupStats */ ) CATCH_OVERRIDE {
+            currentGroupInfo.reset();
+        }
+        virtual void testRunEnded( TestRunStats const& /* _testRunStats */ ) CATCH_OVERRIDE {
+            currentTestCaseInfo.reset();
+            currentGroupInfo.reset();
+            currentTestRunInfo.reset();
+        }
+
+        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {
+            // Don't do anything with this by default.
+            // It can optionally be overridden in the derived class.
+        }
+
+        Ptr<IConfig const> m_config;
+        std::ostream& stream;
+
+        LazyStat<TestRunInfo> currentTestRunInfo;
+        LazyStat<GroupInfo> currentGroupInfo;
+        LazyStat<TestCaseInfo> currentTestCaseInfo;
+
+        std::vector<SectionInfo> m_sectionStack;
+        ReporterPreferences m_reporterPrefs;
+    };
+
+    struct CumulativeReporterBase : SharedImpl<IStreamingReporter> {
+        template<typename T, typename ChildNodeT>
+        struct Node : SharedImpl<> {
+            explicit Node( T const& _value ) : value( _value ) {}
+            virtual ~Node() {}
+
+            typedef std::vector<Ptr<ChildNodeT> > ChildNodes;
+            T value;
+            ChildNodes children;
+        };
+        struct SectionNode : SharedImpl<> {
+            explicit SectionNode( SectionStats const& _stats ) : stats( _stats ) {}
+            virtual ~SectionNode();
+
+            bool operator == ( SectionNode const& other ) const {
+                return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo;
+            }
+            bool operator == ( Ptr<SectionNode> const& other ) const {
+                return operator==( *other );
+            }
+
+            SectionStats stats;
+            typedef std::vector<Ptr<SectionNode> > ChildSections;
+            typedef std::vector<AssertionStats> Assertions;
+            ChildSections childSections;
+            Assertions assertions;
+            std::string stdOut;
+            std::string stdErr;
+        };
+
+        struct BySectionInfo {
+            BySectionInfo( SectionInfo const& other ) : m_other( other ) {}
+            BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {}
+            bool operator() ( Ptr<SectionNode> const& node ) const {
+                return node->stats.sectionInfo.lineInfo == m_other.lineInfo;
+            }
+        private:
+            void operator=( BySectionInfo const& );
+            SectionInfo const& m_other;
+        };
+
+        typedef Node<TestCaseStats, SectionNode> TestCaseNode;
+        typedef Node<TestGroupStats, TestCaseNode> TestGroupNode;
+        typedef Node<TestRunStats, TestGroupNode> TestRunNode;
+
+        CumulativeReporterBase( ReporterConfig const& _config )
+        :   m_config( _config.fullConfig() ),
+            stream( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = false;
+        }
+        ~CumulativeReporterBase();
+
+        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+            return m_reporterPrefs;
+        }
+
+        virtual void testRunStarting( TestRunInfo const& ) CATCH_OVERRIDE {}
+        virtual void testGroupStarting( GroupInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void testCaseStarting( TestCaseInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+            SectionStats incompleteStats( sectionInfo, Counts(), 0, false );
+            Ptr<SectionNode> node;
+            if( m_sectionStack.empty() ) {
+                if( !m_rootSection )
+                    m_rootSection = new SectionNode( incompleteStats );
+                node = m_rootSection;
+            }
+            else {
+                SectionNode& parentNode = *m_sectionStack.back();
+                SectionNode::ChildSections::const_iterator it =
+                    std::find_if(   parentNode.childSections.begin(),
+                                    parentNode.childSections.end(),
+                                    BySectionInfo( sectionInfo ) );
+                if( it == parentNode.childSections.end() ) {
+                    node = new SectionNode( incompleteStats );
+                    parentNode.childSections.push_back( node );
+                }
+                else
+                    node = *it;
+            }
+            m_sectionStack.push_back( node );
+            m_deepestSection = node;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            assert( !m_sectionStack.empty() );
+            SectionNode& sectionNode = *m_sectionStack.back();
+            sectionNode.assertions.push_back( assertionStats );
+            // AssertionResult holds a pointer to a temporary DecomposedExpression,
+            // which getExpandedExpression() calls to build the expression string.
+            // Our section stack copy of the assertionResult will likely outlive the
+            // temporary, so it must be expanded or discarded now to avoid calling
+            // a destroyed object later.
+            prepareExpandedExpression( sectionNode.assertions.back().assertionResult );
+            return true;
+        }
+        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+            assert( !m_sectionStack.empty() );
+            SectionNode& node = *m_sectionStack.back();
+            node.stats = sectionStats;
+            m_sectionStack.pop_back();
+        }
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            Ptr<TestCaseNode> node = new TestCaseNode( testCaseStats );
+            assert( m_sectionStack.size() == 0 );
+            node->children.push_back( m_rootSection );
+            m_testCases.push_back( node );
+            m_rootSection.reset();
+
+            assert( m_deepestSection );
+            m_deepestSection->stdOut = testCaseStats.stdOut;
+            m_deepestSection->stdErr = testCaseStats.stdErr;
+        }
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            Ptr<TestGroupNode> node = new TestGroupNode( testGroupStats );
+            node->children.swap( m_testCases );
+            m_testGroups.push_back( node );
+        }
+        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+            Ptr<TestRunNode> node = new TestRunNode( testRunStats );
+            node->children.swap( m_testGroups );
+            m_testRuns.push_back( node );
+            testRunEndedCumulative();
+        }
+        virtual void testRunEndedCumulative() = 0;
+
+        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void prepareExpandedExpression( AssertionResult& result ) const {
+            if( result.isOk() )
+                result.discardDecomposedExpression();
+            else
+                result.expandDecomposedExpression();
+        }
+
+        Ptr<IConfig const> m_config;
+        std::ostream& stream;
+        std::vector<AssertionStats> m_assertions;
+        std::vector<std::vector<Ptr<SectionNode> > > m_sections;
+        std::vector<Ptr<TestCaseNode> > m_testCases;
+        std::vector<Ptr<TestGroupNode> > m_testGroups;
+
+        std::vector<Ptr<TestRunNode> > m_testRuns;
+
+        Ptr<SectionNode> m_rootSection;
+        Ptr<SectionNode> m_deepestSection;
+        std::vector<Ptr<SectionNode> > m_sectionStack;
+        ReporterPreferences m_reporterPrefs;
+
+    };
+
+    template<char C>
+    char const* getLineOfChars() {
+        static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0};
+        if( !*line ) {
+            std::memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 );
+            line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0;
+        }
+        return line;
+    }
+
+    struct TestEventListenerBase : StreamingReporterBase {
+        TestEventListenerBase( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config )
+        {}
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
+        virtual bool assertionEnded( AssertionStats const& ) CATCH_OVERRIDE {
+            return false;
+        }
+    };
+
+} // end namespace Catch
+
+// #included from: ../internal/catch_reporter_registrars.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
+
+namespace Catch {
+
+    template<typename T>
+    class LegacyReporterRegistrar {
+
+        class ReporterFactory : public IReporterFactory {
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new LegacyReporterAdapter( new T( config ) );
+            }
+
+            virtual std::string getDescription() const {
+                return T::getDescription();
+            }
+        };
+
+    public:
+
+        LegacyReporterRegistrar( std::string const& name ) {
+            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
+        }
+    };
+
+    template<typename T>
+    class ReporterRegistrar {
+
+        class ReporterFactory : public SharedImpl<IReporterFactory> {
+
+            // *** Please Note ***:
+            // - If you end up here looking at a compiler error because it's trying to register
+            // your custom reporter class be aware that the native reporter interface has changed
+            // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via
+            // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter.
+            // However please consider updating to the new interface as the old one is now
+            // deprecated and will probably be removed quite soon!
+            // Please contact me via github if you have any questions at all about this.
+            // In fact, ideally, please contact me anyway to let me know you've hit this - as I have
+            // no idea who is actually using custom reporters at all (possibly no-one!).
+            // The new interface is designed to minimise exposure to interface changes in the future.
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new T( config );
+            }
+
+            virtual std::string getDescription() const {
+                return T::getDescription();
+            }
+        };
+
+    public:
+
+        ReporterRegistrar( std::string const& name ) {
+            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
+        }
+    };
+
+    template<typename T>
+    class ListenerRegistrar {
+
+        class ListenerFactory : public SharedImpl<IReporterFactory> {
+
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new T( config );
+            }
+            virtual std::string getDescription() const {
+                return std::string();
+            }
+        };
+
+    public:
+
+        ListenerRegistrar() {
+            getMutableRegistryHub().registerListener( new ListenerFactory() );
+        }
+    };
+}
+
+#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \
+    namespace{ Catch::LegacyReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
+
+#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \
+    namespace{ Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
+
+#define INTERNAL_CATCH_REGISTER_LISTENER( listenerType ) \
+    namespace{ Catch::ListenerRegistrar<listenerType> catch_internal_RegistrarFor##listenerType; }
+
+// #included from: ../internal/catch_xmlwriter.hpp
+#define TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED
+
+#include <sstream>
+#include <string>
+#include <vector>
+#include <iomanip>
+
+namespace Catch {
+
+    class XmlEncode {
+    public:
+        enum ForWhat { ForTextNodes, ForAttributes };
+
+        XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes )
+        :   m_str( str ),
+            m_forWhat( forWhat )
+        {}
+
+        void encodeTo( std::ostream& os ) const {
+
+            // Apostrophe escaping not necessary if we always use " to write attributes
+            // (see: http://www.w3.org/TR/xml/#syntax)
+
+            for( std::size_t i = 0; i < m_str.size(); ++ i ) {
+                char c = m_str[i];
+                switch( c ) {
+                    case '<':   os << "&lt;"; break;
+                    case '&':   os << "&amp;"; break;
+
+                    case '>':
+                        // See: http://www.w3.org/TR/xml/#syntax
+                        if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' )
+                            os << "&gt;";
+                        else
+                            os << c;
+                        break;
+
+                    case '\"':
+                        if( m_forWhat == ForAttributes )
+                            os << "&quot;";
+                        else
+                            os << c;
+                        break;
+
+                    default:
+                        // Escape control chars - based on contribution by @espenalb in PR #465 and
+                        // by @mrpi PR #588
+                        if ( ( c >= 0 && c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' ) {
+                            // see http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0
+                            os << "\\x" << std::uppercase << std::hex << std::setfill('0') << std::setw(2)
+                               << static_cast<int>( c );
+                        }
+                        else
+                            os << c;
+                }
+            }
+        }
+
+        friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) {
+            xmlEncode.encodeTo( os );
+            return os;
+        }
+
+    private:
+        std::string m_str;
+        ForWhat m_forWhat;
+    };
+
+    class XmlWriter {
+    public:
+
+        class ScopedElement {
+        public:
+            ScopedElement( XmlWriter* writer )
+            :   m_writer( writer )
+            {}
+
+            ScopedElement( ScopedElement const& other )
+            :   m_writer( other.m_writer ){
+                other.m_writer = CATCH_NULL;
+            }
+
+            ~ScopedElement() {
+                if( m_writer )
+                    m_writer->endElement();
+            }
+
+            ScopedElement& writeText( std::string const& text, bool indent = true ) {
+                m_writer->writeText( text, indent );
+                return *this;
+            }
+
+            template<typename T>
+            ScopedElement& writeAttribute( std::string const& name, T const& attribute ) {
+                m_writer->writeAttribute( name, attribute );
+                return *this;
+            }
+
+        private:
+            mutable XmlWriter* m_writer;
+        };
+
+        XmlWriter()
+        :   m_tagIsOpen( false ),
+            m_needsNewline( false ),
+            m_os( Catch::cout() )
+        {
+            writeDeclaration();
+        }
+
+        XmlWriter( std::ostream& os )
+        :   m_tagIsOpen( false ),
+            m_needsNewline( false ),
+            m_os( os )
+        {
+            writeDeclaration();
+        }
+
+        ~XmlWriter() {
+            while( !m_tags.empty() )
+                endElement();
+        }
+
+        XmlWriter& startElement( std::string const& name ) {
+            ensureTagClosed();
+            newlineIfNecessary();
+            m_os << m_indent << '<' << name;
+            m_tags.push_back( name );
+            m_indent += "  ";
+            m_tagIsOpen = true;
+            return *this;
+        }
+
+        ScopedElement scopedElement( std::string const& name ) {
+            ScopedElement scoped( this );
+            startElement( name );
+            return scoped;
+        }
+
+        XmlWriter& endElement() {
+            newlineIfNecessary();
+            m_indent = m_indent.substr( 0, m_indent.size()-2 );
+            if( m_tagIsOpen ) {
+                m_os << "/>";
+                m_tagIsOpen = false;
+            }
+            else {
+                m_os << m_indent << "</" << m_tags.back() << ">";
+            }
+            m_os << std::endl;
+            m_tags.pop_back();
+            return *this;
+        }
+
+        XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) {
+            if( !name.empty() && !attribute.empty() )
+                m_os << ' ' << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << '"';
+            return *this;
+        }
+
+        XmlWriter& writeAttribute( std::string const& name, bool attribute ) {
+            m_os << ' ' << name << "=\"" << ( attribute ? "true" : "false" ) << '"';
+            return *this;
+        }
+
+        template<typename T>
+        XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
+            std::ostringstream oss;
+            oss << attribute;
+            return writeAttribute( name, oss.str() );
+        }
+
+        XmlWriter& writeText( std::string const& text, bool indent = true ) {
+            if( !text.empty() ){
+                bool tagWasOpen = m_tagIsOpen;
+                ensureTagClosed();
+                if( tagWasOpen && indent )
+                    m_os << m_indent;
+                m_os << XmlEncode( text );
+                m_needsNewline = true;
+            }
+            return *this;
+        }
+
+        XmlWriter& writeComment( std::string const& text ) {
+            ensureTagClosed();
+            m_os << m_indent << "<!--" << text << "-->";
+            m_needsNewline = true;
+            return *this;
+        }
+
+        void writeStylesheetRef( std::string const& url ) {
+            m_os << "<?xml-stylesheet type=\"text/xsl\" href=\"" << url << "\"?>\n";
+        }
+
+        XmlWriter& writeBlankLine() {
+            ensureTagClosed();
+            m_os << '\n';
+            return *this;
+        }
+
+        void ensureTagClosed() {
+            if( m_tagIsOpen ) {
+                m_os << ">" << std::endl;
+                m_tagIsOpen = false;
+            }
+        }
+
+    private:
+        XmlWriter( XmlWriter const& );
+        void operator=( XmlWriter const& );
+
+        void writeDeclaration() {
+            m_os << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
+        }
+
+        void newlineIfNecessary() {
+            if( m_needsNewline ) {
+                m_os << std::endl;
+                m_needsNewline = false;
+            }
+        }
+
+        bool m_tagIsOpen;
+        bool m_needsNewline;
+        std::vector<std::string> m_tags;
+        std::string m_indent;
+        std::ostream& m_os;
+    };
+
+}
+// #included from: catch_reenable_warnings.h
+
+#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED
+
+#ifdef __clang__
+#    ifdef __ICC // icpc defines the __clang__ macro
+#        pragma warning(pop)
+#    else
+#        pragma clang diagnostic pop
+#    endif
+#elif defined __GNUC__
+#    pragma GCC diagnostic pop
+#endif
+
+
+namespace Catch {
+    class XmlReporter : public StreamingReporterBase {
+    public:
+        XmlReporter( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config ),
+            m_xml(_config.stream()),
+            m_sectionDepth( 0 )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = true;
+        }
+
+        virtual ~XmlReporter() CATCH_OVERRIDE;
+
+        static std::string getDescription() {
+            return "Reports test results as an XML document";
+        }
+
+        virtual std::string getStylesheetRef() const {
+            return std::string();
+        }
+
+    public: // StreamingReporterBase
+
+        virtual void noMatchingTestCases( std::string const& s ) CATCH_OVERRIDE {
+            StreamingReporterBase::noMatchingTestCases( s );
+        }
+
+        virtual void testRunStarting( TestRunInfo const& testInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testRunStarting( testInfo );
+            std::string stylesheetRef = getStylesheetRef();
+            if( !stylesheetRef.empty() )
+                m_xml.writeStylesheetRef( stylesheetRef );
+            m_xml.startElement( "Catch" );
+            if( !m_config->name().empty() )
+                m_xml.writeAttribute( "name", m_config->name() );
+        }
+
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testGroupStarting( groupInfo );
+            m_xml.startElement( "Group" )
+                .writeAttribute( "name", groupInfo.name );
+        }
+
+        virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseStarting(testInfo);
+            m_xml.startElement( "TestCase" )
+                .writeAttribute( "name", trim( testInfo.name ) )
+                .writeAttribute( "description", testInfo.description )
+                .writeAttribute( "tags", testInfo.tagsAsString );
+
+            if ( m_config->showDurations() == ShowDurations::Always )
+                m_testCaseTimer.start();
+            m_xml.ensureTagClosed();
+        }
+
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::sectionStarting( sectionInfo );
+            if( m_sectionDepth++ > 0 ) {
+                m_xml.startElement( "Section" )
+                    .writeAttribute( "name", trim( sectionInfo.name ) )
+                    .writeAttribute( "description", sectionInfo.description );
+                m_xml.ensureTagClosed();
+            }
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { }
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            const AssertionResult& assertionResult = assertionStats.assertionResult;
+
+            // Print any info messages in <Info> tags.
+            if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
+                for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
+                        it != itEnd;
+                        ++it ) {
+                    if( it->type == ResultWas::Info ) {
+                        m_xml.scopedElement( "Info" )
+                            .writeText( it->message );
+                    } else if ( it->type == ResultWas::Warning ) {
+                        m_xml.scopedElement( "Warning" )
+                            .writeText( it->message );
+                    }
+                }
+            }
+
+            // Drop out if result was successful but we're not printing them.
+            if( !m_config->includeSuccessfulResults() && isOk(assertionResult.getResultType()) )
+                return true;
+
+            // Print the expression if there is one.
+            if( assertionResult.hasExpression() ) {
+                m_xml.startElement( "Expression" )
+                    .writeAttribute( "success", assertionResult.succeeded() )
+                    .writeAttribute( "type", assertionResult.getTestMacroName() )
+                    .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                    .writeAttribute( "line", assertionResult.getSourceInfo().line );
+
+                m_xml.scopedElement( "Original" )
+                    .writeText( assertionResult.getExpression() );
+                m_xml.scopedElement( "Expanded" )
+                    .writeText( assertionResult.getExpandedExpression() );
+            }
+
+            // And... Print a result applicable to each result type.
+            switch( assertionResult.getResultType() ) {
+                case ResultWas::ThrewException:
+                    m_xml.scopedElement( "Exception" )
+                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::FatalErrorCondition:
+                    m_xml.scopedElement( "FatalErrorCondition" )
+                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::Info:
+                    m_xml.scopedElement( "Info" )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::Warning:
+                    // Warning will already have been written
+                    break;
+                case ResultWas::ExplicitFailure:
+                    m_xml.scopedElement( "Failure" )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                default:
+                    break;
+            }
+
+            if( assertionResult.hasExpression() )
+                m_xml.endElement();
+
+            return true;
+        }
+
+        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::sectionEnded( sectionStats );
+            if( --m_sectionDepth > 0 ) {
+                XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" );
+                e.writeAttribute( "successes", sectionStats.assertions.passed );
+                e.writeAttribute( "failures", sectionStats.assertions.failed );
+                e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk );
+
+                if ( m_config->showDurations() == ShowDurations::Always )
+                    e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds );
+
+                m_xml.endElement();
+            }
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseEnded( testCaseStats );
+            XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" );
+            e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() );
+
+            if ( m_config->showDurations() == ShowDurations::Always )
+                e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() );
+
+            if( !testCaseStats.stdOut.empty() )
+                m_xml.scopedElement( "StdOut" ).writeText( trim( testCaseStats.stdOut ), false );
+            if( !testCaseStats.stdErr.empty() )
+                m_xml.scopedElement( "StdErr" ).writeText( trim( testCaseStats.stdErr ), false );
+
+            m_xml.endElement();
+        }
+
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testGroupEnded( testGroupStats );
+            // TODO: Check testGroupStats.aborting and act accordingly.
+            m_xml.scopedElement( "OverallResults" )
+                .writeAttribute( "successes", testGroupStats.totals.assertions.passed )
+                .writeAttribute( "failures", testGroupStats.totals.assertions.failed )
+                .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk );
+            m_xml.endElement();
+        }
+
+        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testRunEnded( testRunStats );
+            m_xml.scopedElement( "OverallResults" )
+                .writeAttribute( "successes", testRunStats.totals.assertions.passed )
+                .writeAttribute( "failures", testRunStats.totals.assertions.failed )
+                .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk );
+            m_xml.endElement();
+        }
+
+    private:
+        Timer m_testCaseTimer;
+        XmlWriter m_xml;
+        int m_sectionDepth;
+    };
+
+     INTERNAL_CATCH_REGISTER_REPORTER( "xml", XmlReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_junit.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED
+
+#include <assert.h>
+
+namespace Catch {
+
+    namespace {
+        std::string getCurrentTimestamp() {
+            // Beware, this is not reentrant because of backward compatibility issues
+            // Also, UTC only, again because of backward compatibility (%z is C++11)
+            time_t rawtime;
+            std::time(&rawtime);
+            const size_t timeStampSize = sizeof("2017-01-16T17:06:45Z");
+
+#ifdef _MSC_VER
+            std::tm timeInfo = {};
+            gmtime_s(&timeInfo, &rawtime);
+#else
+            std::tm* timeInfo;
+            timeInfo = std::gmtime(&rawtime);
+#endif
+
+            char timeStamp[timeStampSize];
+            const char * const fmt = "%Y-%m-%dT%H:%M:%SZ";
+
+#ifdef _MSC_VER
+            std::strftime(timeStamp, timeStampSize, fmt, &timeInfo);
+#else
+            std::strftime(timeStamp, timeStampSize, fmt, timeInfo);
+#endif
+            return std::string(timeStamp);
+        }
+
+    }
+
+    class JunitReporter : public CumulativeReporterBase {
+    public:
+        JunitReporter( ReporterConfig const& _config )
+        :   CumulativeReporterBase( _config ),
+            xml( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = true;
+        }
+
+        virtual ~JunitReporter() CATCH_OVERRIDE;
+
+        static std::string getDescription() {
+            return "Reports test results in an XML format that looks like Ant's junitreport target";
+        }
+
+        virtual void noMatchingTestCases( std::string const& /*spec*/ ) CATCH_OVERRIDE {}
+
+        virtual void testRunStarting( TestRunInfo const& runInfo ) CATCH_OVERRIDE {
+            CumulativeReporterBase::testRunStarting( runInfo );
+            xml.startElement( "testsuites" );
+        }
+
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+            suiteTimer.start();
+            stdOutForSuite.str("");
+            stdErrForSuite.str("");
+            unexpectedExceptions = 0;
+            CumulativeReporterBase::testGroupStarting( groupInfo );
+        }
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException )
+                unexpectedExceptions++;
+            return CumulativeReporterBase::assertionEnded( assertionStats );
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            stdOutForSuite << testCaseStats.stdOut;
+            stdErrForSuite << testCaseStats.stdErr;
+            CumulativeReporterBase::testCaseEnded( testCaseStats );
+        }
+
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            double suiteTime = suiteTimer.getElapsedSeconds();
+            CumulativeReporterBase::testGroupEnded( testGroupStats );
+            writeGroup( *m_testGroups.back(), suiteTime );
+        }
+
+        virtual void testRunEndedCumulative() CATCH_OVERRIDE {
+            xml.endElement();
+        }
+
+        void writeGroup( TestGroupNode const& groupNode, double suiteTime ) {
+            XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" );
+            TestGroupStats const& stats = groupNode.value;
+            xml.writeAttribute( "name", stats.groupInfo.name );
+            xml.writeAttribute( "errors", unexpectedExceptions );
+            xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions );
+            xml.writeAttribute( "tests", stats.totals.assertions.total() );
+            xml.writeAttribute( "hostname", "tbd" ); // !TBD
+            if( m_config->showDurations() == ShowDurations::Never )
+                xml.writeAttribute( "time", "" );
+            else
+                xml.writeAttribute( "time", suiteTime );
+            xml.writeAttribute( "timestamp", getCurrentTimestamp() );
+
+            // Write test cases
+            for( TestGroupNode::ChildNodes::const_iterator
+                    it = groupNode.children.begin(), itEnd = groupNode.children.end();
+                    it != itEnd;
+                    ++it )
+                writeTestCase( **it );
+
+            xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite.str() ), false );
+            xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite.str() ), false );
+        }
+
+        void writeTestCase( TestCaseNode const& testCaseNode ) {
+            TestCaseStats const& stats = testCaseNode.value;
+
+            // All test cases have exactly one section - which represents the
+            // test case itself. That section may have 0-n nested sections
+            assert( testCaseNode.children.size() == 1 );
+            SectionNode const& rootSection = *testCaseNode.children.front();
+
+            std::string className = stats.testInfo.className;
+
+            if( className.empty() ) {
+                if( rootSection.childSections.empty() )
+                    className = "global";
+            }
+            writeSection( className, "", rootSection );
+        }
+
+        void writeSection(  std::string const& className,
+                            std::string const& rootName,
+                            SectionNode const& sectionNode ) {
+            std::string name = trim( sectionNode.stats.sectionInfo.name );
+            if( !rootName.empty() )
+                name = rootName + '/' + name;
+
+            if( !sectionNode.assertions.empty() ||
+                !sectionNode.stdOut.empty() ||
+                !sectionNode.stdErr.empty() ) {
+                XmlWriter::ScopedElement e = xml.scopedElement( "testcase" );
+                if( className.empty() ) {
+                    xml.writeAttribute( "classname", name );
+                    xml.writeAttribute( "name", "root" );
+                }
+                else {
+                    xml.writeAttribute( "classname", className );
+                    xml.writeAttribute( "name", name );
+                }
+                xml.writeAttribute( "time", Catch::toString( sectionNode.stats.durationInSeconds ) );
+
+                writeAssertions( sectionNode );
+
+                if( !sectionNode.stdOut.empty() )
+                    xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), false );
+                if( !sectionNode.stdErr.empty() )
+                    xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), false );
+            }
+            for( SectionNode::ChildSections::const_iterator
+                    it = sectionNode.childSections.begin(),
+                    itEnd = sectionNode.childSections.end();
+                    it != itEnd;
+                    ++it )
+                if( className.empty() )
+                    writeSection( name, "", **it );
+                else
+                    writeSection( className, name, **it );
+        }
+
+        void writeAssertions( SectionNode const& sectionNode ) {
+            for( SectionNode::Assertions::const_iterator
+                    it = sectionNode.assertions.begin(), itEnd = sectionNode.assertions.end();
+                    it != itEnd;
+                    ++it )
+                writeAssertion( *it );
+        }
+        void writeAssertion( AssertionStats const& stats ) {
+            AssertionResult const& result = stats.assertionResult;
+            if( !result.isOk() ) {
+                std::string elementName;
+                switch( result.getResultType() ) {
+                    case ResultWas::ThrewException:
+                    case ResultWas::FatalErrorCondition:
+                        elementName = "error";
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        elementName = "failure";
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        elementName = "failure";
+                        break;
+                    case ResultWas::DidntThrowException:
+                        elementName = "failure";
+                        break;
+
+                    // We should never see these here:
+                    case ResultWas::Info:
+                    case ResultWas::Warning:
+                    case ResultWas::Ok:
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        elementName = "internalError";
+                        break;
+                }
+
+                XmlWriter::ScopedElement e = xml.scopedElement( elementName );
+
+                xml.writeAttribute( "message", result.getExpandedExpression() );
+                xml.writeAttribute( "type", result.getTestMacroName() );
+
+                std::ostringstream oss;
+                if( !result.getMessage().empty() )
+                    oss << result.getMessage() << '\n';
+                for( std::vector<MessageInfo>::const_iterator
+                        it = stats.infoMessages.begin(),
+                        itEnd = stats.infoMessages.end();
+                            it != itEnd;
+                            ++it )
+                    if( it->type == ResultWas::Info )
+                        oss << it->message << '\n';
+
+                oss << "at " << result.getSourceInfo();
+                xml.writeText( oss.str(), false );
+            }
+        }
+
+        XmlWriter xml;
+        Timer suiteTimer;
+        std::ostringstream stdOutForSuite;
+        std::ostringstream stdErrForSuite;
+        unsigned int unexpectedExceptions;
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "junit", JunitReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_console.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED
+
+namespace Catch {
+
+    struct ConsoleReporter : StreamingReporterBase {
+        ConsoleReporter( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config ),
+            m_headerPrinted( false )
+        {}
+
+        virtual ~ConsoleReporter() CATCH_OVERRIDE;
+        static std::string getDescription() {
+            return "Reports test results as plain lines of text";
+        }
+
+        virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
+            stream << "No test cases matched '" << spec << '\'' << std::endl;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {
+        }
+
+        virtual bool assertionEnded( AssertionStats const& _assertionStats ) CATCH_OVERRIDE {
+            AssertionResult const& result = _assertionStats.assertionResult;
+
+            bool printInfoMessages = true;
+
+            // Drop out if result was successful and we're not printing those
+            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
+                if( result.getResultType() != ResultWas::Warning )
+                    return false;
+                printInfoMessages = false;
+            }
+
+            lazyPrint();
+
+            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
+            printer.print();
+            stream << std::endl;
+            return true;
+        }
+
+        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
+            m_headerPrinted = false;
+            StreamingReporterBase::sectionStarting( _sectionInfo );
+        }
+        virtual void sectionEnded( SectionStats const& _sectionStats ) CATCH_OVERRIDE {
+            if( _sectionStats.missingAssertions ) {
+                lazyPrint();
+                Colour colour( Colour::ResultError );
+                if( m_sectionStack.size() > 1 )
+                    stream << "\nNo assertions in section";
+                else
+                    stream << "\nNo assertions in test case";
+                stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl;
+            }
+            if( m_headerPrinted ) {
+                if( m_config->showDurations() == ShowDurations::Always )
+                    stream << "Completed in " << _sectionStats.durationInSeconds << 's' << std::endl;
+                m_headerPrinted = false;
+            }
+            else {
+                if( m_config->showDurations() == ShowDurations::Always )
+                    stream << _sectionStats.sectionInfo.name << " completed in " << _sectionStats.durationInSeconds << 's' << std::endl;
+            }
+            StreamingReporterBase::sectionEnded( _sectionStats );
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseEnded( _testCaseStats );
+            m_headerPrinted = false;
+        }
+        virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) CATCH_OVERRIDE {
+            if( currentGroupInfo.used ) {
+                printSummaryDivider();
+                stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n";
+                printTotals( _testGroupStats.totals );
+                stream << '\n' << std::endl;
+            }
+            StreamingReporterBase::testGroupEnded( _testGroupStats );
+        }
+        virtual void testRunEnded( TestRunStats const& _testRunStats ) CATCH_OVERRIDE {
+            printTotalsDivider( _testRunStats.totals );
+            printTotals( _testRunStats.totals );
+            stream << std::endl;
+            StreamingReporterBase::testRunEnded( _testRunStats );
+        }
+
+    private:
+
+        class AssertionPrinter {
+            void operator= ( AssertionPrinter const& );
+        public:
+            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
+            :   stream( _stream ),
+                stats( _stats ),
+                result( _stats.assertionResult ),
+                colour( Colour::None ),
+                message( result.getMessage() ),
+                messages( _stats.infoMessages ),
+                printInfoMessages( _printInfoMessages )
+            {
+                switch( result.getResultType() ) {
+                    case ResultWas::Ok:
+                        colour = Colour::Success;
+                        passOrFail = "PASSED";
+                        //if( result.hasMessage() )
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "with messages";
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        if( result.isOk() ) {
+                            colour = Colour::Success;
+                            passOrFail = "FAILED - but was ok";
+                        }
+                        else {
+                            colour = Colour::Error;
+                            passOrFail = "FAILED";
+                        }
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "with messages";
+                        break;
+                    case ResultWas::ThrewException:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "due to unexpected exception with message";
+                        break;
+                    case ResultWas::FatalErrorCondition:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "due to a fatal error condition";
+                        break;
+                    case ResultWas::DidntThrowException:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "because no exception was thrown where one was expected";
+                        break;
+                    case ResultWas::Info:
+                        messageLabel = "info";
+                        break;
+                    case ResultWas::Warning:
+                        messageLabel = "warning";
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        passOrFail = "FAILED";
+                        colour = Colour::Error;
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "explicitly with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "explicitly with messages";
+                        break;
+                    // These cases are here to prevent compiler warnings
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        passOrFail = "** internal error **";
+                        colour = Colour::Error;
+                        break;
+                }
+            }
+
+            void print() const {
+                printSourceInfo();
+                if( stats.totals.assertions.total() > 0 ) {
+                    if( result.isOk() )
+                        stream << '\n';
+                    printResultType();
+                    printOriginalExpression();
+                    printReconstructedExpression();
+                }
+                else {
+                    stream << '\n';
+                }
+                printMessage();
+            }
+
+        private:
+            void printResultType() const {
+                if( !passOrFail.empty() ) {
+                    Colour colourGuard( colour );
+                    stream << passOrFail << ":\n";
+                }
+            }
+            void printOriginalExpression() const {
+                if( result.hasExpression() ) {
+                    Colour colourGuard( Colour::OriginalExpression );
+                    stream  << "  ";
+                    stream << result.getExpressionInMacro();
+                    stream << '\n';
+                }
+            }
+            void printReconstructedExpression() const {
+                if( result.hasExpandedExpression() ) {
+                    stream << "with expansion:\n";
+                    Colour colourGuard( Colour::ReconstructedExpression );
+                    stream << Text( result.getExpandedExpression(), TextAttributes().setIndent(2) ) << '\n';
+                }
+            }
+            void printMessage() const {
+                if( !messageLabel.empty() )
+                    stream << messageLabel << ':' << '\n';
+                for( std::vector<MessageInfo>::const_iterator it = messages.begin(), itEnd = messages.end();
+                        it != itEnd;
+                        ++it ) {
+                    // If this assertion is a warning ignore any INFO messages
+                    if( printInfoMessages || it->type != ResultWas::Info )
+                        stream << Text( it->message, TextAttributes().setIndent(2) ) << '\n';
+                }
+            }
+            void printSourceInfo() const {
+                Colour colourGuard( Colour::FileName );
+                stream << result.getSourceInfo() << ": ";
+            }
+
+            std::ostream& stream;
+            AssertionStats const& stats;
+            AssertionResult const& result;
+            Colour::Code colour;
+            std::string passOrFail;
+            std::string messageLabel;
+            std::string message;
+            std::vector<MessageInfo> messages;
+            bool printInfoMessages;
+        };
+
+        void lazyPrint() {
+
+            if( !currentTestRunInfo.used )
+                lazyPrintRunInfo();
+            if( !currentGroupInfo.used )
+                lazyPrintGroupInfo();
+
+            if( !m_headerPrinted ) {
+                printTestCaseAndSectionHeader();
+                m_headerPrinted = true;
+            }
+        }
+        void lazyPrintRunInfo() {
+            stream  << '\n' << getLineOfChars<'~'>() << '\n';
+            Colour colour( Colour::SecondaryText );
+            stream  << currentTestRunInfo->name
+                    << " is a Catch v"  << libraryVersion << " host application.\n"
+                    << "Run with -? for options\n\n";
+
+            if( m_config->rngSeed() != 0 )
+                stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n";
+
+            currentTestRunInfo.used = true;
+        }
+        void lazyPrintGroupInfo() {
+            if( !currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1 ) {
+                printClosedHeader( "Group: " + currentGroupInfo->name );
+                currentGroupInfo.used = true;
+            }
+        }
+        void printTestCaseAndSectionHeader() {
+            assert( !m_sectionStack.empty() );
+            printOpenHeader( currentTestCaseInfo->name );
+
+            if( m_sectionStack.size() > 1 ) {
+                Colour colourGuard( Colour::Headers );
+
+                std::vector<SectionInfo>::const_iterator
+                    it = m_sectionStack.begin()+1, // Skip first section (test case)
+                    itEnd = m_sectionStack.end();
+                for( ; it != itEnd; ++it )
+                    printHeaderString( it->name, 2 );
+            }
+
+            SourceLineInfo lineInfo = m_sectionStack.back().lineInfo;
+
+            if( !lineInfo.empty() ){
+                stream << getLineOfChars<'-'>() << '\n';
+                Colour colourGuard( Colour::FileName );
+                stream << lineInfo << '\n';
+            }
+            stream << getLineOfChars<'.'>() << '\n' << std::endl;
+        }
+
+        void printClosedHeader( std::string const& _name ) {
+            printOpenHeader( _name );
+            stream << getLineOfChars<'.'>() << '\n';
+        }
+        void printOpenHeader( std::string const& _name ) {
+            stream  << getLineOfChars<'-'>() << '\n';
+            {
+                Colour colourGuard( Colour::Headers );
+                printHeaderString( _name );
+            }
+        }
+
+        // if string has a : in first line will set indent to follow it on
+        // subsequent lines
+        void printHeaderString( std::string const& _string, std::size_t indent = 0 ) {
+            std::size_t i = _string.find( ": " );
+            if( i != std::string::npos )
+                i+=2;
+            else
+                i = 0;
+            stream << Text( _string, TextAttributes()
+                                        .setIndent( indent+i)
+                                        .setInitialIndent( indent ) ) << '\n';
+        }
+
+        struct SummaryColumn {
+
+            SummaryColumn( std::string const& _label, Colour::Code _colour )
+            :   label( _label ),
+                colour( _colour )
+            {}
+            SummaryColumn addRow( std::size_t count ) {
+                std::ostringstream oss;
+                oss << count;
+                std::string row = oss.str();
+                for( std::vector<std::string>::iterator it = rows.begin(); it != rows.end(); ++it ) {
+                    while( it->size() < row.size() )
+                        *it = ' ' + *it;
+                    while( it->size() > row.size() )
+                        row = ' ' + row;
+                }
+                rows.push_back( row );
+                return *this;
+            }
+
+            std::string label;
+            Colour::Code colour;
+            std::vector<std::string> rows;
+
+        };
+
+        void printTotals( Totals const& totals ) {
+            if( totals.testCases.total() == 0 ) {
+                stream << Colour( Colour::Warning ) << "No tests ran\n";
+            }
+            else if( totals.assertions.total() > 0 && totals.testCases.allPassed() ) {
+                stream << Colour( Colour::ResultSuccess ) << "All tests passed";
+                stream << " ("
+                        << pluralise( totals.assertions.passed, "assertion" ) << " in "
+                        << pluralise( totals.testCases.passed, "test case" ) << ')'
+                        << '\n';
+            }
+            else {
+
+                std::vector<SummaryColumn> columns;
+                columns.push_back( SummaryColumn( "", Colour::None )
+                                        .addRow( totals.testCases.total() )
+                                        .addRow( totals.assertions.total() ) );
+                columns.push_back( SummaryColumn( "passed", Colour::Success )
+                                        .addRow( totals.testCases.passed )
+                                        .addRow( totals.assertions.passed ) );
+                columns.push_back( SummaryColumn( "failed", Colour::ResultError )
+                                        .addRow( totals.testCases.failed )
+                                        .addRow( totals.assertions.failed ) );
+                columns.push_back( SummaryColumn( "failed as expected", Colour::ResultExpectedFailure )
+                                        .addRow( totals.testCases.failedButOk )
+                                        .addRow( totals.assertions.failedButOk ) );
+
+                printSummaryRow( "test cases", columns, 0 );
+                printSummaryRow( "assertions", columns, 1 );
+            }
+        }
+        void printSummaryRow( std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row ) {
+            for( std::vector<SummaryColumn>::const_iterator it = cols.begin(); it != cols.end(); ++it ) {
+                std::string value = it->rows[row];
+                if( it->label.empty() ) {
+                    stream << label << ": ";
+                    if( value != "0" )
+                        stream << value;
+                    else
+                        stream << Colour( Colour::Warning ) << "- none -";
+                }
+                else if( value != "0" ) {
+                    stream  << Colour( Colour::LightGrey ) << " | ";
+                    stream  << Colour( it->colour )
+                            << value << ' ' << it->label;
+                }
+            }
+            stream << '\n';
+        }
+
+        static std::size_t makeRatio( std::size_t number, std::size_t total ) {
+            std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0;
+            return ( ratio == 0 && number > 0 ) ? 1 : ratio;
+        }
+        static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) {
+            if( i > j && i > k )
+                return i;
+            else if( j > k )
+                return j;
+            else
+                return k;
+        }
+
+        void printTotalsDivider( Totals const& totals ) {
+            if( totals.testCases.total() > 0 ) {
+                std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() );
+                std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() );
+                std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() );
+                while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 )
+                    findMax( failedRatio, failedButOkRatio, passedRatio )++;
+                while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 )
+                    findMax( failedRatio, failedButOkRatio, passedRatio )--;
+
+                stream << Colour( Colour::Error ) << std::string( failedRatio, '=' );
+                stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' );
+                if( totals.testCases.allPassed() )
+                    stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' );
+                else
+                    stream << Colour( Colour::Success ) << std::string( passedRatio, '=' );
+            }
+            else {
+                stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' );
+            }
+            stream << '\n';
+        }
+        void printSummaryDivider() {
+            stream << getLineOfChars<'-'>() << '\n';
+        }
+
+    private:
+        bool m_headerPrinted;
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_compact.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED
+
+namespace Catch {
+
+    struct CompactReporter : StreamingReporterBase {
+
+        CompactReporter( ReporterConfig const& _config )
+        : StreamingReporterBase( _config )
+        {}
+
+        virtual ~CompactReporter();
+
+        static std::string getDescription() {
+            return "Reports test results on a single line, suitable for IDEs";
+        }
+
+        virtual ReporterPreferences getPreferences() const {
+            ReporterPreferences prefs;
+            prefs.shouldRedirectStdOut = false;
+            return prefs;
+        }
+
+        virtual void noMatchingTestCases( std::string const& spec ) {
+            stream << "No test cases matched '" << spec << '\'' << std::endl;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) {
+        }
+
+        virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
+            AssertionResult const& result = _assertionStats.assertionResult;
+
+            bool printInfoMessages = true;
+
+            // Drop out if result was successful and we're not printing those
+            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
+                if( result.getResultType() != ResultWas::Warning )
+                    return false;
+                printInfoMessages = false;
+            }
+
+            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
+            printer.print();
+
+            stream << std::endl;
+            return true;
+        }
+
+        virtual void testRunEnded( TestRunStats const& _testRunStats ) {
+            printTotals( _testRunStats.totals );
+            stream << '\n' << std::endl;
+            StreamingReporterBase::testRunEnded( _testRunStats );
+        }
+
+    private:
+        class AssertionPrinter {
+            void operator= ( AssertionPrinter const& );
+        public:
+            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
+            : stream( _stream )
+            , stats( _stats )
+            , result( _stats.assertionResult )
+            , messages( _stats.infoMessages )
+            , itMessage( _stats.infoMessages.begin() )
+            , printInfoMessages( _printInfoMessages )
+            {}
+
+            void print() {
+                printSourceInfo();
+
+                itMessage = messages.begin();
+
+                switch( result.getResultType() ) {
+                    case ResultWas::Ok:
+                        printResultType( Colour::ResultSuccess, passedString() );
+                        printOriginalExpression();
+                        printReconstructedExpression();
+                        if ( ! result.hasExpression() )
+                            printRemainingMessages( Colour::None );
+                        else
+                            printRemainingMessages();
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        if( result.isOk() )
+                            printResultType( Colour::ResultSuccess, failedString() + std::string( " - but was ok" ) );
+                        else
+                            printResultType( Colour::Error, failedString() );
+                        printOriginalExpression();
+                        printReconstructedExpression();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::ThrewException:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "unexpected exception with message:" );
+                        printMessage();
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::FatalErrorCondition:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "fatal error condition with message:" );
+                        printMessage();
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::DidntThrowException:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "expected exception, got none" );
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::Info:
+                        printResultType( Colour::None, "info" );
+                        printMessage();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::Warning:
+                        printResultType( Colour::None, "warning" );
+                        printMessage();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "explicitly" );
+                        printRemainingMessages( Colour::None );
+                        break;
+                    // These cases are here to prevent compiler warnings
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        printResultType( Colour::Error, "** internal error **" );
+                        break;
+                }
+            }
+
+        private:
+            // Colour::LightGrey
+
+            static Colour::Code dimColour() { return Colour::FileName; }
+
+#ifdef CATCH_PLATFORM_MAC
+            static const char* failedString() { return "FAILED"; }
+            static const char* passedString() { return "PASSED"; }
+#else
+            static const char* failedString() { return "failed"; }
+            static const char* passedString() { return "passed"; }
+#endif
+
+            void printSourceInfo() const {
+                Colour colourGuard( Colour::FileName );
+                stream << result.getSourceInfo() << ':';
+            }
+
+            void printResultType( Colour::Code colour, std::string passOrFail ) const {
+                if( !passOrFail.empty() ) {
+                    {
+                        Colour colourGuard( colour );
+                        stream << ' ' << passOrFail;
+                    }
+                    stream << ':';
+                }
+            }
+
+            void printIssue( std::string issue ) const {
+                stream << ' ' << issue;
+            }
+
+            void printExpressionWas() {
+                if( result.hasExpression() ) {
+                    stream << ';';
+                    {
+                        Colour colour( dimColour() );
+                        stream << " expression was:";
+                    }
+                    printOriginalExpression();
+                }
+            }
+
+            void printOriginalExpression() const {
+                if( result.hasExpression() ) {
+                    stream << ' ' << result.getExpression();
+                }
+            }
+
+            void printReconstructedExpression() const {
+                if( result.hasExpandedExpression() ) {
+                    {
+                        Colour colour( dimColour() );
+                        stream << " for: ";
+                    }
+                    stream << result.getExpandedExpression();
+                }
+            }
+
+            void printMessage() {
+                if ( itMessage != messages.end() ) {
+                    stream << " '" << itMessage->message << '\'';
+                    ++itMessage;
+                }
+            }
+
+            void printRemainingMessages( Colour::Code colour = dimColour() ) {
+                if ( itMessage == messages.end() )
+                    return;
+
+                // using messages.end() directly yields compilation error:
+                std::vector<MessageInfo>::const_iterator itEnd = messages.end();
+                const std::size_t N = static_cast<std::size_t>( std::distance( itMessage, itEnd ) );
+
+                {
+                    Colour colourGuard( colour );
+                    stream << " with " << pluralise( N, "message" ) << ':';
+                }
+
+                for(; itMessage != itEnd; ) {
+                    // If this assertion is a warning ignore any INFO messages
+                    if( printInfoMessages || itMessage->type != ResultWas::Info ) {
+                        stream << " '" << itMessage->message << '\'';
+                        if ( ++itMessage != itEnd ) {
+                            Colour colourGuard( dimColour() );
+                            stream << " and";
+                        }
+                    }
+                }
+            }
+
+        private:
+            std::ostream& stream;
+            AssertionStats const& stats;
+            AssertionResult const& result;
+            std::vector<MessageInfo> messages;
+            std::vector<MessageInfo>::const_iterator itMessage;
+            bool printInfoMessages;
+        };
+
+        // Colour, message variants:
+        // - white: No tests ran.
+        // -   red: Failed [both/all] N test cases, failed [both/all] M assertions.
+        // - white: Passed [both/all] N test cases (no assertions).
+        // -   red: Failed N tests cases, failed M assertions.
+        // - green: Passed [both/all] N tests cases with M assertions.
+
+        std::string bothOrAll( std::size_t count ) const {
+            return count == 1 ? std::string() : count == 2 ? "both " : "all " ;
+        }
+
+        void printTotals( const Totals& totals ) const {
+            if( totals.testCases.total() == 0 ) {
+                stream << "No tests ran.";
+            }
+            else if( totals.testCases.failed == totals.testCases.total() ) {
+                Colour colour( Colour::ResultError );
+                const std::string qualify_assertions_failed =
+                    totals.assertions.failed == totals.assertions.total() ?
+                        bothOrAll( totals.assertions.failed ) : std::string();
+                stream <<
+                    "Failed " << bothOrAll( totals.testCases.failed )
+                              << pluralise( totals.testCases.failed, "test case"  ) << ", "
+                    "failed " << qualify_assertions_failed <<
+                                 pluralise( totals.assertions.failed, "assertion" ) << '.';
+            }
+            else if( totals.assertions.total() == 0 ) {
+                stream <<
+                    "Passed " << bothOrAll( totals.testCases.total() )
+                              << pluralise( totals.testCases.total(), "test case" )
+                              << " (no assertions).";
+            }
+            else if( totals.assertions.failed ) {
+                Colour colour( Colour::ResultError );
+                stream <<
+                    "Failed " << pluralise( totals.testCases.failed, "test case"  ) << ", "
+                    "failed " << pluralise( totals.assertions.failed, "assertion" ) << '.';
+            }
+            else {
+                Colour colour( Colour::ResultSuccess );
+                stream <<
+                    "Passed " << bothOrAll( totals.testCases.passed )
+                              << pluralise( totals.testCases.passed, "test case"  ) <<
+                    " with "  << pluralise( totals.assertions.passed, "assertion" ) << '.';
+            }
+        }
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "compact", CompactReporter )
+
+} // end namespace Catch
+
+namespace Catch {
+    // These are all here to avoid warnings about not having any out of line
+    // virtual methods
+    NonCopyable::~NonCopyable() {}
+    IShared::~IShared() {}
+    IStream::~IStream() CATCH_NOEXCEPT {}
+    FileStream::~FileStream() CATCH_NOEXCEPT {}
+    CoutStream::~CoutStream() CATCH_NOEXCEPT {}
+    DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {}
+    StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {}
+    IContext::~IContext() {}
+    IResultCapture::~IResultCapture() {}
+    ITestCase::~ITestCase() {}
+    ITestCaseRegistry::~ITestCaseRegistry() {}
+    IRegistryHub::~IRegistryHub() {}
+    IMutableRegistryHub::~IMutableRegistryHub() {}
+    IExceptionTranslator::~IExceptionTranslator() {}
+    IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
+    IReporter::~IReporter() {}
+    IReporterFactory::~IReporterFactory() {}
+    IReporterRegistry::~IReporterRegistry() {}
+    IStreamingReporter::~IStreamingReporter() {}
+    AssertionStats::~AssertionStats() {}
+    SectionStats::~SectionStats() {}
+    TestCaseStats::~TestCaseStats() {}
+    TestGroupStats::~TestGroupStats() {}
+    TestRunStats::~TestRunStats() {}
+    CumulativeReporterBase::SectionNode::~SectionNode() {}
+    CumulativeReporterBase::~CumulativeReporterBase() {}
+
+    StreamingReporterBase::~StreamingReporterBase() {}
+    ConsoleReporter::~ConsoleReporter() {}
+    CompactReporter::~CompactReporter() {}
+    IRunner::~IRunner() {}
+    IMutableContext::~IMutableContext() {}
+    IConfig::~IConfig() {}
+    XmlReporter::~XmlReporter() {}
+    JunitReporter::~JunitReporter() {}
+    TestRegistry::~TestRegistry() {}
+    FreeFunctionTestCase::~FreeFunctionTestCase() {}
+    IGeneratorInfo::~IGeneratorInfo() {}
+    IGeneratorsForTest::~IGeneratorsForTest() {}
+    WildcardPattern::~WildcardPattern() {}
+    TestSpec::Pattern::~Pattern() {}
+    TestSpec::NamePattern::~NamePattern() {}
+    TestSpec::TagPattern::~TagPattern() {}
+    TestSpec::ExcludedPattern::~ExcludedPattern() {}
+
+    Matchers::Impl::StdString::Equals::~Equals() {}
+    Matchers::Impl::StdString::Contains::~Contains() {}
+    Matchers::Impl::StdString::StartsWith::~StartsWith() {}
+    Matchers::Impl::StdString::EndsWith::~EndsWith() {}
+
+    void Config::dummy() {}
+
+    namespace TestCaseTracking {
+        ITracker::~ITracker() {}
+        TrackerBase::~TrackerBase() {}
+        SectionTracker::~SectionTracker() {}
+        IndexTracker::~IndexTracker() {}
+    }
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#endif
+
+#ifdef CATCH_CONFIG_MAIN
+// #included from: internal/catch_default_main.hpp
+#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
+
+#ifndef __OBJC__
+
+// Standard C/C++ main entry point
+int main (int argc, char * argv[]) {
+    int result = Catch::Session().run( argc, argv );
+    return ( result < 0xff ? result : 0xff );
+}
+
+#else // __OBJC__
+
+// Objective-C entry point
+int main (int argc, char * const argv[]) {
+#if !CATCH_ARC_ENABLED
+    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+#endif
+
+    Catch::registerTestMethods();
+    int result = Catch::Session().run( argc, (char* const*)argv );
+
+#if !CATCH_ARC_ENABLED
+    [pool drain];
+#endif
+
+    return ( result < 0xff ? result : 0xff );
+}
+
+#endif // __OBJC__
+
+#endif
+
+#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED
+#  undef CLARA_CONFIG_MAIN
+#endif
+
+//////
+
+// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
+#ifdef CATCH_CONFIG_PREFIX_ALL
+
+#define CATCH_REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE" )
+#define CATCH_REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "CATCH_REQUIRE_FALSE" )
+
+#define CATCH_REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "CATCH_REQUIRE_THROWS" )
+#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS_AS" )
+#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "CATCH_REQUIRE_THROWS_WITH" )
+#define CATCH_REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_NOTHROW" )
+
+#define CATCH_CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK" )
+#define CATCH_CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CATCH_CHECK_FALSE" )
+#define CATCH_CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_IF" )
+#define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" )
+#define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" )
+
+#define CATCH_CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CATCH_CHECK_THROWS" )
+#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" )
+#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" )
+#define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" )
+
+#define CATCH_CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THAT" )
+#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THAT" )
+
+#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
+#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "CATCH_WARN", msg )
+#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
+#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
+#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
+    #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
+    #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
+    #define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
+    #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
+    #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ )
+    #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ )
+#else
+    #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
+    #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
+    #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
+    #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description )
+    #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
+    #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg )
+    #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg )
+#endif
+#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
+
+#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
+#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
+
+#define CATCH_GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
+
+// "BDD-style" convenience wrappers
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ )
+#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
+#else
+#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags )
+#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
+#endif
+#define CATCH_GIVEN( desc )    CATCH_SECTION( std::string( "Given: ") + desc, "" )
+#define CATCH_WHEN( desc )     CATCH_SECTION( std::string( " When: ") + desc, "" )
+#define CATCH_AND_WHEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
+#define CATCH_THEN( desc )     CATCH_SECTION( std::string( " Then: ") + desc, "" )
+#define CATCH_AND_THEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
+
+// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
+#else
+
+#define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "REQUIRE" )
+#define REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "REQUIRE_FALSE" )
+
+#define REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "REQUIRE_THROWS" )
+#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "REQUIRE_THROWS_AS" )
+#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "REQUIRE_THROWS_WITH" )
+#define REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "REQUIRE_NOTHROW" )
+
+#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" )
+#define CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CHECK_FALSE" )
+#define CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_IF" )
+#define CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_ELSE" )
+#define CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CHECK_NOFAIL" )
+
+#define CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CHECK_THROWS" )
+#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS_AS" )
+#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CHECK_THROWS_WITH" )
+#define CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_NOTHROW" )
+
+#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THAT" )
+#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "REQUIRE_THAT" )
+
+#define INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
+#define WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "WARN", msg )
+#define SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
+#define CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
+#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
+    #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
+    #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
+    #define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
+    #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
+    #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ )
+    #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ )
+#else
+    #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
+    #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
+    #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
+    #define REGISTER_TEST_CASE( method, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( method, name, description )
+    #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
+    #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg )
+    #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg )
+#endif
+#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
+
+#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
+#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
+
+#define GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
+
+#endif
+
+#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )
+
+// "BDD-style" convenience wrappers
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ )
+#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
+#else
+#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags )
+#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
+#endif
+#define GIVEN( desc )    SECTION( std::string("   Given: ") + desc, "" )
+#define WHEN( desc )     SECTION( std::string("    When: ") + desc, "" )
+#define AND_WHEN( desc ) SECTION( std::string("And when: ") + desc, "" )
+#define THEN( desc )     SECTION( std::string("    Then: ") + desc, "" )
+#define AND_THEN( desc ) SECTION( std::string("     And: ") + desc, "" )
+
+using Catch::Detail::Approx;
+
+#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+

From 82fb6137633e630a7c5ab0de3aebdde831ef61af Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Tue, 14 Feb 2017 07:28:30 +0100
Subject: [PATCH 174/174] :memo: update after #302

---
 README.md | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 9732a0fa..ab44c969 100644
--- a/README.md
+++ b/README.md
@@ -809,7 +809,7 @@ I deeply appreciate the help of the following people.
 - [Vladimir Petrigo](https://github.com/vpetrigo) made a SFINAE hack more readable.
 - [Denis Andrejew](https://github.com/seeekr) fixed a grammar issue in the README file.
 - [Pierre-Antoine Lacaze](https://github.com/palacaze) found a subtle bug in the `dump()` function.
-- [TurpentineDistillery](https://github.com/TurpentineDistillery) pointed to [`std::locale::classic()`](http://en.cppreference.com/w/cpp/locale/locale/classic) to avoid too much locale joggling, found some nice performance improvements in the parser and improved the benchmarking code.
+- [TurpentineDistillery](https://github.com/TurpentineDistillery) pointed to [`std::locale::classic()`](http://en.cppreference.com/w/cpp/locale/locale/classic) to avoid too much locale joggling, found some nice performance improvements in the parser, improved the benchmarking code, and realized locale-independent number parsing.
 - [cgzones](https://github.com/cgzones) had an idea how to fix the Coverity scan.
 - [Jared Grubb](https://github.com/jaredgrubb) silenced a nasty documentation warning.
 - [Yixin Zhang](https://github.com/qwename) fixed an integer overflow check.
@@ -823,6 +823,7 @@ I deeply appreciate the help of the following people.
 - [Martin Hořeňovský](https://github.com/horenmar) found a way for a 2x speedup for the compilation time of the test suite.
 - [ukhegg](https://github.com/ukhegg) found proposed an improvement for the examples section.
 - [rswanson-ihi](https://github.com/rswanson-ihi) noted a type in the README.
+- 
 
 
 Thanks a lot for helping out! Please [let me know](mailto:mail@nlohmann.me) if I forgot someone.
@@ -856,7 +857,7 @@ $ make json_unit -Ctest
 $ ./test/json_unit "*""
 
 ===============================================================================
-All tests passed (11202549 assertions in 47 test cases)
+All tests passed (11202562 assertions in 47 test cases)
 ```
 
 Alternatively, you can use [CMake](https://cmake.org) and run