...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
The type of result returned by library functions.
Defined in header <boost/json/system_error.hpp>
template<
class T>
using result = boost::system::result
< T >;
This is an alias template used as the return type for functions that can either return a value, or fail with an error code. This is a brief synopsis of the type:
template< class T > class result { public: // Return true if the result contains an error constexpr bool has_error() const noexcept; // These two return true if the result contains a value constexpr bool has_value() const noexcept; constexpr explicit operator bool() const noexcept; // Return the value or throw an exception if has_value() == false constexpr T& value(); constexpr T const& value() const; // Return the value, assuming the result contains it constexpr T& operator*(); constexpr T const& operator*() const; // Return the error, which is default constructed if has_error() == false constexpr error_code error() const noexcept; ...more };
Given the function try_value_to
with this signature:
template< class T> result< T > try_value_to( const value& jv );
The following statement captures the value in a variable upon success, otherwise throws:
int n = try_value_to<int>( jv ).value();
This statement captures the result in a variable and inspects the error condition:
result< int > r = try_value_to<int>( jv ); if( r ) std::cout << *r; else std::cout << r.error();
This alias is deprecated in favor of boost::system::result
.
It is included for backwards compatibility and shouldn't be used in new code.
It will be removed completely in version 1.87.0.
Type |
Description |
---|---|
|
The type of value held by the result. |
Convenience header <boost/json.hpp>