Py2Cpp 1.6.3; VERSION ${PROJECT_VERSION}
Loading...
Searching...
No Matches
Classes | Public Member Functions | Friends | List of all members
py::RecursiveGenerator< T > Class Template Reference

Recursive generator using C++20 coroutines with symmetric transfer. More...

#include <recursive_gen.hpp>

Classes

class  iterator
 
class  promise_type
 

Public Member Functions

 RecursiveGenerator () noexcept
 
 RecursiveGenerator (RecursiveGenerator &&other) noexcept
 
RecursiveGeneratoroperator= (RecursiveGenerator &&other) noexcept
 
 RecursiveGenerator (const RecursiveGenerator &)=delete
 
RecursiveGeneratoroperator= (const RecursiveGenerator &)=delete
 
 ~RecursiveGenerator ()
 
iterator begin ()
 
iterator end () noexcept
 
void swap (RecursiveGenerator &other) noexcept
 

Friends

class promise_type
 

Detailed Description

template<typename T>
class py::RecursiveGenerator< T >

Recursive generator using C++20 coroutines with symmetric transfer.

Like Generator<T>, but supports yielding another RecursiveGenerator<T> directly via co_yield. This enables stackless recursive generation - ideal for lazy tree/graph traversal.

Uses promise chaining so only one coroutine frame is active at any depth.

Template Parameters
TValue type to yield

Constructor & Destructor Documentation

◆ RecursiveGenerator() [1/3]

template<typename T >
py::RecursiveGenerator< T >::RecursiveGenerator ( )
inlinenoexcept

◆ RecursiveGenerator() [2/3]

template<typename T >
py::RecursiveGenerator< T >::RecursiveGenerator ( RecursiveGenerator< T > &&  other)
inlinenoexcept

◆ RecursiveGenerator() [3/3]

template<typename T >
py::RecursiveGenerator< T >::RecursiveGenerator ( const RecursiveGenerator< T > &  )
delete

◆ ~RecursiveGenerator()

template<typename T >
py::RecursiveGenerator< T >::~RecursiveGenerator ( )
inline

Member Function Documentation

◆ begin()

template<typename T >
iterator py::RecursiveGenerator< T >::begin ( )
inline

◆ end()

template<typename T >
iterator py::RecursiveGenerator< T >::end ( )
inlinenoexcept

◆ operator=() [1/2]

template<typename T >
RecursiveGenerator & py::RecursiveGenerator< T >::operator= ( const RecursiveGenerator< T > &  )
delete

◆ operator=() [2/2]

template<typename T >
RecursiveGenerator & py::RecursiveGenerator< T >::operator= ( RecursiveGenerator< T > &&  other)
inlinenoexcept

◆ swap()

template<typename T >
void py::RecursiveGenerator< T >::swap ( RecursiveGenerator< T > &  other)
inlinenoexcept

Friends And Related Symbol Documentation

◆ promise_type

template<typename T >
friend class promise_type
friend

The documentation for this class was generated from the following file: