Skip to content

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.

Implicit conversions can also be controlled with the CMake option JSON_ImplicitConversions (ON by default) which sets JSON_USE_IMPLICIT_CONVERSIONS accordingly.

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.

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.get<std::string>();

See also

Version history

  • Added in version 3.9.0.

Last update: May 1, 2022
Back to top