summaryrefslogtreecommitdiffhomepage
path: root/entity/name-of.hpp
blob: 592f07c12ff9833f191d760335430da169c96553 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once
#include <Corrade/Containers/StringView.h>

#if defined _MSC_VER
#define FM_PRETTY_FUNCTION __FUNCSIG__
#else
#define FM_PRETTY_FUNCTION __PRETTY_FUNCTION__
#endif

template<typename T>
static constexpr auto _name_of() {
    using namespace Corrade::Containers;
    using SVF = StringViewFlag;
    constexpr const char* str = FM_PRETTY_FUNCTION;
    return StringView { str, Implementation::strlen_(str), SVF::Global|SVF::NullTerminated };
}

template<typename T> constexpr inline Corrade::Containers::StringView name_of = _name_of<T>();