TimeThis¶
A lightweight, header-only Modern C++20 stopwatch utility for measuring code execution time with optional callbacks.
Features¶
- RAII-Based Timing: Automatically measures elapsed time from construction to destruction.
- Optional Callbacks: Execute a custom callback function with the elapsed duration on scope exit.
- std::format Support: Native formatter specialization for
std::format. - Source Location Tracking: Automatically captures where the timer was constructed via
std::source_location. - Stream Output: Direct output stream integration via
operator<<. - Header-only C++20: Zero compiled library linkage; clean compilation on MSVC, Clang, and GCC.
- CPM & FetchContent Integration: Trivial one-line CMake dependency integration.
- Native NuGet Package: First-class Visual Studio / MSBuild packaging with Natvis visualization.
Quick Example¶
#include <iostream>
#include <chrono>
#include "siddiqsoft/timethis.hpp"
void processTask()
{
siddiqsoft::timethis timer([](const auto& duration) {
auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(duration);
std::cout << "Task took " << ms.count() << " ms\n";
});
// ... do work ...
} // Callback invoked automatically on scope exit
Documentation¶
- Getting Started
- CMake & CPM Integration
- NuGet Package
- Dependencies (SBOM)
- API Reference
- Maintainer Guide
License¶
Licensed under the BSD 3-Clause License.