diff --git a/src/detail/conversions/from_json.hpp b/src/detail/conversions/from_json.hpp index 471c1320eaa25f3e4ff0a06a99aca9535bd23901..55925464b451bb46d30895d672a98df718a729e7 100644 --- a/src/detail/conversions/from_json.hpp +++ b/src/detail/conversions/from_json.hpp @@ -1,10 +1,16 @@ #ifndef NLOHMANN_JSON_DETAIL_CONVERSIONS_FROM_JSON_HPP #define NLOHMANN_JSON_DETAIL_CONVERSIONS_FROM_JSON_HPP -#include -#include -#include -#include +#include // transform +#include // array +#include // and, not +#include // forward_list +#include // inserter, front_inserter, end +#include // string +#include // tuple, make_tuple +#include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +#include // pair, declval +#include // valarray #include "detail/exceptions.hpp" #include "detail/macro_scope.hpp" @@ -15,10 +21,6 @@ namespace nlohmann { namespace detail { -/////////////// -// from_json // -/////////////// - // overloads for basic_json template parameters template::value and diff --git a/src/detail/conversions/to_json.hpp b/src/detail/conversions/to_json.hpp index 0c6d474922add1b5282e5d15a2be42beb51f6d91..0153b13d1d3a99eb48a25c7094b3351c2ea9af56 100644 --- a/src/detail/conversions/to_json.hpp +++ b/src/detail/conversions/to_json.hpp @@ -1,9 +1,13 @@ #ifndef NLOHMANN_JSON_DETAIL_CONVERSIONS_TO_JSON_HPP #define NLOHMANN_JSON_DETAIL_CONVERSIONS_TO_JSON_HPP -#include -#include -#include +#include // or, and, not +#include // begin, end +#include // tuple, get +#include // is_same, is_constructible, is_floating_point, is_enum, underlying_type +#include // move, forward, declval, pair +#include // valarray +#include // vector #include "detail/meta.hpp" #include "detail/value_t.hpp" diff --git a/src/detail/iterators/iter_impl.hpp b/src/detail/iterators/iter_impl.hpp index 79b11b339d84ef5d1648791141775c27a9772ddc..e11412c6266b80e3e2f4e5070d7584f669bbdf55 100644 --- a/src/detail/iterators/iter_impl.hpp +++ b/src/detail/iterators/iter_impl.hpp @@ -1,11 +1,16 @@ #ifndef NLOHMANN_JSON_DETAIL_ITERATORS_ITER_IMPL_HPP #define NLOHMANN_JSON_DETAIL_ITERATORS_ITER_IMPL_HPP -#include -#include +#include // not +#include // iterator, random_access_iterator_tag, bidirectional_iterator_tag, advance, next +#include // conditional, is_const, remove_const #include "detail/exceptions.hpp" +#include "detail/iterators/internal_iterator.hpp" +#include "detail/iterators/primitive_iterator.hpp" #include "detail/macro_scope.hpp" +#include "detail/meta.hpp" +#include "detail/value_t.hpp" namespace nlohmann { diff --git a/src/detail/iterators/iteration_proxy.hpp b/src/detail/iterators/iteration_proxy.hpp index 6a13f39d072545d5d00bf7d639ff0fc2dc827466..e4ce84e4d2946079b683380da750201748de8ec8 100644 --- a/src/detail/iterators/iteration_proxy.hpp +++ b/src/detail/iterators/iteration_proxy.hpp @@ -1,8 +1,10 @@ #ifndef NLOHMANN_JSON_DETAIL_ITERATORS_ITERATION_PROXY_HPP #define NLOHMANN_JSON_DETAIL_ITERATORS_ITERATION_PROXY_HPP -#include -#include +#include // size_t +#include // string, to_string + +#include "detail/value_t.hpp" namespace nlohmann { diff --git a/src/detail/iterators/json_reverse_iterator.hpp b/src/detail/iterators/json_reverse_iterator.hpp index 52862d38044b16e6f09e1826c3752d778b6c20fe..b0f4effe06f8ff654c4a858ed6fab5d6c3774b00 100644 --- a/src/detail/iterators/json_reverse_iterator.hpp +++ b/src/detail/iterators/json_reverse_iterator.hpp @@ -1,9 +1,9 @@ #ifndef NLOHMANN_JSON_DETAIL_ITERATORS_JSON_REVERSE_ITERATOR_HPP #define NLOHMANN_JSON_DETAIL_ITERATORS_JSON_REVERSE_ITERATOR_HPP -#include -#include -#include +#include // ptrdiff_t +#include // reverse_iterator +#include // declval namespace nlohmann { diff --git a/src/detail/iterators/primitive_iterator.hpp b/src/detail/iterators/primitive_iterator.hpp index 8ebafe0e691ff113bd8ea3f72a7b02ad4cd89724..c5cd403165435a1da5b834b14d1f46d2ba8e0fd4 100644 --- a/src/detail/iterators/primitive_iterator.hpp +++ b/src/detail/iterators/primitive_iterator.hpp @@ -1,9 +1,10 @@ #ifndef NLOHMANN_JSON_DETAIL_ITERATORS_PRIMITIVE_ITERATOR_HPP #define NLOHMANN_JSON_DETAIL_ITERATORS_PRIMITIVE_ITERATOR_HPP -#include -#include -#include +#include // not +#include // ptrdiff_t +#include // numeric_limits +#include // ostream namespace nlohmann { diff --git a/src/detail/macro_scope.hpp b/src/detail/macro_scope.hpp index b2ac77426bbedea0b62dc4b5d5cd67f3b1bc82be..f20cc66741873d873735095695c4347d578d22bb 100644 --- a/src/detail/macro_scope.hpp +++ b/src/detail/macro_scope.hpp @@ -1,6 +1,8 @@ #ifndef NLOHMANN_JSON_MACRO_SCOPE_HPP #define NLOHMANN_JSON_MACRO_SCOPE_HPP +#include // not + // This file contains all internal macro definitions // You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them diff --git a/src/detail/meta.hpp b/src/detail/meta.hpp index a9b20443cbff7ac22bbaa9d690bd962f005c017c..35705183a2a3f9b8fe0720d00e65607798fd2eea 100644 --- a/src/detail/meta.hpp +++ b/src/detail/meta.hpp @@ -1,10 +1,11 @@ #ifndef NLOHMANN_JSON_DETAIL_META_HPP #define NLOHMANN_JSON_DETAIL_META_HPP -#include -#include -#include // add_pointer, conditional, decay, enable_if, false_type, integral_constant, is_arithmetic, is_base_of, is_const, is_constructible, is_convertible, is_default_constructible, is_enum, is_floating_point, is_integral, is_nothrow_move_assignable, is_nothrow_move_constructible, is_pointer, is_reference, is_same, is_scalar, is_signed, remove_const, remove_cv, remove_pointer, remove_reference, true_type, underlying_type -#include +#include // not +#include // size_t +#include // numeric_limits +#include // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type +#include // declval #include "json_fwd.hpp" #include "detail/macro_scope.hpp" diff --git a/src/detail/parsing/binary_reader.hpp b/src/detail/parsing/binary_reader.hpp index 0d8ce4adb16cebf8c02784b04aa37955f89bd7bc..a119539346252875345076375d72290664c1958c 100644 --- a/src/detail/parsing/binary_reader.hpp +++ b/src/detail/parsing/binary_reader.hpp @@ -1,14 +1,20 @@ #ifndef NLOHMANN_JSON_DETAIL_PARSING_BINARY_READER_HPP #define NLOHMANN_JSON_DETAIL_PARSING_BINARY_READER_HPP -#include -#include -#include -#include -#include -#include -#include -#include +#include // generate_n +#include // array +#include // assert +#include // ldexp +#include // size_t +#include // uint8_t, uint16_t, uint32_t, uint64_t +#include // memcpy +#include // setw, setfill +#include // hex +#include // back_inserter +#include // numeric_limits +#include // stringstream +#include // char_traits, string +#include // make_pair, move #include "detail/exceptions.hpp" #include "detail/macro_scope.hpp" diff --git a/src/detail/parsing/binary_writer.hpp b/src/detail/parsing/binary_writer.hpp index 25badd894e42cac2f312ed28e98a8b6fa9543c23..59583b9c99fa22f7b4d5fd61b468280b8220b834 100644 --- a/src/detail/parsing/binary_writer.hpp +++ b/src/detail/parsing/binary_writer.hpp @@ -1,11 +1,11 @@ #ifndef NLOHMANN_JSON_DETAIL_PARSING_BINARY_WRITER_HPP #define NLOHMANN_JSON_DETAIL_PARSING_BINARY_WRITER_HPP -#include -#include -#include -#include -#include +#include // reverse +#include // array +#include // uint8_t, uint16_t, uint32_t, uint64_t +#include // memcpy +#include // numeric_limits #include "detail/parsing/binary_reader.hpp" #include "detail/parsing/output_adapters.hpp" diff --git a/src/detail/parsing/input_adapters.hpp b/src/detail/parsing/input_adapters.hpp index 17cf58921d4593aaf2b62eee7b587fe7bc009424..7d4f2dee8ea1f2141af7880ab6680d81c9a624ea 100644 --- a/src/detail/parsing/input_adapters.hpp +++ b/src/detail/parsing/input_adapters.hpp @@ -1,12 +1,19 @@ #ifndef NLOHMANN_JSON_DETAIL_PARSING_INPUT_ADAPTERS_HPP #define NLOHMANN_JSON_DETAIL_PARSING_INPUT_ADAPTERS_HPP -#include -#include -#include -#include -#include -#include +#include // min +#include // array +#include // assert +#include // size_t +#include // strlen +#include // streamsize, streamoff, streampos +#include // istream +#include // begin, end, iterator_traits, random_access_iterator_tag, distance, next +#include // shared_ptr, make_shared, addressof +#include // accumulate +#include // string, char_traits +#include // enable_if, is_base_of, is_pointer, is_integral, remove_pointer +#include // pair, declval #include "detail/macro_scope.hpp" diff --git a/src/detail/parsing/lexer.hpp b/src/detail/parsing/lexer.hpp index b1232db07cd2121a0bb31dfc9483732c225e9420..f50b05212ba725d891b4dcb2eaaeaf8c87ff1377 100644 --- a/src/detail/parsing/lexer.hpp +++ b/src/detail/parsing/lexer.hpp @@ -1,9 +1,15 @@ #ifndef NLOHMANN_JSON_DETAIL_PARSING_LEXER_HPP #define NLOHMANN_JSON_DETAIL_PARSING_LEXER_HPP -#include -#include -#include +#include // localeconv +#include // size_t +#include // strtof, strtod, strtold, strtoll, strtoull +#include // initializer_list +#include // hex, uppercase +#include // setw, setfill +#include // stringstream +#include // char_traits, string +#include // vector #include "detail/macro_scope.hpp" #include "detail/parsing/input_adapters.hpp" diff --git a/src/detail/parsing/output_adapters.hpp b/src/detail/parsing/output_adapters.hpp index 5cbc11b9755e191b8c40731d1e91dbb5f403c42d..71099038b11ca440e4fb4d8adafbf68d3a975c45 100644 --- a/src/detail/parsing/output_adapters.hpp +++ b/src/detail/parsing/output_adapters.hpp @@ -1,12 +1,14 @@ #ifndef NLOHMANN_JSON_DETAIL_PARSING_OUTPUT_ADAPTERS_HPP #define NLOHMANN_JSON_DETAIL_PARSING_OUTPUT_ADAPTERS_HPP -#include -#include -#include -#include -#include -#include +#include // copy +#include // size_t +#include // streamsize +#include // back_inserter +#include // shared_ptr, make_shared +#include // basic_ostream +#include // basic_string +#include // vector namespace nlohmann { diff --git a/src/detail/parsing/parser.hpp b/src/detail/parsing/parser.hpp index c82c2f6d6ffcf29995623380f86d5dd00e83cdc3..52a9c4feedb26e44ab8cee3706ff70d7b1c2bd0e 100644 --- a/src/detail/parsing/parser.hpp +++ b/src/detail/parsing/parser.hpp @@ -1,15 +1,18 @@ #ifndef NLOHMANN_JSON_DETAIL_PARSING_PARSER_HPP #define NLOHMANN_JSON_DETAIL_PARSING_PARSER_HPP -#include -#include -#include -#include +#include // assert +#include // isfinite +#include // uint8_t +#include // function +#include // string +#include // move #include "detail/exceptions.hpp" #include "detail/macro_scope.hpp" #include "detail/parsing/input_adapters.hpp" #include "detail/parsing/lexer.hpp" +#include "detail/value_t.hpp" namespace nlohmann { diff --git a/src/detail/serializer.hpp b/src/detail/serializer.hpp index 955a3eaca03d126d060a021dbbb2691324015358..0d3303d9ed5b2823ee7e1f6f1abfdc1b6620b99e 100644 --- a/src/detail/serializer.hpp +++ b/src/detail/serializer.hpp @@ -1,21 +1,24 @@ #ifndef NLOHMANN_JSON_DETAIL_SERIALIZER_HPP #define NLOHMANN_JSON_DETAIL_SERIALIZER_HPP -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include // reverse, remove, fill, find, none_of +#include // array +#include // assert +#include // and, or +#include // localeconv, lconv +#include // labs, isfinite, isnan, signbit +#include // size_t, ptrdiff_t +#include // uint8_t +#include // snprintf +#include // next +#include // numeric_limits +#include // string +#include // is_same #include "detail/macro_scope.hpp" #include "detail/meta.hpp" #include "detail/parsing/output_adapters.hpp" +#include "detail/value_t.hpp" namespace nlohmann { diff --git a/src/detail/value_t.hpp b/src/detail/value_t.hpp index dbfffd47a377b43d6d6667a1fb28530517115fc2..b96f294ba2670b789efb193636825cbedf339d45 100644 --- a/src/detail/value_t.hpp +++ b/src/detail/value_t.hpp @@ -1,6 +1,7 @@ #ifndef NLOHMANN_JSON_DETAIL_VALUE_T_HPP #define NLOHMANN_JSON_DETAIL_VALUE_T_HPP +#include // array #include // and #include // size_t #include // uint8_t @@ -37,7 +38,7 @@ value with the default value for a given type @since version 1.0.0 */ -enum class value_t : uint8_t +enum class value_t : std::uint8_t { null, ///< null value object, ///< object (unordered set of name/value pairs) @@ -62,7 +63,7 @@ Returns an ordering that is similar to Python: */ inline bool operator<(const value_t lhs, const value_t rhs) noexcept { - static constexpr std::array order = {{ + static constexpr std::array order = {{ 0 /* null */, 3 /* object */, 4 /* array */, 5 /* string */, 1 /* boolean */, 2 /* integer */, 2 /* unsigned */, 2 /* float */ } diff --git a/src/json.hpp b/src/json.hpp index 4eb7ec79c7779b024feb450df1a3f1f61a248673..f4c139e479cccc43d6f69ee82d746c5153102881 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -29,26 +29,17 @@ SOFTWARE. #ifndef NLOHMANN_JSON_HPP #define NLOHMANN_JSON_HPP -#include // all_of, copy, fill, find, for_each, generate_n, none_of, remove, reverse, transform -#include // array +#include // all_of, find, for_each #include // assert #include // and, not, or -#include // lconv, localeconv -#include // isfinite, labs, ldexp, signbit #include // nullptr_t, ptrdiff_t, size_t -#include // abort, strtod, strtof, strtold, strtoul, strtoll, strtoull -#include // memcpy, strlen -#include // forward_list -#include // function, hash, less +#include // hash, less #include // initializer_list -#include // hex -#include // istream, ostream -#include // advance, begin, back_inserter, bidirectional_iterator_tag, distance, end, inserter, iterator, iterator_traits, next, random_access_iterator_tag, reverse_iterator -#include // numeric_limits -#include // locale +#include // istream, ostream +#include // iterator_traits, random_access_iterator_tag #include // accumulate -#include // stringstream -#include // declval, forward, make_pair, move, pair, swap +#include // string, stoi, to_string +#include // declval, forward, move, pair, swap #include "json_fwd.hpp" #include "detail/macro_scope.hpp" diff --git a/src/json_fwd.hpp b/src/json_fwd.hpp index a068da18e565a111cf2b723999f3b78c5bf8d9be..f2a6b0f25d80c88acddb2e5d2d957f8a93f58642 100644 --- a/src/json_fwd.hpp +++ b/src/json_fwd.hpp @@ -3,8 +3,8 @@ #include // int64_t, uint64_t #include // map -#include // addressof, allocator, allocator_traits, unique_ptr -#include // getline, stoi, string, to_string +#include // allocator +#include // string #include // vector /*!