23template <
class SymbolType = DefaultSymbolType >
25 std::optional < SymbolType > m_symbol;
45 return m_symbol.value ( );
55 return std::move ( m_symbol.value ( ) );
63 return m_symbol <=> other.m_symbol;
67 return m_symbol == other.m_symbol;
71 return m_symbol <=> other;
75 return m_symbol == other;
79 ++ m_symbol.value ( );
85template <
class SymbolType >
87 out <<
"(symbol_or_epsilon ";
Definition: symbol_or_epsilon.hpp:24
const SymbolType & getSymbol() const &
Definition: symbol_or_epsilon.hpp:41
SymbolType && getSymbol() &&
Definition: symbol_or_epsilon.hpp:51
auto operator<=>(const symbol_or_epsilon &other) const
Definition: symbol_or_epsilon.hpp:62
symbol_or_epsilon()=default
symbol_or_epsilon(SymbolType symbol)
Definition: symbol_or_epsilon.hpp:33
symbol_or_epsilon< SymbolType > & operator++()
Definition: symbol_or_epsilon.hpp:78
bool operator==(const symbol_or_epsilon &other) const
Definition: symbol_or_epsilon.hpp:66
bool is_epsilon() const
Definition: symbol_or_epsilon.hpp:58
Basic exception from which all other exceptions are derived.
Definition: CommonException.h:21
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
Definition: Permutation.hpp:18
ext::ostream & operator<<(ext::ostream &out, const common::ranked_symbol< SymbolType > &symbol)
Definition: ranked_symbol.hpp:93
Definition: FordFulkerson.hpp:16