【发布时间】:2020-01-11 15:05:20
【问题描述】:
我正在编写一种算法,该算法将一些数据写入提供的输出范围(问题的初始文本包括细节,并且将 cmets 中的讨论转向了错误的方向)。我希望它在 API 中尽可能接近标准库中的其他范围算法。
我查看了std::ranges::output_range 实例的最新草案,发现只有两种算法:
他们都返回std::ranges::safe_iterator_t。我认为返回std::ranges::safe_subrange_t 是合乎逻辑的。即使您写入输出流,您仍然可以在这种情况下返回一个迭代器-哨兵对并将该范围向下传递。
我找到了P0970,看起来std::ranges::safe_subrange_t 是后来添加的。也许算法根本没有更新?还是有别的原因?
【问题讨论】:
-
什么是“Unicode标量值”?
-
也许你应该提供一个你正在尝试做的例子。
-
@LightnessRacesinOrbit unicode.org/glossary/index.html#unicode_scalar_value
-
那与一系列代码单元有什么不同呢?您设想的转换类型是什么?
-
@Lyberta:算法不适用于
operator|。这是一个根本不同的功能,由范围操作等管理......它们 not 是 Ranges TS 的一部分。它们最终可能会被标准化,但它们不是 C++20 的一部分。