15 #include <daw/daw_traits.h>
19 #include <type_traits>
23 namespace json_details {
28 template<
typename Container>
34 daw::is_detected<is_opted_into_json_iostreams, T>::value;
38 daw::is_detected<is_container_opted_into_json_iostreams, T>::value;
44 auto operator<<( std::ostream &os, T
const &value ) -> std::enable_if_t<
45 daw::json::json_details::is_opted_into_json_iostreams_v<T>, std::ostream &> {
47 auto out_it = std::ostreambuf_iterator<char>( os );
52 template<
typename Container>
53 auto operator<<( std::ostream &os, Container
const &c ) -> std::enable_if_t<
54 daw::json::json_details::is_container_opted_into_json_iostreams_v<Container>,
57 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:44
constexpr bool is_opted_into_json_iostreams_v
Definition: daw_json_iostream.h:33
constexpr bool is_container_opted_into_json_iostreams_v
Definition: daw_json_iostream.h:37
typename json_data_contract< T >::opt_into_iostreams is_opted_into_json_iostreams
Definition: daw_json_iostream.h:26
is_opted_into_json_iostreams< typename Container::value_type > is_container_opted_into_json_iostreams
Definition: daw_json_iostream.h:30
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 out_it)
Definition: daw_to_json.h:52
Definition: daw_from_json.h:22
Definition: daw_json_traits.h:125
#define DAW_JSON_VER
Definition: version.h:11