json/doc/mkdocs/docs/api/basic_json/get_ptr.md
Niels Lohmann a6ee8bf9d9
Overwork documentation (#3444)
* 📝 overwork macro documentation

* 📝 address review comments

* 🔧 add style check to Makefile

* 🙈 overwork .gitignore

* 📌 Pygments 2.12.0 is broken

* ✏️ fix links

* 🚸 adjust output to cppcheck

* 📝 add titles to more admonitions

* ✏️ fix typos

* 📝 document future behavior change
2022-04-25 22:40:45 +02:00

1.5 KiB

nlohmann::basic_json::get_ptr

template<typename PointerType>
PointerType get_ptr() noexcept;

template<typename PointerType>
constexpr const PointerType get_ptr() const noexcept;

Implicit pointer access to the internally stored JSON value. No copies are made.

Template parameters

PointerType
pointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, or number_unsigned_t, number_float_t, or binary_t. Other types will not compile.

Return value

pointer to the internally stored JSON value if the requested pointer type fits to the JSON value; #!cpp nullptr otherwise

Exception safety

No-throw guarantee: this function never throws exceptions.

Complexity

Constant.

Notes

!!! danger "Undefined behavior"

Writing data to the pointee of the result yields an undefined state.

Examples

??? example

The example below shows how pointers to internal values of a JSON value can be requested. Note that no type
conversions are made and a `#!cpp nullptr` is returned if the value and the requested pointer type does not match.

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

Output:

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

Version history

  • Added in version 1.0.0.
  • Extended to binary types in version 3.8.0.