警告 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
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應