126 template <
typename t>
145 *stream << static_cast<int>(v);
154 *stream << static_cast<unsigned>(v);
166 std::ios_base::fmtflags
flags()
const 169 return stream->
flags();
173 std::ios_base::fmtflags
flags(std::ios_base::fmtflags
const flgs)
175 return stream->
flags(flgs);
179 void setf(std::ios_base::fmtflags
const flag)
185 void unsetf(std::ios_base::fmtflags
const flag)
264 template <Alphabet alphabet_t>
283 ((s << (I == 0 ?
"" :
",") << std::get<I>(t)), ...);
298 template <
typename tuple_t>
301 !Alphabet<tuple_t> &&
302 TupleLike<remove_cvref_t<tuple_t>>
306 detail::print_tuple(s, std::forward<tuple_t>(t),
321 template <
typename variant_type>
323 requires detail::is_type_specialisation_of_v<remove_cvref_t<variant_type>,
std::variant>
327 if (!v.valueless_by_exception())
328 std::visit([&s] (
auto && arg) {s << arg;}, v);
330 s <<
"<VALUELESS_VARIANT>";
340 template <
typename optional_type>
342 requires detail::is_type_specialisation_of_v<remove_cvref_t<optional_type>,
std::optional>
349 s <<
"<VALUELESS_OPTIONAL>";
367 template <std::ranges::InputRange rng_t>
373 !(std::is_pointer_v<std::decay_t<rng_t>> &&
Provides seqan3::add_enum_bitwise_operators.
The generic alphabet concept that covers most data types used in ranges.
constexpr debug_stream_type(std::ostream &out)
Construction from an output stream.
Definition: debug_stream.hpp:93
debug_stream_type & operator<<(debug_stream_type &s, variant_type &&v)
A std::variant can be printed by visiting the stream operator for the corresponding type...
Definition: debug_stream.hpp:325
fmtflags2 flags2(fmtflags2 flgs)
Replace the current flags on the stream with the given argument.
Definition: debug_stream.hpp:209
Definition: debug_stream.hpp:41
Enables use of non-ASCII UTF8 characters in formatted output.
Definition: debug_stream.hpp:40
constexpr auto to_char
Return the char representation of an alphabet object.
Definition: concept.hpp:285
~debug_stream_type()=default
Defaulted.
Provides various shortcuts for common std::ranges functions.
void setf(std::ios_base::fmtflags const flag)
Set the format flag(s) on the stream (current flags are ORed with the argument).
Definition: debug_stream.hpp:179
debug_stream_type & operator<<(debug_stream_type &s, alphabet_t const l)
All alphabets can be printed to the seqan3::debug_stream by their char representation.
Definition: debug_stream.hpp:265
debug_stream_type & operator<<(debug_stream_type &s, rng_t &&r)
All input ranges can be printed to the seqan3::debug_stream element-wise (if their elements are print...
Definition: debug_stream.hpp:368
void set_underlying_stream(std::ostream &out)
Change the underlying output stream.
Definition: debug_stream.hpp:117
Provides alphabet adaptations for standard uint types.
No flag is set.
Definition: debug_stream.hpp:39
The main SeqAn3 namespace.
fmtflags2 flags2() const
Retrieve the format flags from the stream.
Definition: debug_stream.hpp:203
debug_stream_type & operator<<(std::ios_base::fmtflags const flag)
Set the format flag(s) on the stream (current flags are ORed with the argument).
Definition: debug_stream.hpp:191
Provides seqan3::TupleLike.
debug_stream_type & operator<<(std::ostream &(*fp)(std::ostream &))
This overloads enables forwarding std::endl and other manipulators.
Definition: debug_stream.hpp:135
debug_stream_type debug_stream
A global instance of seqan3::debug_stream_type.
Definition: debug_stream.hpp:249
Adaptations of concepts from the Ranges TS.
void unsetf(fmtflags2 const flag)
Unset the format flag(s) on the stream.
Definition: debug_stream.hpp:222
std::ios_base::fmtflags flags() const
Retrieve the format flags from the stream.
Definition: debug_stream.hpp:167
::ranges::begin begin
Alias for ranges::begin. Returns an iterator to the beginning of a range.
Definition: ranges:174
debug_stream_type & operator<<(fmtflags2 const flag)
Set the format flag(s) on the stream (current flags are ORed with the argument).
Definition: debug_stream.hpp:228
std::ios_base::fmtflags flags(std::ios_base::fmtflags const flgs)
Replace the current flags on the stream with the given argument.
Definition: debug_stream.hpp:173
void setf(fmtflags2 const flag)
Set the format flag(s) on the stream (current flags are ORed with the argument).
Definition: debug_stream.hpp:216
debug_stream_type & operator<<(t &&v)
Forwards to the underlying stream object.
Definition: debug_stream.hpp:128
fmtflags2
Flags that change the behaviour of the seqan3::debug_stream.
Definition: debug_stream.hpp:37
Definition: aligned_sequence_concept.hpp:35
Concept for output streams.
debug_stream_type & operator<<(debug_stream_type &s, tuple_t &&t)
All tuples can be printed by printing their elements separately.
Definition: debug_stream.hpp:304
debug_stream_type()=default
Defaulted.
constexpr bool add_enum_bitwise_operators< fmtflags2 >
Overload bitwise operators for seqan3::fmtflags2.
Definition: debug_stream.hpp:48
Core alphabet concept and free function/type trait wrappers.
debug_stream_type & operator<<(debug_stream_type &s, optional_type &&arg)
A std::optional can be printed by printing its value or nothing if valueless.
Definition: debug_stream.hpp:344
debug_stream_type & operator=(debug_stream_type const &)=default
Defaulted.
Provides various transformation traits used by the range module.
typename reference< t >::type reference_t
Shortcut for seqan3::reference (TransformationTrait shortcut).
Definition: pre.hpp:77
The concept std::Same<T, U> is satisfied if and only if T and U denote the same type.
A "pretty printer" for most SeqAn data structures and related types.
Definition: debug_stream.hpp:78
::ranges::end end
Alias for ranges::end. Returns an iterator to the end of a range.
Definition: ranges:179
void unsetf(std::ios_base::fmtflags const flag)
Unset the format flag(s) on the stream.
Definition: debug_stream.hpp:185