Add key_compare member to ordered_map

This commit is contained in:
Florian Albrechtskirchinger 2022-03-03 11:55:36 +01:00
parent a6ee8bf9d9
commit fbcd541906
3 changed files with 19 additions and 2 deletions

View File

@ -32,6 +32,12 @@ A minimal map-like container that preserves insertion order for use within [`nlo
- **const_iterator**
- **size_type**
- **value_type**
- **key_compare** - key comparison function
```cpp
std::equal_to<Key> // until C++14
std::equal_to<> // since C++14
```
## Member functions
@ -68,3 +74,4 @@ A minimal map-like container that preserves insertion order for use within [`nlo
## Version history
- Added in version 3.9.0 to implement [`nlohmann::ordered_json`](ordered_json.md).
- Added **key_compare** member in version 3.11.0.

View File

@ -1,6 +1,6 @@
#pragma once
#include <functional> // less
#include <functional> // equal_to, less
#include <initializer_list> // initializer_list
#include <iterator> // input_iterator_tag, iterator_traits
#include <memory> // allocator
@ -27,6 +27,11 @@ template <class Key, class T, class IgnoredLess = std::less<Key>,
using const_iterator = typename Container::const_iterator;
using size_type = typename Container::size_type;
using value_type = typename Container::value_type;
#ifdef JSON_HAS_CPP_14
using key_compare = std::equal_to<>;
#else
using key_compare = std::equal_to<Key>;
#endif
// Explicit constructors instead of `using Container::Container`
// otherwise older compilers choke on it (GCC <= 5.5, xcode <= 9.4)

View File

@ -17311,7 +17311,7 @@ class serializer
// #include <nlohmann/ordered_map.hpp>
#include <functional> // less
#include <functional> // equal_to, less
#include <initializer_list> // initializer_list
#include <iterator> // input_iterator_tag, iterator_traits
#include <memory> // allocator
@ -17339,6 +17339,11 @@ template <class Key, class T, class IgnoredLess = std::less<Key>,
using const_iterator = typename Container::const_iterator;
using size_type = typename Container::size_type;
using value_type = typename Container::value_type;
#ifdef JSON_HAS_CPP_14
using key_compare = std::equal_to<>;
#else
using key_compare = std::equal_to<Key>;
#endif
// Explicit constructors instead of `using Container::Container`
// otherwise older compilers choke on it (GCC <= 5.5, xcode <= 9.4)