20 #include <corsika/framework/analytics/Timer.hpp> 24 template <
class TClass,
typename TTimer>
28 "TTimer is not a timer!");
46 template <
typename TClassFunc, TClassFunc TFunc,
64 template <
typename TClass,
typename TRet,
typename... TArgs,
65 TRet (TClass::*TFuncPtr)(TArgs...),
typename TTimer>
66 class ClassTimer<TRet (TClass::*)(TArgs...), TFuncPtr, TTimer>
80 TRet call(TArgs... args);
84 template <
typename TClass,
typename... TArgs, void (TClass::*TFuncPtr)(TArgs...),
86 class ClassTimer<void (TClass::*)(TArgs...), TFuncPtr, TTimer>
91 void call(TArgs... args);
95 template <
typename TClass,
typename TRet,
typename... TArgs,
96 TRet (TClass::*TFuncPtr)(TArgs...)
const,
typename TTimer>
97 class ClassTimer<TRet (TClass::*)(TArgs...) const, TFuncPtr, TTimer>
102 TRet call(TArgs... args);
106 template <
typename TClass,
typename... TArgs, void (TClass::*TFuncPtr)(TArgs...)
const,
108 class ClassTimer<void (TClass::*)(TArgs...) const, TFuncPtr, TTimer>
113 void call(TArgs... args);
118 #include <corsika/detail/framework/analytics/ClassTimer.inl> `, since they are used everywhere as integral part of the framework.
TClass & obj_
Reference to the class object on which the function should be called.
Measure the runtime of a single class function.