diff options
| author | Nikita Kostovsky <nikita@kostovsky.me> | 2025-11-22 20:36:27 +0100 |
|---|---|---|
| committer | Nikita Kostovsky <nikita@kostovsky.me> | 2025-11-22 20:36:27 +0100 |
| commit | 9157b253251f357b76fdfd657300d43e702f1674 (patch) | |
| tree | 39b5c6324646479fadb196d276840c9e3b70fa3e /src/utils | |
| parent | 6aecc111a48ccc316a923e92b4b41424847be297 (diff) | |
introduce elapsed_logger and more garbage
Diffstat (limited to 'src/utils')
| -rw-r--r-- | src/utils/elapsed_logger.cpp | 1 | ||||
| -rw-r--r-- | src/utils/elapsed_logger.h | 32 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/utils/elapsed_logger.cpp b/src/utils/elapsed_logger.cpp new file mode 100644 index 0000000..c38d536 --- /dev/null +++ b/src/utils/elapsed_logger.cpp @@ -0,0 +1 @@ +#include "elapsed_logger.h" diff --git a/src/utils/elapsed_logger.h b/src/utils/elapsed_logger.h new file mode 100644 index 0000000..ea0d9e2 --- /dev/null +++ b/src/utils/elapsed_logger.h @@ -0,0 +1,32 @@ +#pragma once + +#include <chrono> +#include <iomanip> +#include <iostream> +#include <string> + +/*! + * \brief The elapsed_logger class - print `message: <own life time>` on destruction + */ +template<typename T = std::chrono::microseconds, int W = 8> +class elapsed_logger +{ + using clk = std::chrono::high_resolution_clock; + +public: + explicit elapsed_logger(const std::string &&message) + : m_start{clk::now()} + , m_message{std::move(message)} + {} + + ~elapsed_logger() + { + using namespace std::chrono; + const auto duration = duration_cast<T>(clk::now() - m_start); + std::cout << m_message << ": " << std::setw(W) << duration << std::endl; + } + +private: + const std::chrono::time_point<clk> m_start; + const std::string m_message; +}; |
