DAW JSON Link
Loading...
Searching...
No Matches
Classes | Namespaces | Functions | Variables
daw_writable_output_fwd.h File Reference
#include <daw/json/impl/version.h>
#include <daw/daw_traits.h>
#include <cstddef>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

struct  daw::json::anonymous_namespace{daw_writable_output_fwd.h}::concepts::writable_output_trait< typename, typename >
 Writable output models write/putc methods to allow efficient output to buffers/FILE streams/ostreams/and containers with less allocation/size checks Specializations must have static T write( T, StringViews... ), static T put( T, char ), and static bool value. StringViews work will have a .size( ) and .data( ) member function, and have a character element type. More...
 

Namespaces

namespace  daw
 
namespace  daw::json
 string_writer grows its string with resize_and_overwrite, leaving the new bytes uninitialized, when the standard library has it. That skips zero filling memory that is overwritten right away, but the bytes past what was written are never initialized, which resize_and_overwrite's precondition does not allow. Define DAW_JSON_NO_LESS_SAFE_STRING_WRITER to grow with resize( ) instead
 
namespace  daw::json::anonymous_namespace{daw_writable_output_fwd.h}
 
namespace  daw::json::anonymous_namespace{daw_writable_output_fwd.h}::concepts
 

Functions

template<typename WritableOutput , typename CharT >
constexpr WritableOutput & daw::json::anonymous_namespace{daw_writable_output_fwd.h}::put_output (WritableOutput &out, CharT c)
 
template<typename WritableOutput >
constexpr WritableOutput & daw::json::anonymous_namespace{daw_writable_output_fwd.h}::reserve_output (WritableOutput &out, std::size_t n)
 Hint that about n more bytes will be written. Outputs without a reserve ignore it, and writes still check their own room.
 
template<typename WritableOutput , typename... StringViews>
constexpr WritableOutput & daw::json::anonymous_namespace{daw_writable_output_fwd.h}::write_output (WritableOutput &out, StringViews const &...svs)
 

Variables

template<typename WritableOutput , typename = void>
constexpr bool daw::json::anonymous_namespace{daw_writable_output_fwd.h}::concepts::has_output_reserve_v = false
 Writable outputs may optionally have a static reserve( T &, std::size_t ) to make room for that many more bytes.
 
template<typename T >
DAW_CPP20_CONCEPT daw::json::anonymous_namespace{daw_writable_output_fwd.h}::concepts::is_writable_output_type_v