16 #include <daw/daw_algorithm.h>
17 #include <daw/daw_character_traits.h>
28 std::is_base_of_v<
std::ostream, T> )> :
std::true_type {
30 template<
typename... StringViews>
31 static inline void write( std::ostream &os,
32 StringViews
const &...svs ) {
33 static_assert(
sizeof...( StringViews ) > 0 );
34 constexpr
auto writer = []( std::ostream &o,
39 o.write( sv.data( ),
static_cast<std::streamsize
>( sv.size( ) ) );
41 daw::json::ErrorReason::OutputError );
44 ( (void)writer( os, svs ), ... );
47 static inline void put( std::ostream &os,
char c ) {
50 daw::json::ErrorReason::OutputError );
#define daw_json_ensure(Bool,...)
Ensure that Bool is true. If false pass rest of args to daw_json_error.
#define DAW_JSON_ENABLEIF_S(...)
#define DAW_JSON_CPP23_STATIC_CALL_OP
This is in addition to the parse policy. Always do a full name match instead of sometimes relying on ...
Customization point traits.
DAW_JSON_REQUIRES(boost::describe::has_describe_members< T >::value and use_boost_describe_v< T >) struct json_data_contract< T >
static void put(std::ostream &os, char c)
static void write(std::ostream &os, StringViews const &...svs)
#define DAW_JSON_VER
The version string used in namespace definitions. Must be a valid namespace name.