共用方式為


警告 C26410

參數 ' parameter ' 是 const 唯一指標的參考,請改用 const T*const T& (r.32)

一般而言,const 唯一指標的參考毫無意義。 它們可以安全地由原始參考或指標取代。 此警告會 強制執行 C++ 核心指導方針規則 R.32

備註

  • 唯一指標檢查有相當廣泛的準則來識別智慧型指標。 C++ 核心指導方針規則 R.31 如果您有非 std 智慧型指標,請遵循 std 的基本模式描述唯一指標和共用指標概念 。 啟發學習法很簡單,但可能會導致意外:智慧型指標類型是定義 operator->operator* 的任何類型。 可複製的類型(共用指標)必須具有公用複製建構函式或處理非 Rvalue 參考參數的多載指派運算子。

  • 範本程式碼可能會產生嘈雜警告。 請記住,範本可以使用具有不同間接層級的各種類型參數具現化,包括參考。 某些警告可能並不明顯,修正程式可能需要對範本進行一些重新作業(例如,明確移除參考間接存取)。 如果範本程式碼是刻意泛型的,則可以隱藏警告。

程式碼分析名稱: NO_REF_TO_CONST_UNIQUE_PTR

範例

不必要的參考:

std::vector<std::unique_ptr<Tree>> roots = GetRoots();
std::for_each(
    roots.begin(),
    roots.end(),
    [](const auto &root) { Rebalance(root.get()); });   // C26410