Итак, у меня есть этот действительно уродливый код:
template <typename T>
std::conditional_t<sizeof(T) == sizeof(char),
char,
conditional_t<sizeof(T) == sizeof(short),
short,
conditional_t<sizeof(T) == sizeof(long),
long,
enable_if_t<sizeof(T) == sizeof(long long),
long long>>>> foo(T bar){return reinterpret_cast<decltype(foo(bar))>(bar);}
Я использую вложенный conditional_t
, чтобы создать сортировку case-statement. Есть ли что-то, что делает это более элегантно или мне нужно приготовить свой собственный шаблонный случай-выражение?
Примечание. Я действительно знаю, что это использование reinterpret_cast
плохо: Почему не переинтерпрет_сканирует Force copy_n для кастования между одинаковыми размерами?суб >