45 #include <range/v3/utility/associated_types.hpp> 59 template <
typename stream_type,
typename value_type>
61 concept ostream_concept = std::is_base_of_v<std::ios_base, stream_type> &&
62 requires (stream_type & os, value_type & val)
64 typename stream_type::char_type;
65 typename stream_type::traits_type;
66 typename stream_type::int_type;
67 typename stream_type::pos_type;
68 typename stream_type::off_type;
70 { os << val } -> std::basic_ostream<typename stream_type::char_type, typename stream_type::traits_type> &;
127 template <
typename stream_type,
typename value_type>
129 concept istream_concept = std::is_base_of_v<std::ios_base, stream_type> &&
130 requires (stream_type & os, value_type & val)
132 typename stream_type::char_type;
133 typename stream_type::traits_type;
134 typename stream_type::int_type;
135 typename stream_type::pos_type;
136 typename stream_type::off_type;
138 { os >> val } -> std::basic_istream<typename stream_type::char_type, typename stream_type::traits_type> &;
196 template <
typename stream_type,
typename value_type>
198 concept stream_concept = ostream_concept<stream_type, value_type> &&
199 istream_concept<stream_type, value_type>;
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:58
Provides C++20 additions to the type_traits header.