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()); + } + +}