JSON_USE_IMPLICIT_CONVERSIONS¶
#define JSON_USE_IMPLICIT_CONVERSIONS /* value */
When defined to 0
, implicit conversions are switched off. By default, implicit conversions are switched on. The value directly affects operator ValueType
.
Default definition¶
By default, implicit conversions are enabled.
#define JSON_USE_IMPLICIT_CONVERSIONS 1
Notes¶
Future behavior change
Implicit conversions will be switched off by default in the next major release of the library.
You can prepare existing code by already defining JSON_USE_IMPLICIT_CONVERSIONS
to 0
and replace any implicit conversions with calls to get
.
CMake option
Implicit conversions can also be controlled with the CMake option JSON_ImplicitConversions
(ON
by default) which defines JSON_USE_IMPLICIT_CONVERSIONS
accordingly.
Examples¶
Example
This is an example for an implicit conversion:
json j = "Hello, world!";
std::string s = j;
When JSON_USE_IMPLICIT_CONVERSIONS
is defined to 0
, the code above does no longer compile. Instead, it must be written like this:
json j = "Hello, world!";
auto s = j.template get<std::string>();
See also¶
- operator ValueType - get a value (implicit)
- get - get a value (explicit)
Version history¶
- Added in version 3.9.0.