所以我有这个非常丑陋的代码:
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
的 s 来进行各种案例陈述。有什么东西可以更优雅地完成这个任务,还是我需要编写自己的模板化案例陈述?
注意:我实际上知道这种使用reinterpret_cast
是不好的:Why Does Don't reinterpret_cast Force copy_n for Casts between Same-Sized Types?