Как я могу получить тип выражения C++ во время компиляции (т.е. constexpr'ly)?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу получить тип выражения C++ во время компиляции (т.е. constexpr'ly)?

Сообщение Anonymous »

Я хотел бы использовать имя типа во время компиляции. Например, предположим, что я написал:

Код: Выделить всё

constexpr size_t my_strlen(const char* s)
{
const char* cp = s;
while(*cp != '\0') { cp++; };
return cp - s;
}
и теперь я хочу:

Код: Выделить всё

template 
constexpr auto type_name_length = my_strlen(typeid(T).name());
Но увы, typeid(T).name() — это просто const char*, а не constexpr... есть ли что-нибудь другое, constexpr способ получить имя типа?

Подробнее здесь: https://stackoverflow.com/questions/359 ... onstexprly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»