So habe ich diesen wirklich hässlich Code:Gibt es etwas wie ein Templatized Case-Statement
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);}
Ich bin mit verschachtelten conditional_t
s case-Anweisung der Art zu machen. Gibt es da draußen etwas, das das eleganter macht, oder muss ich meine eigene templated-case-Aussage aufstellen?
Hinweis: Ich bin eigentlich bewusst, dass diese Verwendung von reinterpret_cast
schlecht ist: Why Doesn't reinterpret_cast Force copy_n for Casts between Same-Sized Types?
Was dieser Code zu erreichen versucht? – Slava
Sie könnten eine Vorlage für char, kurz, int, lang lang ... – amchacon
Warum fühlt sich das wie Ihre nach abhängigen Programmiersprachen an? –