12 template<
typename T=void,
typename... args>
26 template<
typename VirtualMachineState_t>
27 Primitive(
Op o,
typename VirtualMachineState_t::FT* _f) : f((void*)_f), op(o) {
35 template<
typename VirtualMachineState_t>
36 Primitive(
Op o,
void(*_f)(VirtualMachineState_t*,
int)) : op(o) {
37 f = (
void*)(
new typename VirtualMachineState_t::FT(_f));
42 template<
typename VirtualMachineState_t>
43 void call(VirtualMachineState_t* vms,
int arg) {
44 auto myf =
reinterpret_cast<typename VirtualMachineState_t::FT*
>(
f);
Definition: Primitive.h:13
void * f
Definition: Primitive.h:16
Definition: Instruction.h:20
f here is a point to a void(VirtualMachineState_t* vms, int arg), where arg is just a supplemental ar...
Primitive(Op o, void(*_f)(VirtualMachineState_t *, int))
This constructor takes an ordinary function pointer and converts it.
Definition: Primitive.h:36
Instruction makeInstruction(int arg=0)
Definition: Primitive.h:48
Primitive(const Primitive< T, args... > &other)=delete
void call(VirtualMachineState_t *vms, int arg)
Definition: Primitive.h:43
Op op
Definition: Primitive.h:15
Primitive(Op o, typename VirtualMachineState_t::FT *_f)
Constructor here assumes the std::function type.
Definition: Primitive.h:27