It is the simple static C++ timer library based on the boost thread library to make your life easier. The CppTimer provides a high-level programming interface for timers.
Install boost libraries. Pay attention to the version of installed libraries and version of thread library in submodule. They must be equal (if it's not, choose the correct version in the thread submodule).
git clone https://github.com/Humminghead/CppTimer.git
cd CppTimer
git submodule init git submodule update
cmake CMakeLists.txt make
make installCreate simple cpp project with cmake. Add in to your cmake next lines:
target_link_libraries(${PROJECT_NAME}PRIVATECppTimerpthread)and replace the main.cpp lines with the following text:
#include<CppTimer/timer.h>
#include<chrono>
#include<iomanip>
#include<iostream>
#include<thread>usingnamespacestd;
std::string format(int v)
{
return v > 9 ? std::to_string(v) : "0" + std::to_string(v);
}
std::string time()
{
std::time_t t = std::time(0); // get time now
std::tm* now = std::localtime(&t);
returnformat(now->tm_hour) + "-" + format(now->tm_min) + "-" + format(now->tm_sec);
}
intmain()
{
std::cout << time() << ": start" << std::endl;
CppTimer::CppTimer timer(1, [] { std::cout << time() << ": event" << std::endl; });
timer.run();
std::this_thread::sleep_for(std::chrono::seconds(3));
timer.stop();
std::cout << time() << " :stop" << std::endl;
return0;
}Out:
12-00-20: start
12-00-21: event
12-00-22: event
12-00-23: event
12-00-23 :stop