std::ostream& operator<<(std::ostream& o, const value& x) { if (type_id_is_scalar(x.type())) return o << proton::get<scalar>(x); // Print as a scalar // Use pn_inspect for complex types. proton::decoder d(x); return o << d; }
/// Like coerce(const value&) but assigns the value to a reference /// instead of returning it. May be more efficient for complex values /// (arrays, maps, etc.) /// /// @related proton::value template<class T> void coerce(const value& v, T& x) { codec::decoder d(v, false); if (type_id_is_scalar(v.type())) { scalar s; d >> s; x = internal::coerce<T>(s); } else {