![](/img/trans.png)
[英]With Range v3 ranges, how to combine views and actions into a single pipeline?
[英]ranges::views::generate have generator function signal end of range
我想要一個終止的生成器,比如 python,但我無法從ranges::views::generate
的接口判斷是否支持。
您可以輕松地手動滾動它: https ://godbolt.org/z/xcGz6657r 盡管如果您有可用的協程生成器,使用協程生成器可能會更好。
您可以在生成器中返回一個可選項,並在使用views::take_while
生成std::nullopt
時停止獲取元素
auto out = ranges::views::generate(
[i = 0]() mutable -> std::optional<int>
{
if (i > 3)
return std::nullopt;
return { i++ };
})
| ranges::views::take_while([](auto opt){ return opt.has_value();})
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.