Posso obter nomes de tipo C ++ de maneira constexpr?
Eu gostaria de usar o nome de um tipo em tempo de compilação. Por exemplo, suponha que eu tenha escrito:
constexpr size_t my_strlen(const char* s)
{
const char* cp = s;
while(*cp != '\0') { cp++; };
return cp - s;
}
e agora eu quero ter:
template <typename T>
constexpr auto type_name_length = my_strlen(typeid(T).name());
Mas, infelizmente,typeid(T).name()
é apenasconst char*
, não constexpr ... existe alguma outra maneira constexpr de obter o nome de um tipo?