Add key_compare member to ordered_map
This commit is contained in:
parent
a6ee8bf9d9
commit
fbcd541906
@ -32,6 +32,12 @@ A minimal map-like container that preserves insertion order for use within [`nlo
|
|||||||
- **const_iterator**
|
- **const_iterator**
|
||||||
- **size_type**
|
- **size_type**
|
||||||
- **value_type**
|
- **value_type**
|
||||||
|
- **key_compare** - key comparison function
|
||||||
|
```cpp
|
||||||
|
std::equal_to<Key> // until C++14
|
||||||
|
|
||||||
|
std::equal_to<> // since C++14
|
||||||
|
```
|
||||||
|
|
||||||
## Member functions
|
## Member functions
|
||||||
|
|
||||||
@ -68,3 +74,4 @@ A minimal map-like container that preserves insertion order for use within [`nlo
|
|||||||
## Version history
|
## Version history
|
||||||
|
|
||||||
- Added in version 3.9.0 to implement [`nlohmann::ordered_json`](ordered_json.md).
|
- Added in version 3.9.0 to implement [`nlohmann::ordered_json`](ordered_json.md).
|
||||||
|
- Added **key_compare** member in version 3.11.0.
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <functional> // less
|
#include <functional> // equal_to, less
|
||||||
#include <initializer_list> // initializer_list
|
#include <initializer_list> // initializer_list
|
||||||
#include <iterator> // input_iterator_tag, iterator_traits
|
#include <iterator> // input_iterator_tag, iterator_traits
|
||||||
#include <memory> // allocator
|
#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 const_iterator = typename Container::const_iterator;
|
||||||
using size_type = typename Container::size_type;
|
using size_type = typename Container::size_type;
|
||||||
using value_type = typename Container::value_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`
|
// Explicit constructors instead of `using Container::Container`
|
||||||
// otherwise older compilers choke on it (GCC <= 5.5, xcode <= 9.4)
|
// otherwise older compilers choke on it (GCC <= 5.5, xcode <= 9.4)
|
||||||
|
|||||||
@ -17311,7 +17311,7 @@ class serializer
|
|||||||
// #include <nlohmann/ordered_map.hpp>
|
// #include <nlohmann/ordered_map.hpp>
|
||||||
|
|
||||||
|
|
||||||
#include <functional> // less
|
#include <functional> // equal_to, less
|
||||||
#include <initializer_list> // initializer_list
|
#include <initializer_list> // initializer_list
|
||||||
#include <iterator> // input_iterator_tag, iterator_traits
|
#include <iterator> // input_iterator_tag, iterator_traits
|
||||||
#include <memory> // allocator
|
#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 const_iterator = typename Container::const_iterator;
|
||||||
using size_type = typename Container::size_type;
|
using size_type = typename Container::size_type;
|
||||||
using value_type = typename Container::value_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`
|
// Explicit constructors instead of `using Container::Container`
|
||||||
// otherwise older compilers choke on it (GCC <= 5.5, xcode <= 9.4)
|
// otherwise older compilers choke on it (GCC <= 5.5, xcode <= 9.4)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user