14#include <daw/daw_traits.h>
22 namespace json_details {
27 template<
typename Container>
33 daw::is_detected<is_opted_into_json_iostreams, T>::value;
37 daw::is_detected<is_container_opted_into_json_iostreams, T>::value;
43auto operator<<( std::ostream &os, T
const &value ) -> std::enable_if_t<
44 daw::json::json_details::is_opted_into_json_iostreams_v<T>, std::ostream &> {
46 auto out_it = std::ostreambuf_iterator<char>( os );
51template<
typename Container>
52auto operator<<( std::ostream &os, Container
const &c ) -> std::enable_if_t<
53 daw::json::json_details::is_container_opted_into_json_iostreams_v<Container>,
56 auto out_it = std::ostreambuf_iterator<char>( os );
auto operator<<(std::ostream &os, T const &value) -> std::enable_if_t< daw::json::json_details::is_opted_into_json_iostreams_v< T >, std::ostream & >
Definition: daw_json_iostream.h:43
constexpr bool is_opted_into_json_iostreams_v
Definition: daw_json_iostream.h:32
constexpr bool is_container_opted_into_json_iostreams_v
Definition: daw_json_iostream.h:36
typename json_data_contract< T >::opt_into_iostreams is_opted_into_json_iostreams
Definition: daw_json_iostream.h:25
is_opted_into_json_iostreams< typename Container::value_type > is_container_opted_into_json_iostreams
Definition: daw_json_iostream.h:29
constexpr OutputIterator to_json(Value const &value, OutputIterator out_it)
Definition: daw_to_json.h:26
constexpr OutputIterator to_json_array(Container const &c, OutputIterator it)
Definition: daw_to_json.h:66
Definition: daw_from_json.h:22
Definition: daw_json_traits.h:127
#define DAW_JSON_VER
The version string used in namespace definitions. Must be a valid namespace name.
Definition: version.h:16