Files
json/docs/mkdocs/docs/api/basic_json_view/is_discarded.md
T
Niels Lohmann 4303ba674d Add json_document and json_view: node index, parser, and document
Add json_document and json_view, a read-only, zero-copy index of a
JSON text, as the first public slice of the zero-copy view (#5295).

A parse produces a flat array of 16-byte nodes in document order,
one per value and one per object key. Strings stay in the source
text; escaped strings are decoded into an arena. Integers are
converted while their digits are in the cache; floats keep only
their digit layout and are converted on read. Containers store the
size of their subtree, so a reader can step over one in constant
time. A document makes a handful of allocations, however many
values it has.

The parser accepts exactly what json::parse accepts, with every
combination of ignore_comments and ignore_trailing_commas, with and
without a trailing NUL, and under JSON_STRICT_NUL_HANDLING. It is
portable C++11 and does not depend on byte order.

basic_json_document adds parse, parse_copy, accept, read (reuses a
document's memory), root, is_discarded, source, owns_source,
node_count, memory_usage, and shrink_to_fit. basic_json_view adds
type, the is_* queries, operator bool, size, empty, materialize,
and source_offset. A parse error throws the same exception
basic_json::parse would throw for the same input, message and
position included.

detail::abi_config keeps JSON_STRICT_NUL_HANDLING and
JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON readable after json.hpp
undefines them, in the ABI namespace so they always match the
basic_json in use.

A NUL byte that ends a // comment is the end of the input, as in
parse() since #5696.

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

1.6 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

#!cpp v.is_discarded() and #!cpp !static_cast<bool>(v) are equivalent; use whichever reads better at the call site.

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.