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`.

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

## See also

- operator ValueType - get a value (implicit)
- get - get a value (explicit)

## Version history

- Added in version 3.9.0.

Last update: July 31, 2022
Back to top