Files
NuFI_deal.ii/nufi/stopwatch.h
T
2026-04-09 18:02:02 +02:00

38 lines
612 B
C++

#ifndef STOPWATCH_H
#define STOPWATCH_H
#include <chrono>
template <typename real>
class stopwatch
{
public:
void reset();
real elapsed();
private:
using clock = std::chrono::high_resolution_clock;
clock::time_point t0 { clock::now() };
};
template <typename real> inline
void stopwatch<real>::reset()
{
t0 = clock::now();
}
template <typename real> inline
real stopwatch<real>::elapsed()
{
using seconds = std::chrono::duration<real,std::ratio<1,1>>;
auto tnow = clock::now();
auto duration = std::chrono::duration_cast<seconds>( tnow - t0 );
return duration.count();
}
#endif // STOPWATCH_H