constexpr if with Failed Static_Assert in the False Branch
問題:
雖然
儘管提案的缺乏對static_assert的明確提及,為什麼它在constexpr if 語句的非採取分支被視為格式錯誤?無法產生有效的專業化用於模板,或模板內constexpr if 語句的子語句。 模板未實例化。
對於具有非依賴條件的 static_assert ,其計算結果為false,無法為包含 static_assert 的模板產生有效的專業化。因此,包含此類語句的程式是錯誤的。
static_assert(false); // ill-formed範例:
void f() {
if constexpr (false)} `在此範例中,constexpr if語句的非取用分支中的 static_assert 會使整個函數格式錯誤,因為 no可以為包含 static_assert 的範本產生有效的專業化。 但是,此規則不會影響 static_asserts至少一種類型可以評估為 true 的依賴條件。以上是為什麼「constexpr if」的「false」分支中的「static_assert」格式不正確?的詳細內容。更多資訊請關注PHP中文網其他相關文章!