Итак, у меня есть этот действительно уродливый код:
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 для кастования между одинаковыми размерами?суб > 
