c 錯誤收集

2021-10-06 08:48:21 字數 881 閱讀 1379

1. clang-tidy: non-const lvalue reference to type 'basic_string<>' cannot bind to a temperary of type 'basic_string<>'

錯誤描述:

這個錯誤出現在我試圖傳乙個臨時變數給乙個 函式,這個函式的引數型別為 引用(非常量引用)

原因分析: 

根據編譯錯誤提示可以知道,不能將形參begin、end繫結到a.begin()和a.end()的返回值,因為該返回值是乙個臨時量,臨時量的生命週期可能在a.begin()和a.end()執行完後就結束了。因此編譯器認為普通引用繫結乙個臨時量,在find_int函式中可能會修改這個臨時量,然而此時臨時量可能已經被銷毀,從而導致一些未定義的行為,因此編譯器不允許將普通引用繫結到乙個臨時量上。

解決辦法:

在函式定義的地方加上const變成常引用或者去掉&引用。

這篇部落格c++ non-const lvalue reference cannot bind to a temporary講的很清楚。

參考: 

c++之error: cannot bind non-const lvalue reference of type 『mystring&』 to an rvalue of type 『mystring』

c++ non-const lvalue reference cannot bind to a temporary

2. error: expected class-name before 『   (漏掉了後面的分號, 正確的應該是 class a{}; )。

參考:expected class-name before '{' token 

opencv錯誤收集整理

收集一些遇到的opencv錯誤,以便今後出錯能知道。1.內容 今天想用opencv自帶的hog演算法來做人體檢測,結果折騰了半天老是出現錯誤,錯誤在getdefaultpeopledetector 函式呼叫部分,堆疊顯示為 heap imagedetect.exe invalid address s...

GitHub操作常見錯誤收集

如果輸入 git remote add origin git github.com djqiang github帳號名 gitdemo 專案名 git 提示出錯資訊 fatal remote origin already exists.解決辦法如下 1 先輸入 git remote rm origi...

AndroidStudio常見錯誤收集 MAC版

問題 1 起因,在專案中我開啟了jack編譯器,使用了butterknife第三方工具的時候,引入了annotationprocessor,起初是沒問題的,之後我再修改編譯版本的時候,比如把build tools version公升到最高,然後對應的support v7 v4的版本也提公升到相應的版...