示例#1
0
	virtual void call(context &ctx, int argc, sqlite3_value **argv) override {
		if (argc != NArgs) {
			ctx.result_error_misuse();
		}
		else {
			ctx.result<R>(apply_value_array<NArgs, R>(fun, argv));
		}
	}
	void step_call(context &ctx, int argc, sqlite3_value **values) {
		if (argc != NArgs) {
			ctx.result_error_misuse();
			return;
		}
		invocation_data *as = get_state_create(ctx);
		apply_value_array<NArgs, void>(stepfun, values, as->state);
		//std::vector<value> vs(values, values+nargs);
	}
示例#3
0
	void step_call(context &ctx, int nargs, sqlite3_value **values) override {
		if (nargs != NArgs) {
			ctx.result_error_misuse();
			return;
		}
		invocation_data *as = get_state_create(ctx);
		apply_value_array<NArgs, void>([this,&as](Ps... ps){ stepfun(as->state, std::forward<Ps>(ps)...); }, values);
		//std::vector<value> vs(values, values+nargs);
	}