首頁  >  文章  >  後端開發  >  Lambda 函數可以在 `constexpr` 表達式中使用嗎?

Lambda 函數可以在 `constexpr` 表達式中使用嗎?

Patricia Arquette
Patricia Arquette原創
2024-11-01 01:15:28456瀏覽

Can Lambda Functions Be Used in `constexpr` Expressions?

Constexpr 對Lambda 函數的支援

原始問題:

原始問題:

回應:

在 C 14 中,constexpr 不支援 lambda 函數。然而,隨著 N4487 的採用,這種情況將會改變。該提案將允許常數表達式中的 lambda 和特定閉包類型操作。

說明:

在 C 14 標準的 [expr.const]/(2.6) 下, lambda 被排除在常數表達式之外。 N4487 中概述了此限制:

「此提案建議在常數表達式中允許**lambda 表達式**,從而刪除現有限制。作者建議某些**lambda 表達式** 和操作允許某些閉包物件出現在常數表達式中。其視為文字類型。

如果 lambda 宣告符中省略了 constexpr 說明符,則只要滿足 constexpr 函數的要求,產生的函數呼叫運算子就會變成 constexpr。此行為類似於隱式定義的建構函數和賦值運算子的 constexpr 推理。

    以上是Lambda 函數可以在 `constexpr` 表達式中使用嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn