溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C++實(shí)施建議有哪些

發(fā)布時(shí)間:2021-11-25 15:40:24 來源:億速云 閱讀:122 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“C++實(shí)施建議有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“C++實(shí)施建議有哪些”吧!

In.force: Enforcement(實(shí)施建議)

對于大規(guī)模代碼來說,不包含實(shí)施建議的規(guī)則是無法管理的。針對所有規(guī)則的實(shí)施建議只有在規(guī)則數(shù)量甚少,針對特定的用戶群體時(shí)才可能存在。

  • But we want lots of rules, and we want rules that everybody can use.但是我們想要很多規(guī)則,并且我們希望每個(gè)人都能用的規(guī)則。

  • But different people have different needs.但是不同的人需求也不同。

  • But people don't like to read lots of rules.但是人們不喜歡理解大量規(guī)則。

  • But people can't remember many rules.但是人們不能記住大量的規(guī)則。

So, we need subsetting to meet a variety of needs.因此我們需要構(gòu)造規(guī)則的子集以滿足不同的需求。

  • But arbitrary subsetting leads to chaos.但是隨心所欲的構(gòu)造子集會導(dǎo)致混亂。

我們幫助很多人的指南可以使代碼更加統(tǒng)一,并且強(qiáng)烈推薦人們現(xiàn)代化他們的代碼。我們希望鼓勵(lì)最佳實(shí)踐,而不是把一切留給個(gè)人選擇和管理壓力。這個(gè)想法適用于所有規(guī)則;這會帶來巨大的利益。

這些想法加起來造成非常多的困擾。我們努力使用工具解決這些問題。每條規(guī)則都有一個(gè)實(shí)施建議用來列舉實(shí)施相關(guān)的想法。實(shí)施的方式可以是通過代碼評審,靜態(tài)分析,編譯器,或者執(zhí)行時(shí)檢查。只要可能,我們更加推薦機(jī)械檢查(人的速度很慢,不準(zhǔn)確并且容易厭煩)和靜態(tài)檢查。動態(tài)檢查只有在沒有其他備選出口時(shí)才會被推薦,這種情況很少;我們(在實(shí)施建議中)以一組相關(guān)規(guī)則的統(tǒng)稱(稱為“概述”)為規(guī)則打標(biāo)簽。規(guī)則可以是多個(gè)從屬于多個(gè)不同的概述,或者不屬于任何概述。作為開始,我們已經(jīng)有幾個(gè)概述用于對應(yīng)常見的需求(愿望,理想)

譯者注:再次強(qiáng)調(diào)靜態(tài)檢查。

  • type: No type violations (reinterpreting a T as a U through casts, unions, or varargs)類型:沒有類型違反(通過類型轉(zhuǎn)換,聯(lián)合或者可變參數(shù)將T重新解釋為U)

  • bounds: No bounds violations (accessing beyond the range of an array)范圍:沒有范圍違反(超出數(shù)組范圍訪問)

  • lifetime: No leaks (failing to delete or multiple delete) and no access to invalid objects (dereferencing nullptr, using a dangling reference).聲明周期:沒有泄漏(沒有delete或多重delete)和訪問無效對象(對空指針取值,使用野指針)

概述的目的是被工具使用,但也可以幫助人類讀者。對用戶那些我們知道如何實(shí)施的規(guī)則,我們不會在實(shí)施建議中吝惜我們的描述。有些解釋僅僅是希望啟發(fā)某些工具構(gòu)建者的思考。

Tools that implement these rules shall respect the following syntax to explicitly suppress a rule:

實(shí)現(xiàn)這些規(guī)則的工具應(yīng)該遵守下面的語法以便明確地抑制某條規(guī)則。

[[gsl::suppress(tag)]]

這里“tag”是一個(gè)項(xiàng)目的錨名稱,這里應(yīng)該出現(xiàn)實(shí)施建議(例如對于C.134來說是“Rh-publicc”),規(guī)則組名稱(“type”,“bounds”,或者“l(fā)efttime”),或者概述中的特定規(guī)則。

譯者注:抑制的含義是忽略某條規(guī)則。

到此,相信大家對“C++實(shí)施建議有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI