所以我有這樣的真醜代碼:是否有這樣的事情了模板化的case語句
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到做各種各樣的case語句。有沒有什麼能夠更加優雅地完成這件事,還是我需要製作自己的模板化案例陳述?
注:其實我知道,這使用的reinterpret_cast
不好:Why Doesn't reinterpret_cast Force copy_n for Casts between Same-Sized Types?
這段代碼試圖實現什麼? – Slava 2015-02-24 15:11:43
你可以爲char,short,int,long long做一個模板... – amchacon 2015-02-24 15:11:54
爲什麼這感覺就像你的依賴類型編程語言之後? – 2015-02-24 15:12:20