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++用一棵紅黑樹同時封裝出set與map的實現(xiàn)代碼
set中存儲的一般為鍵K即可,而map存儲的一般都是鍵值對KV,也就是說他們結(jié)構(gòu)是不同的,那么我們?nèi)绾尾拍苡靡活w紅黑樹同時封裝出set與map兩種容器呢,那么接下來我們具體地來研究下STL庫中是怎樣實現(xiàn)的,并且進行模擬實現(xiàn),需要的朋友可以參考下2024-03-03

