7#include "fixed_string.hpp"
8#include "time_stamp_count.hpp"
14namespace hi::inline
v1 {
30 virtual void log()
const noexcept = 0;
33 inline static thread_local trace_base *_top =
nullptr;
39template<fixed_
string Tag,
int NumItems = 0>
46 if (std::uncaught_exceptions()) {
51 global_counter<Tag>.add_duration(current_time_stamp.count() - _time_stamp.count());
54 void log()
const noexcept override
62 void set(
char const *key, T &&value)
noexcept
68 items[size++] = {key,
datum{std::forward<T>(value)}};
76template<fixed_
string Tag>
83 if (std::uncaught_exceptions()) {
88 global_counter<Tag>.add_duration(current_time_stamp.count() - _time_stamp.count());
91 void log()
const noexcept override
#define hi_axiom(expression)
Specify an axiom; an expression that is true.
Definition assert.hpp:133
#define hilet
Invariant should be the default for variables.
Definition utility.hpp:23
DOXYGEN BUG.
Definition algorithm.hpp:15
A dynamic data type.
Definition datum.hpp:224
Since Window's 10 QueryPerformanceCounter() counts at only 10MHz which is too low to measure performa...
Definition time_stamp_count.hpp:29
Definition time_stamp_count.hpp:31