From 4b86554a0354d78efeb40e551eaccaac0fecd1d1 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 25 Sep 2018 13:08:40 +0800 Subject: Change the structure of project. --- src/debug_base.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/debug_base.h (limited to 'src/debug_base.h') diff --git a/src/debug_base.h b/src/debug_base.h new file mode 100644 index 00000000..7669b9df --- /dev/null +++ b/src/debug_base.h @@ -0,0 +1,45 @@ +#pragma once + + +#include "system_headers.h" +#include +#include +#include + +#include "base.h" + +namespace cru::debug +{ +#ifdef CRU_DEBUG + inline void DebugTime(Function&& action, const StringView& hint_message) + { + const auto before = std::chrono::steady_clock::now(); + action(); + const auto after = std::chrono::steady_clock::now(); + const auto duration = std::chrono::duration_cast(after - before); + OutputDebugStringW(fmt::format(L"{}: {}ms.\n", hint_message, duration.count()).c_str()); + } + + template + TReturn DebugTime(Function&& action, const StringView& hint_message) + { + const auto before = std::chrono::steady_clock::now(); + auto&& result = action(); + const auto after = std::chrono::steady_clock::now(); + const auto duration = std::chrono::duration_cast(after - before); + OutputDebugStringW(fmt::format(L"{}: {}ms.\n", hint_message, duration.count()).c_str()); + return std::move(result); + } +#else + inline void DebugTime(Function&& action, const StringView& hint_message) + { + action(); + } + + template + TReturn DebugTime(Function&& action, const StringView& hint_message) + { + return action(); + } +#endif +} -- cgit v1.2.3