66 template <
typename... Args>
67 auto start(Args&&... args)
71 template <
typename... Args>
72 auto store(Args&&... args)
77 const char* m_prefix =
nullptr;
79 std::stringstream m_stream{};
89template <
typename... Args>
96 if(
sizeof...(Args) == 0)
99 std::cerr << std::flush;
101 std::cerr <<
"[" << m_prefix <<
"]";
102 std::cerr <<
"> " <<
TIMEMORY_JOIN(
"", std::forward<Args>(args)...) <<
'\n';
105template <
typename... Args>
112 if(
sizeof...(Args) == 0)
120 m_stream << _tp <<
"> " <<
TIMEMORY_JOIN(
"", std::forward<Args>(args)...) <<
'\n';
123#if defined(TIMEMORY_COMPONENT_PRINTER_HEADER_ONLY_MODE) && \
124 TIMEMORY_COMPONENT_PRINTER_HEADER_ONLY_MODE > 0
tim::mpl::apply< std::string > string
A very lightweight base which provides no storage.
A diagnostic component when prints messages via start(...) and stores messages via store(....
printer(printer &&)=default
auto store(Args &&... args) -> decltype(TIMEMORY_FOLD_EXPRESSION(std::declval< std::stringstream >()<< args), void())
static std::string get_description()
bool assemble(timestamp *)
printer & operator=(printer &&)=default
static std::string get_label()
static std::string label()
static std::string description()
auto start(Args &&... args) -> decltype(TIMEMORY_FOLD_EXPRESSION(std::declval< std::stringstream >()<< args), void())
void set_prefix(const char *)
this component stores the timestamp of when a bundle was started and is specialized such that the "ti...
#define TIMEMORY_FOLD_EXPRESSION(...)
#define TIMEMORY_JOIN(delim,...)