2016-11-30 68 views
3

據說將範圍TS注入std命名空間會導致對標準庫的許多重大更改(例如this link)。有人知道這些變化是什麼嗎?範圍TS突破變化?

+1

http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/n4569.pdf - 附錄B,兼容性。 – Holt

回答

4

N4569 Annex B(如通過在@Holt上述評論的鏈接):

  • 算法返回類型 - 修改爲包括結束迭代

  • 更強的約束 - 即用於要求的算法只需要<現在要求所有比較運算符

  • 約束功能對象 - 限制添加到std::less的類型等。

  • 迭代器和默認構造性 - Ranges_v3假定迭代器可以默認構造(以一種有用的方式)。目前這不是必需的。

  • iterator_traits不能被專門化 - 在Range_v3中,它是一個別名模板。

  • N3351 - 它在許多方面也與N3351提案不兼容,我不會在這裏進行討論。

這只是一個總結。請點擊鏈接進入論文或查找更多詳細信息。

+3

後人:N4569是荒謬的過時,雖然我相信兼容性附件沒有改變。 [N4620](https://wg21.link/n4620)是當前的Ranges TS工作草案(截至此發佈的鏈接將在Issaquah WG21會議郵件發佈後幾天內開始工作)。 [P0459R0](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0459r0.pdf)是一種更爲流行的「不完全正常工作」(sort-of-but-not-exactly-working-草案「,其中包括在Issaquah投票給TS的設計變更。 – Casey