mirror of
https://github.com/nlohmann/json.git
synced 2026-09-27 18:20:32 +00:00
Point to the clang-tidy check that rewrites implicit conversions (#5563)
The community-maintained clang-tidy check modernize-nlohmann-json-explicit-conversions rewrites implicit conversions into explicit get<T>() calls, which is exactly the preparation the docs ask for ahead of implicit conversions being switched off by default. Mention it on the JSON_USE_IMPLICIT_CONVERSIONS page and in the migration guide, as promised in discussion #4610. Signed-off-by: Niels Lohmann <mail@nlohmann.me>
This commit is contained in:
@@ -24,6 +24,14 @@ By default, implicit conversions are enabled.
|
|||||||
You can prepare existing code by already defining `JSON_USE_IMPLICIT_CONVERSIONS` to `0` and replace any implicit
|
You can prepare existing code by already defining `JSON_USE_IMPLICIT_CONVERSIONS` to `0` and replace any implicit
|
||||||
conversions with calls to [`get`](../basic_json/get.md).
|
conversions with calls to [`get`](../basic_json/get.md).
|
||||||
|
|
||||||
|
!!! tip "Automatic migration"
|
||||||
|
|
||||||
|
The community-maintained clang-tidy check `modernize-nlohmann-json-explicit-conversions` rewrites implicit
|
||||||
|
conversions into explicit calls to [`get`](../basic_json/get.md); for example, `#!cpp int i = j;` becomes
|
||||||
|
`#!cpp int i = j.get<int>();`. The check is not part of clang-tidy itself, and it does not catch every case (for
|
||||||
|
example, constructing a `std::optional` from a JSON value), so review the result. See
|
||||||
|
[discussion #4610](https://github.com/nlohmann/json/discussions/4610) for how to build and use it.
|
||||||
|
|
||||||
!!! hint "CMake option"
|
!!! hint "CMake option"
|
||||||
|
|
||||||
Implicit conversions can also be controlled with the CMake option
|
Implicit conversions can also be controlled with the CMake option
|
||||||
|
|||||||
@@ -176,6 +176,12 @@ You can prepare existing code by already defining
|
|||||||
conversions with calls to [`get`](../api/basic_json/get.md), [`get_to`](../api/basic_json/get_to.md),
|
conversions with calls to [`get`](../api/basic_json/get.md), [`get_to`](../api/basic_json/get_to.md),
|
||||||
[`get_ref`](../api/basic_json/get_ref.md), or [`get_ptr`](../api/basic_json/get_ptr.md).
|
[`get_ref`](../api/basic_json/get_ref.md), or [`get_ptr`](../api/basic_json/get_ptr.md).
|
||||||
|
|
||||||
|
!!! tip "Automatic migration"
|
||||||
|
|
||||||
|
The community-maintained clang-tidy check `modernize-nlohmann-json-explicit-conversions` rewrites most implicit
|
||||||
|
conversions into calls to [`get`](../api/basic_json/get.md). It is not part of clang-tidy itself; see
|
||||||
|
[discussion #4610](https://github.com/nlohmann/json/discussions/4610) for how to build and use it.
|
||||||
|
|
||||||
=== "Deprecated"
|
=== "Deprecated"
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
|
|||||||
Reference in New Issue
Block a user