FE 0.13.1
Header-only C++ frontend library
Loading...
Searching...
No Matches
fe::Worklist< Set, C > Class Template Reference

A worklist that pushes each element at most once. More...

#include <fe/worklist.h>

Inheritance diagram for fe::Worklist< Set, C >:
[legend]

Public Types

using T = typename std::remove_reference_t<Set>::value_type

Public Member Functions

void clear ()
Constructors
 Worklist ()=default
 Worklist (Set set)
 Worklist (std::initializer_list< T > init)
push
bool push (T val)
template<std::ranges::input_range R>
void push (R &&r)
Access
bool empty () const
size_t size () const
T pop ()
Tfront ()
const Tfront () const
Tback ()
const Tback () const
Ttop ()
const Ttop () const

Detailed Description

template<class Set, class C>
class fe::Worklist< Set, C >

A worklist that pushes each element at most once.

Set remembers what has already been pushed and may be a reference to share it with the caller. Use it through the BFSWorklist/DFSWorklist aliases.

Definition at line 19 of file worklist.h.

Member Typedef Documentation

◆ T

template<class Set, class C>
using fe::Worklist< Set, C >::T = typename std::remove_reference_t<Set>::value_type

Definition at line 21 of file worklist.h.

Constructor & Destructor Documentation

◆ Worklist() [1/3]

template<class Set, class C>
fe::Worklist< Set, C >::Worklist ( )
default

◆ Worklist() [2/3]

template<class Set, class C>
fe::Worklist< Set, C >::Worklist ( Set set)
inlineexplicit

Definition at line 27 of file worklist.h.

◆ Worklist() [3/3]

template<class Set, class C>
fe::Worklist< Set, C >::Worklist ( std::initializer_list< T > init)
inline

Definition at line 29 of file worklist.h.

References push().

Member Function Documentation

◆ back() [1/2]

template<class Set, class C>
T & fe::Worklist< Set, C >::back ( )
inline

Definition at line 56 of file worklist.h.

◆ back() [2/2]

template<class Set, class C>
const T & fe::Worklist< Set, C >::back ( ) const
inline

Definition at line 57 of file worklist.h.

◆ clear()

template<class Set, class C>
void fe::Worklist< Set, C >::clear ( )
inline

Definition at line 62 of file worklist.h.

◆ empty()

template<class Set, class C>
bool fe::Worklist< Set, C >::empty ( ) const
inline

Definition at line 50 of file worklist.h.

◆ front() [1/2]

template<class Set, class C>
T & fe::Worklist< Set, C >::front ( )
inline

Definition at line 54 of file worklist.h.

◆ front() [2/2]

template<class Set, class C>
const T & fe::Worklist< Set, C >::front ( ) const
inline

Definition at line 55 of file worklist.h.

◆ pop()

template<class Set, class C>
T fe::Worklist< Set, C >::pop ( )
inline

Definition at line 52 of file worklist.h.

References fe::pop().

◆ push() [1/2]

template<class Set, class C>
template<std::ranges::input_range R>
void fe::Worklist< Set, C >::push ( R && r)
inline

Definition at line 42 of file worklist.h.

References push().

◆ push() [2/2]

template<class Set, class C>
bool fe::Worklist< Set, C >::push ( T val)
inline

Definition at line 34 of file worklist.h.

Referenced by push(), and Worklist().

◆ size()

template<class Set, class C>
size_t fe::Worklist< Set, C >::size ( ) const
inline

Definition at line 51 of file worklist.h.

◆ top() [1/2]

template<class Set, class C>
T & fe::Worklist< Set, C >::top ( )
inline

Definition at line 58 of file worklist.h.

◆ top() [2/2]

template<class Set, class C>
const T & fe::Worklist< Set, C >::top ( ) const
inline

Definition at line 59 of file worklist.h.


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