虚函数可以是 C++20 协程吗?

Can virtual functions be C++20 coroutines?

标题说明了一切:虚函数也可以是 C++20 协程吗?

struct A {
    virtual std::generator<int> generate() const = 0; // std::generator: C++23
};

struct B : A {
    virtual std::generator<int> generate() const { ~~~~ }
};

?

是的。

来自cppreference

Restrictions
Coroutines cannot use variadic arguments, plain return statements, or placeholder return types (auto or Concept).
Constexpr functions, constructors, destructors, and the main function cannot be coroutines.

了解它们的工作原理,我看不出有任何理由不允许这样做。