c++ - Lambda 表达式和脚本解析——这是一个好的设计理念吗?

标签 c++ scripting lambda c++11

我编写了一些基本的 2D 射击游戏,就目前而言,它们运行良好。为了利用我的编程知识,我决定使用一种简单的脚本语言来扩展我的游戏以控制某些对象。目的更多是关于编写脚本解析器/执行器的一般设计过程,而不是随机对象的实际控制。

因此,我目前的想法是使用一个 lambda 表达式容器(可能是一个映射)。当解析器读取每一行时,它将确定表达式的类型。然后,一旦它决定了指令的类型并发现了它必须使用的任何值,它就会打开映射到表达式的类型并将它传递给它需要工作的任何值。

一个或多或少的伪代码示例是这样的:

//We have determined somehow or another that this is an assignment operator
someContainerOfFunctions["assignment"](whatever_variable_we_want);

那么,你们觉得这样的设计怎么样?

最佳答案

不是要劝阻你,但我认为你会从将 Squirrel 或 Lua 之类的东西嵌入到你的项目中并学习使用 API 和语言本身中得到更多。这样做的好处是您将获得良好的性能,而无需考虑实现。

从头开始实现脚本语言(即使是基本语言)是一项艰巨的任务,尤其是当您以前没有做过的时候。

关于c++ - Lambda 表达式和脚本解析——这是一个好的设计理念吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1495778/

相关文章:

c++ - 如何强制用户仅使用 "new"创建派生 self 的类的对象?

c++ - 从文件中读取固定点的固定 double 并转换为长

bash - 在 bash 脚本中区分 2 和 02

c# - 使用 Lambda 表达式堆叠 where 条件

c++ - 在不转换对象的情况下调用子类方法

c++ - 插入到 2-3-4 树中

linux - 编写脚本通过套接字连接缓慢发送数据的最简单方法

macos - 筛选 "bad path"结果为 mdfind

c++ - 使用 lambda 函数定义运算符

c++ - 如何在 C++ 中使用 lambda 作为词法作用域