#ifndef fk_NATIVEFUNCTION_HPP #define fk_NATIVEFUNCTION_HPP #include "commons.hpp" #include "Constant.hpp" namespace fk { class Module; using native_t = std::function (Loc, Module&, std::vector>)>; class NativeFunction { public: explicit NativeFunction(native_t native); virtual ~NativeFunction(); std::shared_ptr call(Loc const& loc, Module& mod, std::vector> args); private: native_t m_native; }; } #endif