value_from
Convert an object of type T
to value
.
Synopsis
Defined in header <boost/json/value_from.hpp>.
template<
class T,
class Context>
void
value_from(
T&& t,
Context const& ctx,
value& jv); (1)
template<
class T,
class Context>
value
value_from(
T&& t,
Context const& ctx,
storage_ptr sp = {}); (2)
template<
class T>
void
value_from(
T&& t,
value& jv); (3)
template<
class T>
value
value_from(
T&& t,
storage_ptr sp = {}); (4)
Description
This function attempts to convert an object of type T
to value
using
-
one of
value
's constructors, -
a library-provided generic conversion, or
-
a user-provided overload of
tag_invoke
.
Out of the box the function supports types satisfying SequenceContainer, arrays, arithmetic types, bool
, std::tuple
, std::pair
, std::variant
, std::optional
, std::monostate
, and std::nullopt_t
.
Conversion of other types is done by calling an overload of tag_invoke
found by argument-dependent lookup. Its signature should be similar to:
template< class FullContext >
void tag_invoke( value_from_tag, value&, T, const Context&, const FullContext& );
or
void tag_invoke( value_from_tag, value&, T, const Context& );
or
void tag_invoke( value_from_tag, value&, T );
The overloads are checked for existence in that order and the first that matches will be selected.
The ctx
argument can be used either as a tag type to provide conversions for third-party types, or to pass extra data to the conversion function.
Overloads (2) and (4) construct their return value using the storage_ptr
sp
, which ensures that the memory resource is correctly propagated.
Exception Safety
Strong guarantee.
Template Parameters
Type | Description |
---|---|
|
The type of the object to convert. |
|
The type of context passed to the conversion function. |
Return Value
Overloads (2) and (4) return t
converted to value
. Overloads (1) and 3 return void
instead and pass their result via the out parameter jv
.
Parameters
Name | Description |
---|---|
|
The object to convert. |
|
Context passed to the conversion function. |
|
|
|
A storage pointer referring to the memory resource to use for the returned |
See Also
Convenience header <boost/json.hpp>