虚函数可以是 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 { ~~~~ }
};
?
是的。
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.
了解它们的工作原理,我看不出有任何理由不允许这样做。
标题说明了一切:虚函数也可以是 C++20 协程吗?
struct A {
virtual std::generator<int> generate() const = 0; // std::generator: C++23
};
struct B : A {
virtual std::generator<int> generate() const { ~~~~ }
};
?
是的。
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.
了解它们的工作原理,我看不出有任何理由不允许这样做。