optional_category
Conversion category for optionals.
Synopsis
Defined in header <boost/json/conversion.hpp>.
struct optional_category;
Description
Optionals are represented in JSON as null if unengaged (i.e. doesn’t have a value), or as the stored type otherwise.
By default a type T is considered an optional if given t, a glvalue of type T,
-
decltype( t.value() )is well-formed and isn’t a void type; and -
t.reset()is well-formed.
Users can specialize conversion_category_for for their own types if they want them to be treated as optionals. For example:
namespace boost {
namespace json {
template <>
struct conversion_category_for<your::optional>
{
using type = optional_category;
};
} // namespace boost
} // namespace json
Matching Types
Convenience header <boost/json.hpp>.