c++ - 将 C++ 数组解包为函数调用的参数
问题描述
我正在实现一个能够理解 Godot 的 RPC 请求的库。
根据 RPC 请求,我创建了一个任意大小的参数数组。参数都是相同的类型,Variant
. 每个都Variant
包含一个type
枚举和强制转换重载以返回正确的类型,无论是 anint
还是 aconst char*
等。
现在,我想让库接受函数点或std::function
实例等的注册。库应该能够将此数组解包Variant*
为已注册函数的参数。
IE
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...);
有没有办法让这成为可能?
解决方案
推荐阅读
- javascript - 如何使用过滤器方法从数组中返回元素?
- python - 即使在 matplotlib 中的 plt.cla() 之后,如何强制 xlim 永久不变
- javascript - 如何在其实例中读取 ES6 类的静态属性?
- excel - 条件格式不更新表中的应用程序区域(列表对象)
- python - 如何有效地创建嵌套循环并附加所有循环的输出(作为多维数组)?
- java - System.getproperty("spring.profiles.active") 总是在 JPA 实体监听器中获取 Null
- angular - 在 prodMode 中更改检测角度
- azure-resource-manager - 将虚拟机加入域
- artifactory - Artifcatory REST API 列出所有存储库
- java - 在另一个表中使用复合外键映射列数据