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的版本也提公升到相應的版...