From fca22c93e28ac6aa0f50e83de7db44e5b0d2641d Mon Sep 17 00:00:00 2001 From: lisyarus Date: Wed, 21 Jul 2021 22:08:13 +0300 Subject: [PATCH] Add util::type_name --- libs/util/include/psemek/util/type_name.hpp | 18 ++++++++++++++++++ libs/util/source/type_name.cpp | 13 +++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 libs/util/include/psemek/util/type_name.hpp create mode 100644 libs/util/source/type_name.cpp diff --git a/libs/util/include/psemek/util/type_name.hpp b/libs/util/include/psemek/util/type_name.hpp new file mode 100644 index 00000000..e4a3f66a --- /dev/null +++ b/libs/util/include/psemek/util/type_name.hpp @@ -0,0 +1,18 @@ +#pragma once + +#include +#include + +namespace psemek::util +{ + + std::string type_name(std::type_info const & type); + + template + std::string const & type_name() + { + static std::string const result = type_name(typeid(T)); + return result; + } + +} diff --git a/libs/util/source/type_name.cpp b/libs/util/source/type_name.cpp new file mode 100644 index 00000000..de9cff05 --- /dev/null +++ b/libs/util/source/type_name.cpp @@ -0,0 +1,13 @@ +#include + +#include + +namespace psemek::util +{ + + std::string type_name(std::type_info const & type) + { + return boost::core::demangle(type.name()); + } + +}