Clingo
Loading...
Searching...
No Matches
CppClingo::Util::Record::Base< Rec > Class Template Reference

Record base class to enable keyword argument based record updates. More...

#include <record.hh>

Inheritance diagram for CppClingo::Util::Record::Base< Rec >:
CppClingo::Input::Expression< BdLitAggregate > CppClingo::Input::Expression< BdLitAggregateElement > CppClingo::Input::Expression< BdLitConjunction > CppClingo::Input::Expression< BdLitSimple > CppClingo::Input::Expression< CondLit > CppClingo::Input::Expression< Edge > CppClingo::Input::Expression< HdLitAggregate > CppClingo::Input::Expression< HdLitAggregateElement > CppClingo::Input::Expression< HdLitDisjunction > CppClingo::Input::Expression< HdLitSimple > CppClingo::Input::Expression< LitBool > CppClingo::Input::Expression< LitComparison > CppClingo::Input::Expression< LitSymbolic > CppClingo::Input::Expression< OptimizeElement > CppClingo::Input::Expression< OptimizeTuple > CppClingo::Input::Expression< Projection > CppClingo::Input::Expression< SetAggregate< HasSign > > CppClingo::Input::Expression< SetAggregateElement > CppClingo::Input::Expression< StmComment > CppClingo::Input::Expression< StmConst > CppClingo::Input::Expression< StmDefined > CppClingo::Input::Expression< StmEdge > CppClingo::Input::Expression< StmExternal > CppClingo::Input::Expression< StmHeuristic > CppClingo::Input::Expression< StmInclude > CppClingo::Input::Expression< StmOptimize > CppClingo::Input::Expression< StmParts > CppClingo::Input::Expression< StmProgram > CppClingo::Input::Expression< StmProject > CppClingo::Input::Expression< StmProjectSig > CppClingo::Input::Expression< StmRule > CppClingo::Input::Expression< StmScript > CppClingo::Input::Expression< StmShow > CppClingo::Input::Expression< StmShowNothing > CppClingo::Input::Expression< StmShowSig > CppClingo::Input::Expression< StmTheory > CppClingo::Input::Expression< StmWeakConstraint > CppClingo::Input::Expression< TermSymbol > CppClingo::Input::Expression< TermVariable > CppClingo::Input::Expression< TheoryAtom< HasSign > > CppClingo::Input::Expression< TheoryAtomDefinition > CppClingo::Input::Expression< TheoryElement > CppClingo::Input::Expression< TheoryOpDefinition > CppClingo::Input::Expression< TheoryRGuard > CppClingo::Input::Expression< TheoryRGuardDefinition > CppClingo::Input::Expression< TheoryTermDefinition > CppClingo::Input::Expression< TheoryTermSymbol > CppClingo::Input::Expression< TheoryTermVariable > CppClingo::Input::Expression< UnparsedElement > CppClingo::Input::RecursiveExpression< ArgumentTuple > CppClingo::Input::RecursiveExpression< TermAbs > CppClingo::Input::RecursiveExpression< TermBinary > CppClingo::Input::RecursiveExpression< TermFunction > CppClingo::Input::RecursiveExpression< TermTuple > CppClingo::Input::RecursiveExpression< TermUnary > CppClingo::Input::RecursiveExpression< TheoryTermFunction > CppClingo::Input::RecursiveExpression< TheoryTermTuple > CppClingo::Input::RecursiveExpression< TheoryTermUnparsed >

Public Member Functions

template<auto tag>
auto get_value () const -> decltype(auto)
 Get the attribute with the given tag.
 
template<class... Args>
requires ValidArguments<Rec, Args...>
auto update (Args &&...args) const
 See update_record().
 
template<class... Args>
requires ValidArguments<Rec, Args...>
auto rewrite (Args &&...args) const
 See rewrite_record().
 
auto equal (Base const &other) const -> bool
 Equality compare to records.
 
auto compare (Base const &other) const -> std::strong_ordering
 Compare to records.
 
auto hash () const -> size_t
 Compute the hash of the record.
 

Detailed Description

template<class Rec>
class CppClingo::Util::Record::Base< Rec >

Record base class to enable keyword argument based record updates.

Also generates convenient functions and enables meta programming involving the named attributes of the record.


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