1#ifndef SXEVAL_AOPERATION_HPP
2#define SXEVAL_AOPERATION_HPP
32 static constexpr const char*
KEY =
"AOperation";
79 std::vector<std::reference_wrapper<T>>
_args;
90 for (
const auto& arg : args) {
91 _args.push_back(arg->getResult());
The AOperation class is an abstract base class for operations in the SXEval library.
Definition AOperation.hpp:22
std::vector< std::reference_wrapper< T > > _args
Definition AOperation.hpp:79
T & getResult() override
Get the result of the operation.
Definition AOperation.hpp:67
static constexpr const int ARITY_MAX
Default maximum number of arguments for the operation.
Definition AOperation.hpp:42
static constexpr const char * KEY
Default key for the operation.
Definition AOperation.hpp:32
static constexpr const int ARITY_MIN
Default minimum number of arguments for the operation.
Definition AOperation.hpp:37
AOperation(const std::vector< IInstruction< T > * > &args)
Constructor that initializes the operation.
Definition AOperation.hpp:89
AOperation(const AOperation &other)
Copy constructor.
Definition AOperation.hpp:54
virtual ~AOperation() override=default
Default destructor.
virtual void execute()=0
Execute the operation.
T _result
Definition AOperation.hpp:78
static constexpr const int UNLIMITED_ARITY
The value for an unlimited number of arguments.
Definition AOperation.hpp:27
The IInstruction class is an interface for any instructions.
Definition IInstruction.hpp:21
Definition AOperation.hpp:8