本篇內容主要講解“C++實施建議有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C++實施建議有哪些”吧!
對于大規模代碼來說,不包含實施建議的規則是無法管理的。針對所有規則的實施建議只有在規則數量甚少,針對特定的用戶群體時才可能存在。
But we want lots of rules, and we want rules that everybody can use.但是我們想要很多規則,并且我們希望每個人都能用的規則。
But different people have different needs.但是不同的人需求也不同。
But people don't like to read lots of rules.但是人們不喜歡理解大量規則。
But people can't remember many rules.但是人們不能記住大量的規則。
So, we need subsetting to meet a variety of needs.因此我們需要構造規則的子集以滿足不同的需求。
But arbitrary subsetting leads to chaos.但是隨心所欲的構造子集會導致混亂。
我們幫助很多人的指南可以使代碼更加統一,并且強烈推薦人們現代化他們的代碼。我們希望鼓勵最佳實踐,而不是把一切留給個人選擇和管理壓力。這個想法適用于所有規則;這會帶來巨大的利益。
這些想法加起來造成非常多的困擾。我們努力使用工具解決這些問題。每條規則都有一個實施建議用來列舉實施相關的想法。實施的方式可以是通過代碼評審,靜態分析,編譯器,或者執行時檢查。只要可能,我們更加推薦機械檢查(人的速度很慢,不準確并且容易厭煩)和靜態檢查。動態檢查只有在沒有其他備選出口時才會被推薦,這種情況很少;我們(在實施建議中)以一組相關規則的統稱(稱為“概述”)為規則打標簽。規則可以是多個從屬于多個不同的概述,或者不屬于任何概述。作為開始,我們已經有幾個概述用于對應常見的需求(愿望,理想)
譯者注:再次強調靜態檢查。
type: No type violations (reinterpreting a T as a U through casts, unions, or varargs)類型:沒有類型違反(通過類型轉換,聯合或者可變參數將T重新解釋為U)
bounds: No bounds violations (accessing beyond the range of an array)范圍:沒有范圍違反(超出數組范圍訪問)
lifetime: No leaks (failing to delete or multiple delete) and no access to invalid objects (dereferencing nullptr, using a dangling reference).聲明周期:沒有泄漏(沒有delete或多重delete)和訪問無效對象(對空指針取值,使用野指針)
概述的目的是被工具使用,但也可以幫助人類讀者。對用戶那些我們知道如何實施的規則,我們不會在實施建議中吝惜我們的描述。有些解釋僅僅是希望啟發某些工具構建者的思考。
Tools that implement these rules shall respect the following syntax to explicitly suppress a rule:
實現這些規則的工具應該遵守下面的語法以便明確地抑制某條規則。
[[gsl::suppress(tag)]]
這里“tag”是一個項目的錨名稱,這里應該出現實施建議(例如對于C.134來說是“Rh-publicc”),規則組名稱(“type”,“bounds”,或者“lefttime”),或者概述中的特定規則。
譯者注:抑制的含義是忽略某條規則。
到此,相信大家對“C++實施建議有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。