29 namespace seqan3::detail
33 template <
typename char_t,
typename tuple_t,
std::size_t ...I>
38 ((s << (I == 0 ?
"" :
",") << get<I>(t)), ...);
53 template <
typename tuple_t>
54 SEQAN3_CONCEPT debug_streamable_tuple = !std::ranges::input_range<tuple_t> &&
69 template <
typename char_t,
typename tuple_t>
71 requires (detail::debug_streamable_tuple<tuple_t>)
73 inline debug_stream_type<char_t> &
operator<<(debug_stream_type<char_t> & s, tuple_t && t)
75 detail::print_tuple(s, std::forward<tuple_t>(t),
Core alphabet concept and free function/type trait wrappers.
A "pretty printer" for most SeqAn data structures and related types.
Definition: debug_stream_type.hpp:76
Provides seqan3::debug_stream and related types.
debug_stream_type< char_t > & operator<<(debug_stream_type< char_t > &stream, alignment_t &&alignment)
Stream operator for alignments, which are represented as tuples of aligned sequences.
Definition: debug_stream_alignment.hpp:101
constexpr auto get
A view calling get on each element in a range.
Definition: elements.hpp:114
The generic alphabet concept that covers most data types used in ranges.
Whether a type behaves like a tuple.
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
Adaptations of concepts from the Ranges TS.
Provides seqan3::tuple_like.