Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for a snapshot of the master branch, built from commit 20a7dc9240.
PrevUpHomeNext

try_value_to

Convert a value to a result of T.

Synopsis

Defined in header <boost/json/value_to.hpp>

template<
    class T>
result_for< T, value >::type
try_value_to(
    const value& jv);
Description

This function attempts to convert a value to result<T> using

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:

result<T> tag_invoke( try_value_to_tag<T>, value const& );

If an error occurs during conversion, the result will store the error code associated with the error. If an exception is thrown, the function will attempt to retrieve the associated error code and return it, otherwise it will return error::exception.

Constraints
! std::is_reference< T >::value
Exception Safety

Strong guarantee.

Template Parameters

Type

Description

T

The type to convert to.

Parameters

Name

Description

jv

The value to convert.

Return Value

jv converted to result<T>.

See Also

value_to_tag, value_to, value_from, tag_invoke: A general pattern for supporting customisable functions

Convenience header <boost/json.hpp>


PrevUpHomeNext