JSON for Modern C++  3.5.0

◆ get() [6/6]

template<template< typename U, typename V, typename... Args > class ObjectType = std::map, template< typename U, typename... Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE=void > class JSONSerializer = adl_serializer>
template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0>
constexpr auto nlohmann::basic_json::get ( ) const -> decltype(std::declval<const basic_json_t&>().template get_ptr<PointerType>())
inlinenoexcept

get a pointer value (explicit) Explicit pointer access to the internally stored JSON value. No copies are made.

Warning
The pointer becomes invalid if the underlying JSON object changes.
Template Parameters
PointerTypepointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, number_unsigned_t, or number_float_t.
Returns
pointer to the internally stored JSON value if the requested pointer type PointerType fits to the JSON value; nullptr otherwise
Complexity^^ Constant.
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 nullptr is returned if the value and the requested pointer type does not match. ^^
1 #include <iostream>
2 #include <nlohmann/json.hpp>
3 
4 using json = nlohmann::json;
5 
6 int main()
7 {
8  // create a JSON number
9  json value = 17;
10 
11  // explicitly getting pointers
12  auto p1 = value.get<const json::number_integer_t*>();
13  auto p2 = value.get<json::number_integer_t*>();
14  auto p3 = value.get<json::number_integer_t* const>();
15  auto p4 = value.get<const json::number_integer_t* const>();
16  auto p5 = value.get<json::number_float_t*>();
17 
18  // print the pointees
19  std::cout << *p1 << ' ' << *p2 << ' ' << *p3 << ' ' << *p4 << '\n';
20  std::cout << std::boolalpha << (p5 == nullptr) << '\n';
21 }
NumberFloatType number_float_t
a type for a number (floating-point)
Definition: json.hpp:13201
basic_json<> json
default JSON class
Definition: json.hpp:110
NumberIntegerType number_integer_t
a type for a number (integer)
Definition: json.hpp:13062
Output (play with this example online):^^
17 17 17 17
true
^^ The example code above can be translated with
g++ -std=c++11 -Isingle_include doc/examples/get__PointerType.cpp -o get__PointerType 
See also
get_ptr() for explicit pointer-member access
Since
version 1.0.0

Definition at line 15154 of file json.hpp.