This commit is contained in:
nlohmann
2026-10-03 07:03:52 +00:00
parent a410b4f40f
commit ba443db2af
22 changed files with 127 additions and 78 deletions
File diff suppressed because one or more lines are too long
+6 -5
View File
@@ -5,17 +5,17 @@
bool operator==(const_reference lhs, const_reference rhs) noexcept; // (1)
template<typename ScalarType>
bool operator==(const_reference lhs, const ScalarType rhs) noexcept; // (2)
bool operator==(const_reference lhs, const ScalarType rhs) noexcept(/* see below */); // (2)
template<typename ScalarType>
bool operator==(ScalarType lhs, const const_reference rhs) noexcept; // (2)
bool operator==(ScalarType lhs, const const_reference rhs) noexcept(/* see below */); // (2)
// since C++20
class basic_json {
bool operator==(const_reference rhs) const noexcept; // (1)
template<typename ScalarType>
bool operator==(ScalarType rhs) const noexcept; // (2)
bool operator==(ScalarType rhs) const noexcept(/* see below */); // (2)
};
```
@@ -42,7 +42,8 @@ whether the values `lhs`/`*this` and `rhs` are equal
## Exception safety
No-throw guarantee: this function never throws exceptions.
1. No-throw guarantee: this function never throws exceptions.
1. No-throw guarantee if converting the scalar to a JSON value cannot throw, as for numbers, Booleans, and `nullptr`; the function is `noexcept` exactly in that case. Otherwise, it throws what the conversion throws, for example `std::bad_alloc` when converting a string, or [`out_of_range.410`](https://json.nlohmann.me/home/exceptions/#jsonexceptionout_of_range410) for an enum value not mapped by [`NLOHMANN_JSON_SERIALIZE_ENUM_STRICT`](https://json.nlohmann.me/api/macros/nlohmann_json_serialize_enum_strict/index.md).
## Complexity
@@ -228,4 +229,4 @@ null == nullptr true
## Version history
1. Added in version 1.0.0. Added C++20 member functions in version 3.11.0.
1. Added in version 1.0.0. Added C++20 member functions in version 3.11.0.
1. Added in version 1.0.0. Added C++20 member functions in version 3.11.0. Made conditionally `noexcept` in version 3.13.0 unreleased; before, a throwing conversion called `std::terminate`.