怎么读取文本文件,调用对应的C++函数?

我有一些文本test.g,其内容:

a=fun_1(12, "hello")

该本文其实是想调用C++函数,获得返回值。比如上述,fun_1,其实是个C++函数:

string fun_1(int a, string b)

如果,fun_1(12, "hello")的结果是“This is from cpp fun”,那么,我程序读取文本文件,分析后应该得到a="This is from cpp fun",也就是为变量a赋值。

假如,我们已经分析好了,str1 = "fun_1", int a=12, str2="hello",我们可以使用str1,a,str2这三个变量,那么,我们怎么用这三个变量进行函数调用:fun_1(12, "hello")呢?

注意,用户可以自已自行决定这个函数名,也就说,无论什么函数名,C++程序中都要提供一个同名的C++函数供使用。

另外,用户可能有很多这样的函数,比如从fun_1到fun_100。

一种方法是:用一个map<string, void *> ,key存字符串“fun_1”, value存函数指针;为每一个可能被调用的C++函数添加一项到这个map里去。然后实际调用时,检查,如果检测到函数名在该map的key中,则调用相应的value。

有更好的办法?

阅读 2k
1 个回答
新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏