|
|
@@ -9,16 +9,21 @@
|
|
|
|
|
|
#include "json_binder_discard.hpp"
|
|
|
|
|
|
+#include <cstring>
|
|
|
+
|
|
|
namespace json { namespace {
|
|
|
struct discard_t {
|
|
|
template <typename T> discard_t & operator= (T const &) { return *this; }
|
|
|
template <typename T> discard_t & operator[](T const &) { return *this; }
|
|
|
};
|
|
|
} }
|
|
|
-template <>
|
|
|
-void json::helper::parse_numeric<json::discard_t>(json::discard_t &, char const * & data);
|
|
|
-template <>
|
|
|
-json::discard_t json::helper::parse_double_impl<json::discard_t>(const char *begin, const char *&end);
|
|
|
+
|
|
|
+namespace json { namespace helper {
|
|
|
+ template <>
|
|
|
+ void parse_numeric<json::discard_t>(json::discard_t &, char const * & data);
|
|
|
+ template <>
|
|
|
+ json::discard_t parse_double_impl<json::discard_t>(const char *begin, const char *&end);
|
|
|
+} }
|
|
|
|
|
|
namespace json { namespace {
|
|
|
void parse_object(discard_t& json, char const*& data);
|
|
|
@@ -69,16 +74,16 @@ namespace json { namespace {
|
|
|
}
|
|
|
} }
|
|
|
|
|
|
-namespace json {
|
|
|
+namespace json { namespace helper {
|
|
|
template <>
|
|
|
- discard_t helper::parse_double_impl<discard_t>(const char *begin, const char *&end) {
|
|
|
+ discard_t parse_double_impl<discard_t>(const char *begin, const char *&end) {
|
|
|
std::strtod(begin, const_cast<char **>(&end));
|
|
|
errno = 0;
|
|
|
- return discard_t{};
|
|
|
+ return {};
|
|
|
}
|
|
|
|
|
|
template <>
|
|
|
- void helper::parse_numeric<discard_t>(discard_t & d, char const * & data) {
|
|
|
+ void parse_numeric<discard_t>(discard_t & d, char const * & data) {
|
|
|
numeric_token_info info = data;
|
|
|
if ( info.is_double || info.parse_numeric() == DOUBLE ) {
|
|
|
helper::parse_double(d, data);
|
|
|
@@ -86,7 +91,9 @@ namespace json {
|
|
|
data = info.it;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+} }
|
|
|
+
|
|
|
+namespace json {
|
|
|
void parse_discard_token( char const * & data ) {
|
|
|
json::discard_t tmp;
|
|
|
parse_one_token( tmp, data );
|