forked from Research/WhisperCom
Dominik Meyer
cc002ebfbb
git-subtree-dir: libs/json git-subtree-split: f42a74b8f53cc308647123d49d33d1c8122e3f42
1.6 KiB
1.6 KiB
basic_json::get_ref
template<typename ReferenceType>
ReferenceType get_ref();
template<typename ReferenceType>
const ReferenceType get_ref() const;
Implicit reference access to the internally stored JSON value. No copies are made.
Template arguments
ReferenceType
- reference type; must be a reference to
array_t
,object_t
,string_t
,boolean_t
,number_integer_t
, ornumber_unsigned_t
,number_float_t
, orbinary_t
. Enforced by static assertion.
Return value
reference to the internally stored JSON value if the requested reference type fits to the JSON value; throws
type_error.303
otherwise
Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
Exceptions
Throws type_error.303
if the requested reference type does not
match the stored JSON value type; example: "incompatible ReferenceType for get_ref, actual type is binary"
.
Complexity
Constant.
Notes
!!! warning
Writing data to the referee of the result yields an undefined state.
Example
??? example
The example shows several calls to `get_ref()`.
```cpp
--8<-- "examples/get_ref.cpp"
```
Output:
```json
--8<-- "examples/get_ref.output"
```
Version history
- Added in version 1.1.0.
- Extended to binary types in version 3.8.0.