亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

C++怎么用not_null定義不能為空的指針

發布時間:2021-11-24 11:16:20 來源:億速云 閱讀:575 作者:iii 欄目:大數據

本篇內容主要講解“C++怎么用not_null定義不能為空的指針”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C++怎么用not_null定義不能為空的指針”吧!

I.12: Declare a pointer that must not be null as not_null( 用not_null定義不能為空的指針

Reason(原因)

To help avoid dereferencing nullptr errors. To improve performance by avoiding redundant checks for nullptr.

為了防止解引用nullptr錯誤。為了避免多余的空指針檢查以提高性能。

譯者注:解引用就是指針前面加*獲取內容的操作。

Example(示例)

int length(const char* p);            // it is not clear whether length(nullptr) is valid
length(nullptr);                      // OK?
int length(not_null<const char*> p);  // better: we can assume that p cannot be nullptr
int length(const char* p);            // we must assume that p can be nullptr

By stating the intent in source, implementers and tools can provide better diagnostics, such as finding some classes of errors through static analysis, and perform optimizations, such as removing branches and null tests.

通過在代碼中說明目的,實現者和工具可以提供較好的診斷,例如通過靜態分析發現某些類型的錯誤,執行性能優化,例如移除分支和空判斷。

譯者注:指的是上述代碼中使用not_null的情況。

Note(注意)

not_null is defined in the guidelines support library.

not_null在準則支持庫中被定義。

譯者注:積極地使用準則庫。

Note(注意)

The assumption that the pointer to char pointed to a C-style string (a zero-terminated string of characters) was still implicit, and a potential source of confusion and errors. Use czstring in preference to const char*.

指向字符的指針會指向一個C風格的字符串(以0結尾的字符串)這樣一個假設還是沒有說清楚,這會成為不確定性和錯誤的來源。在引用const char*時使用czstring。

// we can assume that p cannot be nullptr// we can assume that p points to a zero-terminated array of charactersint length(not_null<zstring> p);

Note: length() is, of course, std::strlen() in disguise.

注意:length()當然是偽裝的std::strlen。

Enforcement(實施建議)

  • (Simple) ((Foundation)) If a function checks a pointer parameter against nullptr before access, on all control-flow paths, then warn it should be declared not_null.

    (簡單)((基礎))如果一個函數在使用指針參數之前在所有控制流路徑上進行空檢查,那么發出應該參數被聲明為not_null的警告信息。

  • (Complex) If a function with pointer return value ensures it is not nullptr on all return paths, then warn the return type should be declared not_null.

    (復雜)如果一個指針類型(返回值)函數在它的所有返回路徑上都確認返回值不為空,那么發出返回值應該被定義為not_null的警告信息。

到此,相信大家對“C++怎么用not_null定義不能為空的指針”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

富宁县| 辰溪县| 闸北区| 宝丰县| 涪陵区| 洛宁县| 阜新市| 黄龙县| 苍山县| 梅河口市| 灵石县| 攀枝花市| 谷城县| 周至县| 许昌市| 柞水县| 富阳市| 汉寿县| 安顺市| 大姚县| 华阴市| 松原市| 枞阳县| 青神县| 芦山县| 东明县| 靖江市| 克什克腾旗| 社会| 延庆县| 鄯善县| 蒙自县| 河池市| 六安市| 东城区| 新龙县| 宝应县| 仲巴县| 淮南市| 尼勒克县| 阳信县|