范围打破变化

Ranges TS breaking changes?

本文关键字:变化 范围      更新时间:2023-10-16

据说将范围TS注入到std名称空间中会导致标准库的许多破坏变化(例如,此链接)。有人知道这些变化是什么吗?

来自N4569附件B(如上所述在上面的评论中由@Holt链接):

  • 算法返回类型 - 修改为包括结束迭代器

  • 更强的约束 - 过去仅需要<的算法现在需要所有比较操作员

  • 约束功能对象 - 添加到std::less的类型等的约束。

  • 迭代器和默认构造性 - ranges_v3假定迭代器可以构建默认值(以有用的方式)。目前不需要这。

  • iterator_traits不能专业 - 在range_v3中,它是一个别名模板。

  • N3351-它也与N3351提案不兼容,以多种方式我不会进入这里。

这只是一个摘要。请按照纸张的链接或找到更多详细信息。