![]() |
Home | Libraries | People | FAQ | More |
Convert a value
to an object of type T.
Defined in header <boost/json/value_to.hpp>
template< class T, class Context> T value_to( value const& jv, Context const& ctx);
This function attempts to convert a value to T
using
value's
accessors, or
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 > T tag_invoke( value_to_tag<T>, const value&, const Context& , const FullContext& );
or
T tag_invoke( value_to_tag<T>, const value&, const Context& );
or
result<T> tag_invoke( value_to_tag<T>, const value& );
The overloads are checked for existence in that order and the first that matches will be selected.
The object returned by the function call is returned by value_to as the result of the
conversion.
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.
! std::is_reference< T >::value
Strong guarantee.
|
Type |
Description |
|---|---|
|
|
The type to convert to. |
|
|
The type of context passed to the conversion function. |
jv converted to result<T>.
|
Name |
Description |
|---|---|
|
|
The |
|
|
Context passed to the conversion function. |
value_to_tag,
value_from,
tag_invoke:
A general pattern for supporting customisable functions
Convenience header <boost/json.hpp>