听起来很奇怪,我需要用C++调用一个函数,我不知道签名.基本上,我想让用户指定参数列表和参数类型,然后尝试使用这些参数调用给定的函数.然后我想知道函数调用是否有效,如果它(奇迹般地)做了,返回值是什么(假设返回类型不是空的).有没有办法实现这一目标?谢谢.
让您的函数获取变量数据类型的列表,例如std::vector<boost::any>让它们返回bool指示成功或在失败时抛出异常.
如果您可以在编译时注册公开的函数,则甚至不必对函数进行限制,而是可以为必要的转换生成粘合代码.
小智 0
听起来并不太奇怪,但你仍然无法在 C++ 中做到这一点。C++ 函数的签名在编译时进行检查。您能做的最好的事情就是将包含函数参数的向量或类似容器传递给函数。即使如此,类型(或者至少是基类型,如果您使用继承)也必须在编译时已知。