mirror of
https://github.com/nlohmann/json.git
synced 2026-07-09 20:15:12 +00:00
1.5 KiB
1.5 KiB
JSON_HAS_RANGES
#define JSON_HAS_RANGES /* value */
This macro indicates whether the standard library has any support for ranges. Implies support for concepts. Possible values are 1 when supported or 0 when unsupported.
Default definition
The default value is detected based on the preprocessor macro __cpp_lib_ranges.
When the macro is not defined, the library will define it to its default value.
Known compiler/stdlib exclusions
Even when the feature-test macro __cpp_lib_ranges indicates ranges support is available, the library disables it on the following incomplete or broken toolchains:
- GCC 11.1.0 — disabled (the shipped
<ranges>header has a syntax error; issue #4440) - libstdc++ < 11 — disabled (incomplete C++20 ranges support; issue #4440)
- Clang < 16 with libstdc++ — disabled (incomplete ranges support; issue #4440)
- libc++ < 160000 — disabled (incomplete C++20 ranges support; issue #4440)
If JSON_HAS_RANGES is 0 despite __cpp_lib_ranges being defined, one of the exclusions above likely applies to your toolchain.
Examples
Example
The code below forces the library to enable support for ranges:
#define JSON_HAS_RANGES 1
#include <nlohmann/json.hpp>
...
Version history
- Added in version 3.11.0.