gpt4 book ai didi

类似sql语法的C++对象过滤引擎

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:30 25 4
gpt4 key购买 nike

是否有一个 c++ 库提供类似 SQL 的语法来根据它们的 Getters/Properties 过滤/查询特定对象?我正在寻找与此类似的东西 http://www.thomasfrank.se/sqlike.html (那是针对 JS/AS 的)但是用 C++ 编写的。要求是跨平台的、轻量级的,并且(不是必须的,但)希望不使用 boost。

例如我已经为我的 C++ 代码实现了一个脚本引擎——我的脚本可以向我的 C++ 对象添加回调。现在,我不想为每个对象( Actor )编写脚本,而是想根据过滤器将其应用于所有对象。

所以在我的脚本中我会有类似的东西

manager:AddListener("select name="SomeName" and age > 10 or weight < 10",SomeEvent,MyScriptFunc)

创建新对象时,我会查看所有监听器 - 如果此对象属性与配置的属性匹配,我会添加它(例如,对象具有属性名称=某个名称且年龄大于 10 岁)

目前我只是通过唯一标识符 (ID) 来标识我的对象 - 但我希望在将相同的事件监听器应用于类似的对象时更加灵活。

所以基本上,如果有一个库可以根据一些字符串查询创建过滤器对象就足够了。

最佳答案

你可以试试SQLite :

SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.

您可以创建一个内存数据库来保存您希望查询的 C++ 对象属性:

sqlite3_open(":memory:", &db);

然后你可以使用One-Step Query Execution Interface实际执行查询。

要填充数据库,您可以使用 IDL 来描述您的对象,您的 IDL 解析器将创建 C++ 接口(interface)头文件和代码来填充数据库。

关于类似sql语法的C++对象过滤引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11384677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com