C ++从包含其名称的char *调用一个函数

时间:2014-11-28 08:41:05

标签: c++

我正在为我正在进行的游戏设计一个脚本系统,我试图调用一个函数,我知道例如

#define something(argument) #argument

会将参数转换为字符串,有没有办法以类似的方式将字符串转换为函数?

1 个答案:

答案 0 :(得分:2)

这样做的方法是建立一个字符串和函数指针表。

这通常也是在C ++中完成的,尽管在C ++中其他方法是可用的:您可以使用std::map<std::string, /*your function prototypte*/>甚至std::map<std::string, std::function>

尽管如此,传统的多态解决方案可能就足够了。

(您还可以查看Boost Spirit,这是一个基于EBNF语法构建脚本的优秀工具.www.boost.org。相当复杂,但学习曲线非常值得。)