File head.hpp

class IHead
#include <head.hpp>

Defines an interface for all classes that represent the head of a rule.

Subclassed by CompleteHead< ScoreType >, PartialHead< ScoreType >

Public Types

template<typename ScoreType>
using CompleteHeadVisitor = std::function<void(const CompleteHead<ScoreType>&)>

A visitor function for handling objects of the type CompleteHead.

Template Parameters:

ScoreType – The type of the numerical scores that are stored by the head

template<typename ScoreType>
using PartialHeadVisitor = std::function<void(const PartialHead<ScoreType>&)>

A visitor function for handling objects of the type PartialHead.

Template Parameters:

ScoreType – The type of the numerical scores that are stored by the head

Public Functions

inline virtual ~IHead()
virtual void visit(CompleteHeadVisitor<uint8> completeBinaryHeadVisitor, CompleteHeadVisitor<float32> complete32BitHeadVisitor, CompleteHeadVisitor<float64> complete64BitHeadVisitor, PartialHeadVisitor<uint8> partialBinaryHeadVisitor, PartialHeadVisitor<float32> partial32BitHeadVisitor, PartialHeadVisitor<float64> partial64BitHeadVisitor) const = 0

Invokes one of the given visitor functions, depending on which one is able to handle this particular type of head.

Parameters:
  • completeBinaryHeadVisitor – A visitor function for handling objects of the type CompleteHead<uint8>

  • complete32BitHeadVisitor – A visitor function for handling objects of the type CompleteHead<float32>

  • complete64BitHeadVisitor – A visitor function for handling objects of the type CompleteHead<float64>

  • partialBinaryHeadVisitor – A visitor function for handling objects of the type PartialHead<uint8>

  • partial32BitHeadVisitor – A visitor function for handling objects of the type PartialHead<float32>

  • partial64BitHeadVisitor – A visitor function for handling objects of the type PartialHead<float64>