Corium 1.1.0
High-Performance Zero-Heap C++20 MPSC Application Runtime
Loading...
Searching...
No Matches
corium::async::Generator< T, Allocator > Class Template Reference

Zero-heap C++20 pull-based lazy generator sequence with configurable frame allocator. Compatible with range-based for loops and standard C++20 ranges. More...

#include <Generator.hpp>

+ Collaboration diagram for corium::async::Generator< T, Allocator >:

Classes

class  Iterator
 
struct  promise_type
 
class  Sentinel
 

Public Types

using AllocatorType = Allocator
 
using ValueType = T
 

Public Member Functions

Iterator begin ()
 
constexpr Sentinel end () noexcept
 
constexpr Generator () noexcept=default
 
 Generator (const Generator &)=delete
 
 Generator (Generator &&other) noexcept
 
 Generator (std::coroutine_handle< promise_type > handle) noexcept
 
Generatoroperator= (const Generator &)=delete
 
Generatoroperator= (Generator &&other) noexcept
 
 ~Generator ()
 

Detailed Description

template<typename T, typename Allocator = HeapFrameAllocator>
class corium::async::Generator< T, Allocator >

Zero-heap C++20 pull-based lazy generator sequence with configurable frame allocator. Compatible with range-based for loops and standard C++20 ranges.

Template Parameters
TValue type yielded by the generator.
AllocatorFrame allocation policy (HeapFrameAllocator default or StaticFrameAllocator).

Member Typedef Documentation

◆ AllocatorType

template<typename T , typename Allocator = HeapFrameAllocator>
using corium::async::Generator< T, Allocator >::AllocatorType = Allocator

◆ ValueType

template<typename T , typename Allocator = HeapFrameAllocator>
using corium::async::Generator< T, Allocator >::ValueType = T

Constructor & Destructor Documentation

◆ Generator() [1/4]

template<typename T , typename Allocator = HeapFrameAllocator>
constexpr corium::async::Generator< T, Allocator >::Generator ( )
constexprdefaultnoexcept
+ Here is the caller graph for this function:

◆ Generator() [2/4]

template<typename T , typename Allocator = HeapFrameAllocator>
corium::async::Generator< T, Allocator >::Generator ( std::coroutine_handle< promise_type handle)
inlineexplicitnoexcept

◆ ~Generator()

template<typename T , typename Allocator = HeapFrameAllocator>
corium::async::Generator< T, Allocator >::~Generator ( )
inline

◆ Generator() [3/4]

template<typename T , typename Allocator = HeapFrameAllocator>
corium::async::Generator< T, Allocator >::Generator ( const Generator< T, Allocator > &  )
delete

◆ Generator() [4/4]

template<typename T , typename Allocator = HeapFrameAllocator>
corium::async::Generator< T, Allocator >::Generator ( Generator< T, Allocator > &&  other)
inlinenoexcept

Member Function Documentation

◆ begin()

template<typename T , typename Allocator = HeapFrameAllocator>
Iterator corium::async::Generator< T, Allocator >::begin ( )
inline

◆ end()

template<typename T , typename Allocator = HeapFrameAllocator>
constexpr Sentinel corium::async::Generator< T, Allocator >::end ( )
inlineconstexprnoexcept

◆ operator=() [1/2]

template<typename T , typename Allocator = HeapFrameAllocator>
Generator & corium::async::Generator< T, Allocator >::operator= ( const Generator< T, Allocator > &  )
delete

◆ operator=() [2/2]

template<typename T , typename Allocator = HeapFrameAllocator>
Generator & corium::async::Generator< T, Allocator >::operator= ( Generator< T, Allocator > &&  other)
inlinenoexcept

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