Files
json/docs/mkdocs/docs/api/basic_json_view/is_discarded.md
T
Niels Lohmann 8bd5518803 Remove the conversion to bool from json_view
explicit operator bool meant "refers to a value", which silently differs
from what a basic_json converts to. Use !v.is_discarded() instead.

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2026-10-20 08:48:19 +02:00

1.7 KiB

nlohmann::basic_json_view::is_discarded

bool is_discarded() const noexcept;

Returns whether this view is invalid, i.e. does not refer to a value. This is the case for a default-constructed view (see (constructor)), and for root() of a document that is itself discarded -- in particular, the root of a failed parse() with allow_exceptions set to #!cpp false.

Return value

#!cpp true if the view is discarded, #!cpp false otherwise.

Exception safety

No-throw guarantee: this function never throws exceptions.

Complexity

Constant.

Notes

A basic_json_view is not convertible to #!cpp bool: such a conversion would mean "refers to a value", whereas basic_json converts to the #!cpp bool it holds, so the same code would silently behave differently. Test #!cpp !v.is_discarded() explicitly.

Examples

??? example

The example below classifies several parsed documents by the type of their root value, without materializing any
of them into a `BasicJsonType` value.

```cpp
--8<-- "examples/basic_json_view__type_predicates.cpp"
```

Output:

```json
--8<-- "examples/basic_json_view__type_predicates.output"
```

See also

Version history

  • Added in version 3.13.0.