diff --git a/include/nlohmann/ordered_map.hpp b/include/nlohmann/ordered_map.hpp index 58c54845..672eb31e 100644 --- a/include/nlohmann/ordered_map.hpp +++ b/include/nlohmann/ordered_map.hpp @@ -11,10 +11,10 @@ namespace nlohmann /// ordered_map: a minimal map-like container that preserves insertion order /// for use within nlohmann::basic_json<ordered_map> template <class Key, class T, class IgnoredLess = std::less<Key>, - class Allocator = std::allocator<std::pair<const Key, T>>, - class Container = std::vector<std::pair<const Key, T>, Allocator>> -struct ordered_map : Container + class Allocator = std::allocator<std::pair<const Key, T>>> +struct ordered_map : std::vector<typename Allocator::value_type, Allocator> { + using Container = std::vector<typename Allocator::value_type, Allocator>; using key_type = Key; using mapped_type = T; using typename Container::iterator; diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index 937d5b0e..0f8d48bd 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -2773,7 +2773,7 @@ uses the standard template types. */ using json = basic_json<>; -template<class Key, class T, class IgnoredLess, class Allocator, class Container> +template<class Key, class T, class IgnoredLess, class Allocator> struct ordered_map; /*! @@ -15880,10 +15880,10 @@ namespace nlohmann /// ordered_map: a minimal map-like container that preserves insertion order /// for use within nlohmann::basic_json<ordered_map> template <class Key, class T, class IgnoredLess = std::less<Key>, - class Allocator = std::allocator<std::pair<const Key, T>>, - class Container = std::vector<std::pair<const Key, T>, Allocator>> -struct ordered_map : Container + class Allocator = std::allocator<std::pair<const Key, T>>> +struct ordered_map : std::vector<typename Allocator::value_type, Allocator> { + using Container = std::vector<typename Allocator::value_type, Allocator>; using key_type = Key; using mapped_type = T; using typename Container::iterator;