【发布时间】:2013-02-08 16:15:03
【问题描述】:
几年前,我使用 luabind 将 C++ 对象绑定到 Lua,反之亦然。有一种方法可以将现有(通过 C++ 代码中的 new 运算符分配)对象绑定到 Lua 并在如下脚本中使用它:
binded_object.property = new_value
现在我正在开发一个新项目,我想在其中添加一些脚本。为了简单起见,不需要任何提升或任何繁重的模板。所以我的问题是如何只使用 Lua C Api 来做到这一点?
不幸的是,我遇到的所有示例都显示了如何将自定义 C++ 类型绑定到 Lua,然后在脚本中创建该类型的新对象,最后将对象返回给 C++。
【问题讨论】:
-
为了简单起见,不需要任何提升或任何繁重的模板。 提升是为了简化事情,你知道吗?我的 Lua API 包装器包含你称之为“重模板”的东西,适合大约 500 个 LoC。
-
我确实意识到它是为了简化事情。我也喜欢 boost 但不适合这个特定的项目。目标不是使用任何依赖项,而是使用 Lua 本身。
-
标准库也是你的依赖吗?
-
真的很重要吗?问题是如何使用没有 boost 或模板的 Lua C Api 来做到这一点。
-
我假设您也不会使用标准库容器(如
vector、set等),因为它们使用模板?我可能会回答你的问题,但要求不明确。