回答
如果你是使用他們,沒有必要得到SCAREd ......只是忽略他們的SCARY-ness。
如果你是製作他們,這意味着你必須使你的迭代器獨立於容器的分配器類型和容器的其他通用參數不影響迭代器。
出於好奇,對於具有非默認分配器的任何給定對象,或者存在對象具有非默認分配器的可能性,使用'decltype'而不是依賴於編譯器是否更好實現SCARY迭代器?例如,如果您由於某種原因,創建一個'的std ::矢量<整型,性病::分配器
我可以看到SCARY迭代器如何對預先存在的代碼有用,並允許編譯器正確處理代碼,而不必重寫它以解釋非默認迭代器,但是在編寫新的,類型無關的時候它們是不必要的代碼因爲'decltype',還是有利用SCARY行爲而不是使用'decltype'顯式指定我不知道的迭代器類型? [不包括不符合C++ 11標準的編譯器,它們通常不支持SCARY迭代器或'decltype'。] –
從鏈接的PDF,在http://www.open-std.org/jtc1/sc22/WG21/docs/papers/2009/n2911.pdf
縮寫SCARY介紹了看似錯誤(由衝突的泛型參數出現的約束),但正確的實現(不受約束的衝突其實工作任務和初始化由於最小化依賴)。
爲+0.5參考(儘管鏈接不是答案)。 +0.5用於引用倒序(儘管在沒有進一步的上下文的情況下它不是很明顯)。 -1不回答問題。 –
- 1. 什麼是迭代器,C++?
- 2. python迭代器的接口是什麼?
- 3. 爲什麼這個迭代器是const?
- 4. C++迭代器做什麼?
- 5. 什麼是迭代在Java
- 6. 什麼是無限迭代器?爲什麼要使用它?
- 7. 將迭代計算轉換爲迭代器 - 這叫做什麼?
- 8. 與迭代器相比,生成器的好處是什麼?
- 9. 什麼是序列容器的迭代器類型?
- 10. 爲什麼迭代器不兼容?
- 11. 使用迭代器有什麼優勢?
- 12. 爲什麼yield會返回迭代器?
- 13. 爲什麼std :: pair沒有迭代器?
- 14. 爲什麼PHP有迭代器對象?
- 15. 有什麼DSL流/迭代器?
- 16. 什麼用作end()迭代器C++?
- 17. 什麼是設置ngRepeat迭代ngRepeat
- 18. NSSet的迭代順序是什麼?
- 19. 爲什麼異常是可迭代的?
- 20. 這是什麼樣的迭代?
- 21. 什麼是PHP對象迭代
- 22. 迭代的輸出是什麼
- 23. 是什麼可迭代和ImmutableJS集合
- 24. 什麼是Alef迭代算子?
- 25. STL容器迭代器和C指針迭代器有什麼區別
- 26. 分享迭代器是否可迭代?
- 27. 爲什麼編譯器說我只能在MyList實現迭代時迭代迭代一個迭代的實例?
- 28. Python文件迭代器和列表迭代器有什麼區別?
- 29. 輸入迭代器和只讀前向迭代器之間有什麼區別?
- 30. 爲什麼我不能將逆向迭代器轉換爲向前迭代器?
它們以描述n2980(http://www.open-std.org/jtc1/sc22/WG21/docs/papers/2009/n2980.pdf)和[n2911](HTTP:// WWW。 open-std.org/jtc1/sc22/WG21/docs/papers/2009/n2911.pdf)。你讀過那些報紙嗎? – Mankarse
http://blogs.msdn.com/b/vcblog/archive/2012/04/06/10291485.aspx – Macmade
我總是希望'的std ::矢量 :: iterator'將是一個普通的老'T *' 。沒有什麼比這更恐怖的了。 –
ybungalobill