3
C++ 17では、コンパイル時の条件によってインスタンス化される「constexpr if」が導入されています。"constexpr if"はswitch文よりも優れていますか?
switch文ではなくテンプレート関数で "constexpr if"を使用する方が良いということですか?例えば
:
template<int val> void func()
{
if constexpr(val == 0) {} else
if constexpr(val == 1) {} else
...
if constexpr(val == k) {} else {}
}
// vs
template<int val> void func()
{
switch (val)
{
case 0:
break;
case 1:
break;
...
case k:
break;
default:
break;
}
}
"より良い"という意味を定義する必要があります。もっと効率的?これはコンパイラの実装に依存します。読みやすい? switch文が好きですが、それは私の主観的意見です。 – Ferruccio
各ケースが単純な整数または列挙型であれば、スイッチは読みやすく、自由に重複してチェックを受けます。 –