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 concept debug_streamable_tuple = !
69 template <
typename char_t,
typename tuple_t>
70 requires (detail::debug_streamable_tuple<tuple_t>)
73 detail::print_tuple(s,
74 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:78
requires(detail::debug_streamable_tuple< tuple_t >) inline debug_stream_type< char_t > &operator<<(debug_stream_type< char_t > &s
All tuples can be printed by printing their elements separately.
The <concepts> header from C++20's standard library.
Provides seqan3::debug_stream and related types.
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
requires detail::debug_stream_range_guard< alignment_matrix_t > &&detail::matrix< alignment_matrix_t > debug_stream_type< char_t > & operator<<(debug_stream_type< char_t > &s, alignment_matrix_t &&matrix)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: debug_matrix.hpp:496
constexpr auto const & get(configuration< configs_t... > const &config) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: configuration.hpp:415
The <ranges> header from C++20's standard library.
Provides seqan3::tuple_like.