2015-09-30 2 views
4

Есть ли способ, как получить typeid в переменную во время компиляции с использованием constexpr?C++ 11 constexpr и typeid (type)

Это не работает, так как std::type_index не имеет constexpr CTOR

constexpr std::type_index i = typeid(double); 

ответ

1

В некотором смысле, есть:

constexpr const std::type_info &i = typeid(double); 

Вы должны иметь в виду, что typeid возвращает тип const std::type_info &, а не std::type_index.

+0

Это работает, но позже в коде это: 'if (i == typeid (double))' fail –

+0

@MartinPerry Это [работает для меня] (http://coliru.stacked-crooked.com/a/ced21b0975021500). Можете ли вы предоставить код ошибки? – Angew

+0

Более или менее тот же код в Visual Studio 2013 с Intel Compiler 15.0 –

Смежные вопросы