diff --git a/src/json.hpp b/src/json.hpp index 80dfa3eb..fd4bce2e 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -405,7 +405,7 @@ class basic_json /// create an object (implicit) template <class V, typename std::enable_if< - std::is_constructible<string_t, typename V::key_type>::value and + std::is_constructible<typename object_t::key_type, typename V::key_type>::value and std::is_constructible<basic_json, typename V::mapped_type>::value, int>::type = 0> inline basic_json(const V& value) @@ -808,7 +808,7 @@ class basic_json /// get an object (explicit) template <class T, typename std::enable_if< - std::is_constructible<typename T::key_type, string_t>::value and + std::is_constructible<typename T::key_type, typename object_t::key_type>::value and std::is_constructible<basic_json, typename T::mapped_type>::value, int>::type = 0> inline T get() const @@ -842,7 +842,7 @@ class basic_json /// get a string (explicit) template <typename T, typename std::enable_if< - std::is_constructible<string_t, T>::value, int>::type + std::is_constructible<T, string_t>::value, int>::type = 0> inline T get() const { diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 78fc7c0d..44b471f9 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -405,7 +405,7 @@ class basic_json /// create an object (implicit) template <class V, typename std::enable_if< - std::is_constructible<string_t, typename V::key_type>::value and + std::is_constructible<typename object_t::key_type, typename V::key_type>::value and std::is_constructible<basic_json, typename V::mapped_type>::value, int>::type = 0> inline basic_json(const V& value) @@ -808,7 +808,7 @@ class basic_json /// get an object (explicit) template <class T, typename std::enable_if< - std::is_constructible<typename T::key_type, string_t>::value and + std::is_constructible<typename T::key_type, typename object_t::key_type>::value and std::is_constructible<basic_json, typename T::mapped_type>::value, int>::type = 0> inline T get() const @@ -842,7 +842,7 @@ class basic_json /// get a string (explicit) template <typename T, typename std::enable_if< - std::is_constructible<string_t, T>::value, int>::type + std::is_constructible<T, string_t>::value, int>::type = 0> inline T get() const {