co_yield 可以不返回任何内容吗?

问题描述 投票:0回答:1

使用新的 C++ 协程,是否可以定义一个协程类,我可以使用它从函数中产生而不返回值?或者yield总是必须返回一些东西?我只对产生的功能感兴趣,而不是产生的值。

我想要这个:

Coro Fn() {
   if (...) co_yield;

    co_return;
}

不是这个:

Coro Fn() {
   if (...) co_yield dummyValue;

    co_return dymmyValue;
}
c++ c++-coroutine
1个回答
0
投票

不,但您不需要使用产量值。直接忽略它。

例如,产生一条消息:

co_yield "ignore"; 

并将其添加到您的promise_type中:

    auto yield_value(const char* msg) {
        return std::suspend_always{};
    }
© www.soinside.com 2019 - 2024. All rights reserved.