13#include <daw/daw_traits.h>
28 template<
typename,
typename =
void>
36 template<
typename WritableOutput,
typename... StringViews>
38 StringViews
const &...svs ) {
39 concepts::writable_output_trait<WritableOutput>::write( out, svs... );
43 template<
typename WritableOutput,
typename CharT>
44 constexpr WritableOutput &
put_output( WritableOutput &out, CharT c ) {
45 concepts::writable_output_trait<WritableOutput>::put( out, c );
52 template<
typename WritableOutput,
typename =
void>
55 template<
typename WritableOutput>
59 std::declval<WritableOutput &>( ), std::size_t{ } ) )>> =
true;
64 template<
typename WritableOutput>
67 if constexpr( concepts::has_output_reserve_v<WritableOutput> ) {
68 concepts::writable_output_trait<WritableOutput>::reserve( out, n );
DAW_CPP20_CONCEPT is_writable_output_type_v
constexpr bool has_output_reserve_v
Writable outputs may optionally have a static reserve( T &, std::size_t ) to make room for that many ...
constexpr WritableOutput & put_output(WritableOutput &out, CharT c)
constexpr WritableOutput & write_output(WritableOutput &out, StringViews const &...svs)
constexpr WritableOutput & reserve_output(WritableOutput &out, std::size_t n)
Hint that about n more bytes will be written. Outputs without a reserve ignore it,...
string_writer grows its string with resize_and_overwrite, leaving the new bytes uninitialized,...
Writable output models write/putc methods to allow efficient output to buffers/FILE streams/ostreams/...
#define DAW_JSON_VER
The version string used in namespace definitions. Must be a valid namespace name.