This commit is contained in:
nlohmann committed 2026-11-12 11:46:38 +00:00
1 parent 8ddeea7128
commit 5097c20962
516 files changed
+7306 -5984

No files matched your search

+7 -3
View File
@@ -27,9 +27,13 @@ The default value is `0` (disabled — existing behavior is preserved).
json j{obj};
```
creates a single-element **array** `[{"key":"value"}]` instead of a copy of `obj`. This behavior is
compiler-dependent for older compilers (GCC wrapped, Clang did not), but starting from Clang 20, both compilers
behave the same way.
creates a single-element **array** `[{"key":"value"}]` instead of a copy of `obj`. For this constructor, the
behavior was compiler-dependent for older compilers (GCC wrapped, Clang did not), but starting from Clang 20, both
compilers behave the same way.
The calls `#!cpp arr.push_back({obj})` and `#!cpp arr += {obj}` are still compiler-dependent without the macro,
even with Clang 20 and later: GCC converts `{obj}` to a single-element array and appends that array, whereas Clang
appends a copy of `obj`. With the macro defined to `1`, both compilers append a copy of `obj`.
Enabling this macro opts into copy/move semantics for this case
(see [#5074](https://github.com/nlohmann/json/issues/5074)).