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 an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext
try_value_to (1 of 2 overloads)

Convert a value to a boost::system::result<T>.

Synopsis

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

template<
    class T,
    class Context>
result_for< T, value >::type
try_value_to(
    value const& jv,
    Context const& ctx);
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:

template< class FullContext >
result<T> tag_invoke( try_value_to_tag<T>, const value&, const Context& , const FullContext& );

or

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

or

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

The overloads are checked for existence in that order and the first that matches will be selected.

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, unless the exception type is std::bad_alloc, which will be allowed to propagate.

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.

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

Strong guarantee.

Template Parameters

Type

Description

T

The type to convert to.

Context

The type of context passed to the conversion function.

Parameters

Name

Description

jv

The value to convert.

ctx

Context passed to the conversion function.

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