33#if defined(DISABLE_TIMEMORY) || defined(TIMEMORY_DISABLED) || \
34 (defined(TIMEMORY_ENABLED) && TIMEMORY_ENABLED == 0)
41template <
typename... ArgsT>
56 template <
typename... Types,
typename... ArgsT>
60 template <
typename... ArgsT>
64 dummy(
const dummy&) =
default;
65 dummy(dummy&&) =
default;
66 dummy& operator=(
const dummy&) =
default;
67 dummy& operator=(dummy&&) =
default;
71 void report_at_exit(
bool) {}
72 template <
typename... ArgsT>
75 template <
typename... ArgsT>
78 friend std::ostream&
operator<<(std::ostream&
os,
const dummy&) {
return os; }
82# if !defined(TIMEMORY_MACROS)
83# define TIMEMORY_MACROS
87# if !defined(TIMEMORY_INIT)
88# define TIMEMORY_INIT(...)
91# if !defined(TIMEMORY_FINALIZE)
92# define TIMEMORY_FINALIZE()
95# if !defined(TIMEMORY_CONFIGURE)
96# define TIMEMORY_CONFIGURE(...)
100# if !defined(TIMEMORY_BASIC_LABEL)
101# define TIMEMORY_BASIC_LABEL(...) std::string("")
104# if !defined(TIMEMORY_LABEL)
105# define TIMEMORY_LABEL(...) std::string("")
108# if !defined(TIMEMORY_JOIN)
109# define TIMEMORY_JOIN(...) std::string("")
113# if !defined(TIMEMORY_BLANK_MARKER)
114# define TIMEMORY_BLANK_MARKER(...)
117# if !defined(TIMEMORY_BASIC_MARKER)
118# define TIMEMORY_BASIC_MARKER(...)
121# if !defined(TIMEMORY_MARKER)
122# define TIMEMORY_MARKER(...)
126# if !defined(TIMEMORY_BLANK_POINTER)
127# define TIMEMORY_BLANK_POINTER(...)
130# if !defined(TIMEMORY_BASIC_POINTER)
131# define TIMEMORY_BASIC_POINTER(...)
134# if !defined(TIMEMORY_POINTER)
135# define TIMEMORY_POINTER(...)
139# if !defined(TIMEMORY_BLANK_CALIPER)
140# define TIMEMORY_BLANK_CALIPER(...)
143# if !defined(TIMEMORY_BASIC_CALIPER)
144# define TIMEMORY_BASIC_CALIPER(...)
147# if !defined(TIMEMORY_CALIPER)
148# define TIMEMORY_CALIPER(...)
152# if !defined(TIMEMORY_STATIC_BLANK_CALIPER)
153# define TIMEMORY_STATIC_BLANK_CALIPER(...)
156# if !defined(TIMEMORY_STATIC_BASIC_CALIPER)
157# define TIMEMORY_STATIC_BASIC_CALIPER(...)
160# if !defined(TIMEMORY_STATIC_CALIPER)
161# define TIMEMORY_STATIC_CALIPER(...)
165# if !defined(TIMEMORY_CALIPER_APPLY)
166# define TIMEMORY_CALIPER_APPLY(...)
169# if !defined(TIMEMORY_CALIPER_TYPE_APPLY)
170# define TIMEMORY_CALIPER_TYPE_APPLY(...)
173# if !defined(TIMEMORY_CALIPER_APPLY0)
174# define TIMEMORY_CALIPER_APPLY0(...)
177# if !defined(TIMEMORY_CALIPER_TYPE_APPLY0)
178# define TIMEMORY_CALIPER_TYPE_APPLY0(...)
181# if !defined(TIMEMORY_CALIPER_LAMBDA)
182# define TIMEMORY_CALIPER_LAMBDA(...)
185# if !defined(TIMEMORY_CALIPER_TYPE_LAMBDA)
186# define TIMEMORY_CALIPER_TYPE_LAMBDA(...)
190# if !defined(TIMEMORY_BLANK_HANDLE)
191# define TIMEMORY_BLANK_HANDLE(...) tim::dummy()
194# if !defined(TIMEMORY_BASIC_HANDLE)
195# define TIMEMORY_BASIC_HANDLE(...) tim::dummy()
198# if !defined(TIMEMORY_HANDLE)
199# define TIMEMORY_HANDLE(...) tim::dummy()
203# if !defined(TIMEMORY_BLANK_RAW_POINTER)
204# define TIMEMORY_BLANK_RAW_POINTER(...) nullptr
207# if !defined(TIMEMORY_BASIC_RAW_POINTER)
208# define TIMEMORY_BASIC_RAW_POINTER(...) nullptr
211# if !defined(TIMEMORY_RAW_POINTER)
212# define TIMEMORY_RAW_POINTER(...) nullptr
216# if !defined(TIMEMORY_DEBUG_BLANK_MARKER)
217# define TIMEMORY_DEBUG_BLANK_MARKER(...)
220# if !defined(TIMEMORY_DEBUG_BASIC_MARKER)
221# define TIMEMORY_DEBUG_BASIC_MARKER(...)
224# if !defined(TIMEMORY_DEBUG_MARKER)
225# define TIMEMORY_DEBUG_MARKER(...)
229# if !defined(TIMEMORY_BLANK_AUTO_TIMER)
230# define TIMEMORY_BLANK_AUTO_TIMER(...)
233# if !defined(TIMEMORY_BASIC_AUTO_TIMER)
234# define TIMEMORY_BASIC_AUTO_TIMER(...)
237# if !defined(TIMEMORY_AUTO_TIMER)
238# define TIMEMORY_AUTO_TIMER(...)
241# if !defined(TIMEMORY_BLANK_AUTO_TIMER_HANDLE)
242# define TIMEMORY_BLANK_AUTO_TIMER_HANDLE(...)
245# if !defined(TIMEMORY_BASIC_AUTO_TIMER_HANDLE)
246# define TIMEMORY_BASIC_AUTO_TIMER_HANDLE(...)
249# if !defined(TIMEMORY_AUTO_TIMER_HANDLE)
250# define TIMEMORY_AUTO_TIMER_HANDLE(...)
253# if !defined(TIMEMORY_DEBUG_BASIC_AUTO_TIMER)
254# define TIMEMORY_DEBUG_BASIC_AUTO_TIMER(...)
257# if !defined(TIMEMORY_DEBUG_AUTO_TIMER)
258# define TIMEMORY_DEBUG_AUTO_TIMER(...)
262# if !defined(TIMEMORY_BLANK_AUTO_BUNDLE)
263# define TIMEMORY_BLANK_AUTO_BUNDLE(...)
266# if !defined(TIMEMORY_BASIC_AUTO_BUNDLE)
267# define TIMEMORY_BASIC_AUTO_BUNDLE(...)
270# if !defined(TIMEMORY_AUTO_BUNDLE)
271# define TIMEMORY_AUTO_BUNDLE(...)
274# if !defined(TIMEMORY_BLANK_AUTO_BUNDLE_HANDLE)
275# define TIMEMORY_BLANK_AUTO_BUNDLE_HANDLE(...)
278# if !defined(TIMEMORY_BASIC_AUTO_BUNDLE_HANDLE)
279# define TIMEMORY_BASIC_AUTO_BUNDLE_HANDLE(...)
282# if !defined(TIMEMORY_AUTO_BUNDLE_HANDLE)
283# define TIMEMORY_AUTO_BUNDLE_HANDLE(...)
286# if !defined(TIMEMORY_DEBUG_BASIC_AUTO_BUNDLE)
287# define TIMEMORY_DEBUG_BASIC_AUTO_BUNDLE(...)
290# if !defined(TIMEMORY_DEBUG_AUTO_BUNDLE)
291# define TIMEMORY_DEBUG_AUTO_BUNDLE(...)
294# if !defined(TIMEMORY_TOOLSET_ALIAS)
295# define TIMEMORY_TOOLSET_ALIAS(...)
298# if !defined(TIMEMORY_DECLARE_COMPONENT)
299# define TIMEMORY_DECLARE_COMPONENT(...)
302# if !defined(TIMEMORY_STATISTICS_TYPE)
303# define TIMEMORY_STATISTICS_TYPE(...)
306# if !defined(TIMEMORY_TEMPLATE_STATISTICS_TYPE)
307# define TIMEMORY_TEMPLATE_STATISTICS_TYPE(...)
310# if !defined(TIMEMORY_VARIADIC_STATISTICS_TYPE)
311# define TIMEMORY_VARIADIC_STATISTICS_TYPE(...)
314# if !defined(TIMEMORY_DEFINE_CONCRETE_TRAIT)
315# define TIMEMORY_DEFINE_CONCRETE_TRAIT(...)
318# if !defined(TIMEMORY_DEFINE_TEMPLATE_TRAIT)
319# define TIMEMORY_DEFINE_TEMPLATE_TRAIT(...)
322# if !defined(TIMEMORY_DEFINE_VARIADIC_TRAIT)
323# define TIMEMORY_DEFINE_VARIADIC_TRAIT(...)
330# if !defined(TIMEMORY_MASTER_HEADER)
331# define TIMEMORY_MASTER_HEADER
334# if !defined(TIMEMORY_ENABLED)
335# define TIMEMORY_ENABLED 1
341# include "timemory/version.h"
void mark_begin(TupleT< Tp... > &obj, Args &&... args)
void stop(TupleT< Tp... > &obj, Args &&... args)
void mark_end(TupleT< Tp... > &obj, Args &&... args)
void start(TupleT< Tp... > &obj, Args &&... args)
std::ostream & operator<<(std::ostream &, const std::pair< T, U > &)
void timemory_finalize()
finalization of the specified types
void print_env(std::ostream &os, FuncT &&_filter)
Print all environment queries and their values which satisfy the filter conditions.
void configure(std::initializer_list< EnumT > components, Args &&... args)
void timemory_init(Args &&... _args)
const std::string std::ostream * os