簡體   English   中英

range::views::generate 有生成器函數信號范圍結束

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM