我想知道,爲什麼在C++中,std::reverse_iterator::operator[]
的返回類型是未指定的。它不應該是std::reverse_iterator::reference
?爲什麼未指定std :: reverse_iterator :: operator []的返回類型?
9
A
回答
6
這實際上是一種多餘的放鬆;從LWG 448和LWG 299(超過N3066),這些都包含在C++ 11中,迭代器的返回類型operator[]
應該可以轉換爲reference
。引入此低規格(386)的原始LWG問題不幸在解決返回類型operator[]
的要求之前得到解決。
由於迭代器operator[]
返回類型,現在的任務是可以轉換成reference
的reverse_iterator::operator[]
返回類型可以清楚地只是reference
- 這是在雙方的libC++和libstdC++。
+2
...和MSVC。想要提交LWG問題? –
+2
@ T.C。在上面。 :) – Columbo
相關問題
- 1. 爲什麼std :: bind的返回類型未指定?
- 2. 未指定類型的返回類型
- 3. 爲什麼std :: is_assignable與相關指針類型返回false?
- 4. 爲什麼的std :: CBEGIN返回相同類型的std ::開始
- 5. std :: reverse_iterator有什麼缺點?
- 6. std :: find_if_not()返回什麼類型?
- 7. 未定義的std :: future作爲返回類型的行爲?
- 8. 從upper_bound指定返回值到reverse_iterator
- 9. 返回類型爲std :: search()
- 10. 爲什麼不std :: weak_ptr有operator->?
- 11. 爲什麼我無法用非參考返回類型定義operator =?
- 12. 爲什麼std :: vector需要operator =
- 13. 的std ::可選的operator *()和operator - >() - 未定義的行爲
- 14. 爲什麼std :: make_pair返回一對引用類型
- 15. 爲什麼std ::生成的返回狀態與std :: for_each類似?
- 16. std :: reverse_iterator奇怪的行爲(UB?)
- 17. 確定std :: function的返回類型
- 18. std :: is_arithmetic在泛型lambda中的int類型返回false:未定義的行爲?
- 19. 指定返回類型
- 20. 爲什麼字符串有返回類型的指針?
- 21. 爲什麼/ USER_ID/feed返回未指定的錯誤?
- 22. std ::等於reverse_iterator
- 23. 爲什麼需要用std :: string :: operator +()顯式調用Myclass :: operator string()?
- 24. 爲什麼我會返回一系列指針返回類型的字符?
- 25. Excel Worksheet.Usedrange返回什麼類型返回
- 26. 爲什麼aspect要返回int類型?
- 27. 返回類型錯誤。爲什麼?
- 28. sizeof爲什麼返回類型
- 29. 爲什麼類型(mock.MagicMock())== mock.MagicMock返回False?
- 30. 爲什麼XSockets.WebRTC getUserMedia返回未定義?
見LWG 386/2347。 – Columbo
@Columbo你能提供一個鏈接嗎? – Vincent
另請參閱LWG 1051. – Columbo