据说将Ranges TS注入(inject)std命名空间会导致对标准库(例如this link)进行一些重大更改。有人知道这些变化是什么吗?

最佳答案

N4569 Annex B(通过以上评论中的@Holt链接):

  • 算法返回类型-修改为包括最终迭代器
  • 更强的约束-过去仅需要<的算法现在需要所有比较运算符
  • 受约束的功能对象-添加到std::less的类型等中的约束。
  • 迭代器和默认可构造性-Ranges_v3假定可以默认构造迭代器(以一种有用的方式)。目前不需要。
  • iterator_traits不能专用-在Range_v3中,它是一个别名模板。
  • N3351-它在许多方面也与N3351提案不兼容,我在这里不做介绍。

  • 这只是一个总结。单击该论文的链接,或找到它的更多详细信息。

    10-07 15:34