mirror of
https://github.com/nlohmann/json.git
synced 2026-04-07 08:38:54 +00:00
📝 update documentation (#4723)
Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Runtime Assertions
|
||||
|
||||
The code contains numerous debug assertions to ensure class invariants are valid or to detect undefined behavior.
|
||||
Whereas the former class invariants are nothing to be concerned of, the latter checks for undefined behavior are to
|
||||
Whereas the former class invariants are nothing to be concerned with, the latter checks for undefined behavior are to
|
||||
detect bugs in client code.
|
||||
|
||||
## Switch off runtime assertions
|
||||
@@ -19,8 +19,8 @@ before including the `json.hpp` header.
|
||||
### Unchecked object access to a const value
|
||||
|
||||
Function [`operator[]`](../api/basic_json/operator%5B%5D.md) implements unchecked access for objects. Whereas a missing
|
||||
key is added in case of non-const objects, accessing a const object with a missing key is undefined behavior (think of a
|
||||
dereferenced null pointer) and yields a runtime assertion.
|
||||
key is added in the case of non-const objects, accessing a const object with a missing key is undefined behavior (think
|
||||
of a dereferenced null pointer) and yields a runtime assertion.
|
||||
|
||||
If you are not sure whether an element in an object exists, use checked access with the
|
||||
[`at` function](../api/basic_json/at.md) or call the [`contains` function](../api/basic_json/contains.md) before.
|
||||
@@ -107,9 +107,9 @@ behavior and yields a runtime assertion.
|
||||
|
||||
### Reading from a null `FILE` or `char` pointer
|
||||
|
||||
Reading from a null `#!cpp FILE` or `#!cpp char` pointer in C++ is undefined behavior. Until version 3.11.4, this
|
||||
Reading from a null `#!cpp FILE` or `#!cpp char` pointer in C++ is undefined behavior. Until version 3.12.0, this
|
||||
library asserted that the pointer was not `nullptr` using a runtime assertion. If assertions were disabled, this would
|
||||
result in undefined behavior. Since version 3.11.4, this library checks for `nullptr` and throws a
|
||||
result in undefined behavior. Since version 3.12.0, this library checks for `nullptr` and throws a
|
||||
[`parse_error.101`](../home/exceptions.md#jsonexceptionparse_error101) to prevent the undefined behavior.
|
||||
|
||||
??? example "Example 4: Reading from null pointer"
|
||||
|
||||
Reference in New Issue
Block a user