簡體   English   中英

如何刪除或更改特定要求的C ++標准修訂版?

[英]How do I find the revision of C++ standard, where a specific requirement was removed or changed?

讓我舉一個具體的例子來說明我的意思。

我有兩個C ++標准草案:N4296現在很老了,最近的修訂版N4750。 我感興趣的是一些小節,例如[unord.hash]。 版本N4296要求std::hash提供兩種嵌套類型argument_typeresult_type ,但N4750中不再存在此要求。

如何找到修訂版本,刪除此要求的動機及其動機?

您可以使用的另一個來源是cppreference 他們在展示不同版本標准的不同之處方面做得非常出色。 例如, std::hash頁面列出了在C ++ 17中不推薦使用argument_typeresult_type ,在C ++ 20中刪除了。 有了這些信息,你至少知道刪除發生在C ++ 17和C ++ 20之間的標准版本中,這是很少看的版本。

此外,在至少某些部分中 ,如果存在缺陷報告,則還會在頁面上顯示指向該缺陷報告的鏈接。

你仍然需要做一些狩獵,但希望這會縮小你的范圍。

這實際上有點難。

個別修訂

首先,列出了已關閉的核心語言問題 (以及庫問題的等效頁面),它為您提供了紙質參考和一些日期信息。

工作組的郵件

標准的源代碼 ,可以使用Git工具及其朋友檢查其歷史記錄。 理論上提交日志應該是有用的 - 盡管我建議記下每個標准的最終草案的名稱(例如“N3690”這樣的單詞),以便您可以在標簽列表中識別它。

如果您真正尋找引入更改的特定修訂版,那么這是您最好的選擇。

標准之間

在嘗試確定引入更改的標准時 ,我個人傾向於打開單獨的標准文檔並進行自己的視覺分割。 如果您知道功能的措辭在標准中的位置,並且措辭主要是在一個地方划分,雖然它仍然很耗時,但這種方法很有效。

對於動機,您將尋找原始提案文件。 如果您設法找到進行更改的修訂草案,希望有人會交叉引用提案的名稱/ ID。

我還發現Google在搜索時會給出一些好的結果,如果你已經對它的內容有一個模糊的概念:例如“C ++ if declament definition for while consistent proposal”。

而且,如果您不介意非權威來源(盡管應該是可靠的),通常會有Stack Overflow答案跟蹤C ++標准之間的變化,並附有相關論文的鏈接。 例如, 這個回答“C ++ 17中有哪些新功能?” ,它引用了你提到的對std::hash的更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM