相关疑难解决方法(0)

我可以以constexpr方式获取C++类型名称吗?

我想在编译时使用类型的名称.例如,假设我写了:

constexpr size_t my_strlen(const char* s)
{
        const char* cp = s;
        while(*cp != '\0') { cp++; };
        return cp - s;
}
Run Code Online (Sandbox Code Playgroud)

现在我希望:

template <typename T>
constexpr auto type_name_length = my_strlen(typeid(T).name());
Run Code Online (Sandbox Code Playgroud)

但是,唉,typeid(T).name()只是const char*,而不是constexpr ......还有其他一些constexpr方法来获得一个类型的名字吗?

c++ reflection compile-time constexpr c++14

28
推荐指数
2
解决办法
6440
查看次数

标签 统计

c++ ×1

c++14 ×1

compile-time ×1

constexpr ×1

reflection ×1