首頁 >後端開發 >C++ >有狀態元編程在 C 17 中仍然合法嗎?

有狀態元編程在 C 17 中仍然合法嗎?

DDD
DDD原創
2024-11-20 22:14:13248瀏覽

Is Stateful Metaprogramming Still Legal in C  17?

C 14 與C 17 中狀態元編程的合法性

原始問題:

有狀態元編程,使用以下技術constexpr 計數器,允許在元編程中進行狀態操作。雖然在 C 14 下是合法的,但人們對其與語言語義的一致性提出了擔憂。

問題:

有狀態元程式設計的狀態在 C 17 中是否發生了變化?

CWG 活躍問題 2118:

C 標準委員會已認識到這是一個潛在問題,並將其指定為 CWG 活躍問題 2118。令人擔憂的是,在模板中使用友元函數捕獲和檢索元編程狀態是晦澀難懂的,應該被聲明為格式錯誤。

C 17 中的解決方案:

截至 2015 年 5 月 CWG 會議,此問題仍有未解決。雖然委員會一致認為此類技術應該是格式錯誤的,但禁止它們的機制尚未確定。

當前意義:

有狀態元程式設計技術在技術上仍然存在在 C 17 中是合法的。但是,當最終實現禁止機制時,可能會追溯性地使這些技術成為不合格代碼。

以上是有狀態元編程在 C 17 中仍然合法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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