确保 Constexpr if/else 分支的独占执行
在 C 中,当构造一系列 constexpr if/else 语句时,最好确保 else 分支永远不会被执行。这通常是通过重复评估 else 子句中的所有条件来完成的,如下所示:
static_assert(condition1 || condition2 || condition3);
但是,这种重复可能会变得乏味,尤其是在复杂的条件下。
使用依赖语句
更优雅的解决方案包括使废弃的语句依赖于模板参数。这是通过以下方式实现的:
template <class...> constexpr std::false_type always_false{};
else { static_assert(always_false<T>); }
这种方法是有效,因为:
以上是如何保证 C 中 Constexpr if/else 分支的独占执行?的详细内容。更多信息请关注PHP中文网其他相关文章!