Constexpr if/else 分岐の排他的実行の確保
C では、一連の constexpr if/else ステートメントを構築するときに、次のことを行うことが望ましいです。 else 分岐が決して実行されないようにします。これは通常、
static_assert(condition1 || condition2 || condition3);
に示すように、else 節内のすべての条件の評価を繰り返すことによって行われます。ただし、このような繰り返しは、特に複雑な条件の場合、退屈になる可能性があります。
依存ステートメントの使用
より洗練された解決策には、破棄されたステートメントをテンプレート パラメーターに依存させることが含まれます。これは、
template <class...> constexpr std::false_type always_false{};
else { static_assert(always_false<T>); }
このアプローチは次の理由から有効です:
以上がC で Constexpr if/else 分岐の排他的実行を保証する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。