SXEval 1.0.3
A generic s-expression interpreter library.
Loading...
Searching...
No Matches
sxeval::IInstruction< T > Class Template Referenceabstract

The IInstruction class is an interface for any instructions. More...

#include <IInstruction.hpp>

Inheritance diagram for sxeval::IInstruction< T >:
sxeval::AOperation< T > sxeval::IOperand< T > sxeval::operations::AbsoluteValue< T > sxeval::operations::Addition< T > sxeval::operations::ArcCosh< T > sxeval::operations::ArcCosine< T > sxeval::operations::ArcSine< T > sxeval::operations::ArcSinh< T > sxeval::operations::ArcTangent< T > sxeval::operations::ArcTangent2< T > sxeval::operations::ArcTanh< T > sxeval::operations::Average< T > sxeval::operations::Ceiling< T > sxeval::operations::Cosh< T > sxeval::operations::Cosine< T > sxeval::operations::DegreesToGradians< T > sxeval::operations::DegreesToRadians< T > sxeval::operations::Division< T > sxeval::operations::Equal< T > sxeval::operations::Exp< T > sxeval::operations::Expm1< T > sxeval::operations::Exponentiation< T > sxeval::operations::Floor< T > sxeval::operations::GradiansToDegrees< T > sxeval::operations::Greater< T > sxeval::operations::GreaterOrEqual< T > sxeval::operations::Hypotenuse< T > sxeval::operations::Less< T > sxeval::operations::LessOrEqual< T > sxeval::operations::Logarithm< T > sxeval::operations::Logarithm10< T > sxeval::operations::Logarithm1p< T > sxeval::operations::Logarithm2< T > sxeval::operations::LogarithmB< T > sxeval::operations::LogicalAnd< T > sxeval::operations::LogicalNand< T > sxeval::operations::LogicalNor< T > sxeval::operations::LogicalNot< T > sxeval::operations::LogicalOr< T > sxeval::operations::LogicalXnor< T > sxeval::operations::LogicalXor< T > sxeval::operations::Maximum< T > sxeval::operations::Minimum< T > sxeval::operations::Modulo< T > sxeval::operations::Multiplication< T > sxeval::operations::NaturalLogarithm< T > sxeval::operations::NotEqual< T > sxeval::operations::RadiansToDegrees< T > sxeval::operations::Round< T > sxeval::operations::Sine< T > sxeval::operations::Sinh< T > sxeval::operations::SquareRoot< T > sxeval::operations::Subtraction< T > sxeval::operations::Tangent< T > sxeval::operations::Tanh< T > sxeval::operations::Truncate< T > sxeval::EncapsulatedVariable< T > sxeval::Value< T > sxeval::Variable< T >

Public Member Functions

virtual ~IInstruction ()=default
 Default destructor.
 
virtual TgetResult ()=0
 Get a reference to the result of the instruction.
 
virtual std::string toString () const =0
 String representation of the instruction.
 

Detailed Description

template<typename T>
class sxeval::IInstruction< T >

The IInstruction class is an interface for any instructions.

It represents an instruction that can be executed and has a result.

Template Parameters
TThe type of values handled by the SXEval library. The supported types are int, signed char, short int, long int, unsigned int, unsigned char, unsigned long int, float, double and long double.

Constructor & Destructor Documentation

◆ ~IInstruction()

template<typename T >
virtual sxeval::IInstruction< T >::~IInstruction ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ getResult()

template<typename T >
virtual T & sxeval::IInstruction< T >::getResult ( )
pure virtual

Get a reference to the result of the instruction.

Returns
A reference result of the instruction.

Implemented in sxeval::AOperation< T >, sxeval::EncapsulatedVariable< T >, sxeval::Value< T >, and sxeval::Variable< T >.

◆ toString()

template<typename T >
virtual std::string sxeval::IInstruction< T >::toString ( ) const
pure virtual

String representation of the instruction.

Returns
A string representation of the instruction.

Implemented in sxeval::EncapsulatedVariable< T >, sxeval::operations::AbsoluteValue< T >, sxeval::operations::Addition< T >, sxeval::operations::ArcCosh< T >, sxeval::operations::ArcCosine< T >, sxeval::operations::ArcSine< T >, sxeval::operations::ArcSinh< T >, sxeval::operations::ArcTangent< T >, sxeval::operations::ArcTangent2< T >, sxeval::operations::ArcTanh< T >, sxeval::operations::Average< T >, sxeval::operations::Ceiling< T >, sxeval::operations::Cosh< T >, sxeval::operations::Cosine< T >, sxeval::operations::DegreesToGradians< T >, sxeval::operations::DegreesToRadians< T >, sxeval::operations::Division< T >, sxeval::operations::Equal< T >, sxeval::operations::Exp< T >, sxeval::operations::Expm1< T >, sxeval::operations::Exponentiation< T >, sxeval::operations::Floor< T >, sxeval::operations::GradiansToDegrees< T >, sxeval::operations::Greater< T >, sxeval::operations::GreaterOrEqual< T >, sxeval::operations::Hypotenuse< T >, sxeval::operations::Less< T >, sxeval::operations::LessOrEqual< T >, sxeval::operations::Logarithm< T >, sxeval::operations::Logarithm10< T >, sxeval::operations::Logarithm1p< T >, sxeval::operations::Logarithm2< T >, sxeval::operations::LogarithmB< T >, sxeval::operations::LogicalAnd< T >, sxeval::operations::LogicalNand< T >, sxeval::operations::LogicalNor< T >, sxeval::operations::LogicalNot< T >, sxeval::operations::LogicalOr< T >, sxeval::operations::LogicalXnor< T >, sxeval::operations::LogicalXor< T >, sxeval::operations::Maximum< T >, sxeval::operations::Minimum< T >, sxeval::operations::Modulo< T >, sxeval::operations::Multiplication< T >, sxeval::operations::NaturalLogarithm< T >, sxeval::operations::NotEqual< T >, sxeval::operations::RadiansToDegrees< T >, sxeval::operations::Round< T >, sxeval::operations::Sine< T >, sxeval::operations::Sinh< T >, sxeval::operations::SquareRoot< T >, sxeval::operations::Subtraction< T >, sxeval::operations::Tangent< T >, sxeval::operations::Tanh< T >, sxeval::operations::Truncate< T >, sxeval::Value< T >, and sxeval::Variable< T >.


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