I'm implementing a library capable of understanding Godot's RPC requests.
From the RPC request, I have made an array of arguments of arbitrary size. The arguments are all of the same type, Variant. Each Variant contains a type enum and casting overloading to return the proper type, be it an int or a const char*, etc.
Now, I'd like to have the library accept registrations of function points, or std::function instances, etc. The library should be able to unpack this array Variant* to arguments on the registered function.
i.e.
std::function<void(int, float, const char*)> foo;
Variant* args = ...;
size_t numArgs = ...;
/**
* For example,
* if (args[0].type == VAR_INT) {
* int arg_int = (int)args[0];
* }
* would be valid.
*/
foo(args...);
Is there a way to make this possible?
Thanks,
Aucun commentaire:
Enregistrer un commentaire