|
GEGELATI
|
Template instruction for simplifying the creation of an Instruction from a c++ lambda function. More...
#include <lambdaInstruction.h>
Public Member Functions | |
| LambdaInstruction (std::function< double(First, Rest...)> function, const std::string &printTemplate="") | |
| Constructor of the class LambdaInstruction to create a printable Instruction. | |
| LambdaInstruction ()=delete | |
| delete the default constructor. | |
| virtual bool | checkOperandTypes (const std::vector< Data::UntypedSharedPtr > &arguments) const override |
| Inherited from Instruction. | |
| virtual double | execute (const std::vector< Data::UntypedSharedPtr > &args) const override |
| Inherited from Instruction. | |
Public Member Functions inherited from Instructions::Instruction | |
| virtual bool | isPrintable () const |
| function saying if an Instruction can be printed in a C file during the code gen. | |
| virtual const std::string & | getPrintTemplate () const |
| This function return the printTemplate of the line of code used to represent the instruction. | |
| virtual std::string | getPrintablePrimitiveOperandType (const uint64_t &opIdx) const |
| Retrieve the primitive data type of the operand. | |
| virtual | ~Instruction ()=default |
| Default virtual destructor for polyphormism. | |
| const std::vector< std::reference_wrapper< const std::type_info > > & | getOperandTypes () const |
| Get the list of operand types needed by the Instruction. | |
| unsigned int | getNbOperands () const |
| Get the number of operands required to execute the Instruction. | |
Protected Attributes | |
| const std::function< double(const First, const Rest...)> | func |
| Function executed for this Instruction. | |
Protected Attributes inherited from Instructions::Instruction | |
| std::string | printTemplate |
| std::vector< std::reference_wrapper< const std::type_info > > | operandTypes |
| List of the types of the operands needed to execute the instruction. | |
Additional Inherited Members | |
Protected Member Functions inherited from Instructions::Instruction | |
| Instruction (std::string printTemplate) | |
| Protected constructor to force the class abstract nature. | |
Template instruction for simplifying the creation of an Instruction from a c++ lambda function.
Template parameters First and Rest can be any primitive type, class or const c-style 1D and 2D array.
Each template parameter corresponds to an argument of the function given to the LambdaInstruction constructor, specifying its type.
|
inline |
Constructor of the class LambdaInstruction to create a printable Instruction.
| [in] | printTemplate | std::string use at the generation. Check Instructions::Instruction for more details. |
| [in] | function | the c++ std::function that will be executed for this Instruction. Check the constructor with only the function as parameter for more details. |
|
inlineoverridevirtual |
Inherited from Instruction.
Reimplemented from Instructions::Instruction.
|
inlineoverridevirtual |
Inherited from Instruction.
Implements Instructions::Instruction.