SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
|
A "pretty printer" for most SeqAn data structures and related types. More...
#include <seqan3/core/debug_stream/debug_stream_type.hpp>
Public Types | |
using | fmtflags = typename std::basic_ostream< char_t >::fmtflags |
This type is std::ios_base::fmtflags. | |
Public Member Functions | |
Constructor, destructor and assignment. | |
The standard functions are explicitly set to default. | |
debug_stream_type ()=default | |
Defaulted. | |
debug_stream_type (debug_stream_type const &)=default | |
Defaulted. | |
debug_stream_type (debug_stream_type &&)=default | |
Defaulted. | |
debug_stream_type & | operator= (debug_stream_type const &)=default |
Defaulted. | |
debug_stream_type & | operator= (debug_stream_type &&)=default |
Defaulted. | |
~debug_stream_type ()=default | |
Defaulted. | |
constexpr | debug_stream_type (std::basic_ostream< char_t > &out) |
Construction from an output stream. | |
Miscelleneous | |
void | set_underlying_stream (std::basic_ostream< char_t > &out) |
Change the underlying output stream. | |
std::basic_ostream< char_t > & | get_underlying_stream () const noexcept |
Retrieve the underlying stream. | |
Format flags (std::ios_base::fmtflags) | |
std::ios_base::fmtflags that modify the stream's behaviour. | |
fmtflags | flags () const |
Retrieve the format flags from the stream. | |
fmtflags | flags (fmtflags const flgs) |
Replace the current flags on the stream with the given argument. | |
void | setf (fmtflags const flag) |
Set the format flag(s) on the stream (current flags are ORed with the argument). | |
void | unsetf (fmtflags const flag) |
Unset the format flag(s) on the stream. | |
Format flags (seqan3::fmtflags2) | |
SeqAn specific debug flags for the debug stream. | |
fmtflags2 | flags2 () const |
Retrieve the format flags from the stream. | |
fmtflags2 | flags2 (fmtflags2 flgs) |
Replace the current flags on the stream with the given argument. | |
void | setf (fmtflags2 const flag) |
Set the format flag(s) on the stream (current flags are ORed with the argument). | |
void | unsetf (fmtflags2 const flag) |
Unset the format flag(s) on the stream. | |
Friends | |
template<typename T > | |
struct | debug_stream_printer |
template<typename T > | |
struct | std_printer |
Formatted output | |
template<typename other_char_t , typename t > | |
debug_stream_type< other_char_t > & | operator<< (debug_stream_type< other_char_t > &s, t &&v) |
Forwards to the underlying stream object. | |
debug_stream_type & | operator<< (std::ostream &(*fp)(std::ostream &)) |
This overloads enables forwarding std::endl and other manipulators. | |
A "pretty printer" for most SeqAn data structures and related types.
A global instance of this type exists as seqan3::debug_stream. You can stream to it as you would to std::cout or std::cerr, but the debug stream has special overloads that make certain types streamable (that are not streamable to std::cout). Additionally some data structures are visualised more elaborately via the debug stream and there are extra flags to configure it (seqan3::fmtflags2).
Simple usage:
Changing flags:
See seqan3::fmtflags2 for more details.
|
inline |
Change the underlying output stream.
out | Reference to the new output stream. |
The actual underlying stream that is printed to defaults to std::cerr, but can be changed via this function. You can set any kind of output stream, e.g. a std::ostringstream or a std::ofstream if you want to write to a file, but please be aware that the debug_stream never takes ownership of the underlying stream so you need to take special care that its object lifetime does not end before the debug_stream's.
In the case where you wish to print to some stream object locally, instead create you own debug stream: