確保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中文網其他相關文章!