generator(generator&& other) noexcept;
~generator();
generator& operator=(generator other) noexcept;
iterator begin();
default_sentinel_t end() const noexcept;
generator get_return_object() noexcept;
auto final_suspend() noexcept;
suspend_always yield_value(yielded val) noexcept;
auto yield_value(const remove_reference_t<yielded>& lval)
requires is_rvalue_reference_v<yielded> &&
constructible_from<remove_cvref_t<yielded>, const remove_reference_t<yielded>&>;
template<ranges::input_range R, class Alloc>
requires convertible_to<ranges::range_reference_t<R>, yielded>
auto yield_value(ranges::elements_of<R, Alloc> r);
void unhandled_exception();
void* operator new(size_t size)
requires same_as<Allocator, void> || default_initializable<Allocator>;
template<class Alloc, class... Args>
requires same_as<Allocator, void> || convertible_to<const Alloc&, Allocator>
void* operator new(size_t size, allocator_arg_t, const Alloc& alloc, const Args&...);
template<class This, class Alloc, class... Args>
requires same_as<Allocator, void> || convertible_to<const Alloc&, Allocator>
void* operator new(size_t size, const This&, allocator_arg_t, const Alloc& alloc,
const Args&...);
void operator delete(void* pointer, size_t size) noexcept;
iterator(iterator&& other) noexcept;
iterator& operator=(iterator&& other) noexcept;
reference operator*() const noexcept(is_nothrow_copy_constructible_v<reference>);
iterator& operator++();
void operator++(int);
friend bool operator==(const iterator& i, default_sentinel_t);