json error: Use of overloaded operator [] is ambiguous錯誤的解決方法
最近在使用json數(shù)組時, 用0做下標有問題(Use of overloaded operator [] is ambiguous), 但用1做下標沒有問題, 我也是醉了。 網(wǎng)上到處搜了一下, 發(fā)現(xiàn)也有網(wǎng)友遇到。
// Note: //int x = a[0].GetInt(); // Error: operator[ is ambiguous, as 0 also mean a null pointer of const char* type. int y = a[SizeType(0)].GetInt(); // Cast to SizeType will work. int z = a[0u].GetInt(); // This works too.
0u = SizeType(0)
Json::Value作為數(shù)組時,讀取0位置時,出現(xiàn)錯誤:Use of overloaded operator [] is ambiguous
Use of overloaded operator [] is ambiguous (with operand types 'const Json:Value' and 'int' ) void Parse(constJson::Value &jsonObject) { rmb = jsonObject[0].asDouble(); }
Json:Value[]運算符支持輸入的非負整型,即UInt或unsigned int。
而0作為索引值,也可能為空指針輸入, 類型檢查無法通過。
修改如下即可:
rmb = jsonObject[0U].asDouble();
或者:
rmb = jsonObject[SizeType(0)].asDouble();
說明: 0U 表示無符號的整數(shù),這樣寫在自己的數(shù)組操作符重載的時候 區(qū)分 0 是 數(shù)值0 還是 空指針了....
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
- nodejs npm錯誤Error:UNKNOWN:unknown error,mkdir ''D:\Develop\nodejs\node_global''at Error
- JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL錯誤的解決方法
- JS提示:Uncaught SyntaxError:Unexpected token ) 錯誤的解決方法
- 用window.onerror捕獲并上報Js錯誤的方法
- 排除JQuery通過HttpGet調(diào)用WebService返回Json時“parserror”錯誤
- IE8 下的Js錯誤HTML Parsing Error...
- javascript Error 對象 錯誤處理
- JS常見錯誤(Error)及處理方案詳解
相關(guān)文章
C++中的new/delete、構(gòu)造/析構(gòu)函數(shù)、dynamic_cast分析
這篇文章主要介紹了C++中的new/delete、構(gòu)造/析構(gòu)函數(shù)、dynamic_cast分析 本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05使用C++和Crypto++庫實現(xiàn)AES加密與解密
在這篇博客中,我們將深入探討如何利用C++和Crypto++庫實現(xiàn)高效且安全的AES加密與解密機制,Crypto++是一款高度認可的免費C++類庫,文中通過代碼示例介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-01-01