我正在为我正在开发的游戏设计一个脚本系统,我正在尝试调用一个函数,例如我知道
#define something(argument) #argument
会将参数转换为字符串,有没有办法以类似的方式将字符串转换为函数?
C 这样做的方法是构建一个字符串和函数指针表。
这通常也在C++中完成,尽管C++其他方法也是可行的:您可以使用 std::map<std::string, /*your function prototypte*/>
甚至 std::map<std::string, std::function>
.
尽管如此,传统的多态解决方案可能就足够了。
(你也可以看看Boost Spirit,这是一个基于EBNF语法构建脚本的优秀工具 www.boost.org。相当参与,但学习曲线非常值得。