news 2026/3/8 6:46:13

类、结构体或枚举的数组-–-behaviac

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
类、结构体或枚举的数组-–-behaviac

原文

对于C#版,类型信息不支持[]类型的数组,只支持List<***>类型的数组。

对于C++版,需要按照如下方式进行注册:

基本类型(bool、int、float、char、sbyte、ubyte等)的数组可以直接使用,但当使用到其他自定义类型数组的时候,需要添加特殊的宏和代码,否则运行时可能会有错误(如果没有使用到相应的操作,则没有错误):

  • 在.h的头文件里添加如下所示的宏,但需放在任意namespace之外:
BEHAVIAC_DECLARE_TYPE_VECTOR_HANDLER(TNS::ST::PER::WRK::kEmployee);
  • 在初始化的代码里添加如下所示的注册代码:
behaviac::TypeRegister::Register<TNS::ST::PER::WRK::kEmployee>(" TNS::ST::PER::WRK::kEmployee");
  • 在结束代码里添加如下所示的反注册代码:
behaviac::TypeRegister::UnRegister<TNS::ST::PER::WRK::kEmployee>(" TNS::ST::PER::WRK::kEmployee");

更多细节可以参考behaviac组件C++源码中附带的UnitTestTypes.h文件中的结构体kEmployee。

  • Agent及其子类的数组

    当涉及behaviac::Agent或是其子类的时候,仅支持其指针类型即behaviac::Agent*SubclassAgent*SubclassAgentbehaviac::Agent的一个子类)。

    behaviac::Agent*vector<behaviac::Agent*>类型直接被支持,不需要做什么额外的工作,其任何子类SubclassAgent*也直接被支持。

    但是需要支持vector<SubclassAgent*>的时候,则需要在.h文件里添加如下所示的宏,但需放在任意namespace之外:

BEHAVIAC_DECLARE_TYPE_VECTOR_HANDLER(SubclassAgent*);

在初始化和结束的时候分别注册和反注册:

behaviac::Agent::Register<SubclassAgent>();behaviac::Agent::UnRegister<SubclassAgent>();

更多细节可以参考behaviac组件C++源码中附带的EmployeeParTestAgent.h文件中的类EmployeeParTestAgent。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/6 5:54:58

镜正理念:从字母“pq”与“bd”看唯悟主义的超越

镜正理念&#xff1a;从字母“pq”与“bd”看唯悟主义的超越在当代中国汉语哲学家颜廷利教授的《升命学说》体系中&#xff0c;一组看似简单的字母组合“pq”与“bd”被赋予了深邃的哲学意涵。这些字母不仅是语言符号&#xff0c;更是通往人类精神世界的隐喻入口&#xff0c;构…

作者头像 李华
网站建设 2026/3/7 11:29:31

iOS 项目中常被忽略的 Bundle ID 管理问题

在 iOS 开发与上架流程中&#xff0c;Bundle ID 往往被当作一个“填一次就结束”的配置项。然而在实际工程中&#xff0c;绝大多数签名问题、构建失败、上架阻断&#xff0c;最终都可以追溯到 Bundle ID 管理混乱。 尤其在多应用并行、跨端项目、多人协作和 CI 自动化场景下&am…

作者头像 李华
网站建设 2026/3/7 22:54:38

企业数据API对接技术选型指南:如何评估与选择技术服务厂商

在数字化转型浪潮席卷全球的今天&#xff0c;数据已成为企业的核心资产。然而&#xff0c;许多企业在实践中面临一个根本性困境&#xff1a;业务系统林立&#xff0c;数据孤岛现象严重&#xff0c;大量有价值的数据沉睡在数据库、日志文件、传感器和第三方API中&#xff0c;无法…

作者头像 李华
网站建设 2026/3/4 2:17:30

HuggingFace自定义模型接入Anything-LLM指南

HuggingFace自定义模型接入Anything-LLM指南 在金融、法律和医疗等行业&#xff0c;知识的准确性和数据的安全性往往比模型的“聪明程度”更重要。你可能已经试过用ChatGPT读合同、查病历或解析财报——结果呢&#xff1f;它要么答非所问&#xff0c;要么把敏感信息传到了云端。…

作者头像 李华
网站建设 2026/3/4 18:55:45

拼接符“II”在Oracle和HGDB中使用的差异

文章目录环境症状问题原因解决方案环境 系统平台&#xff1a;Microsoft Windows (64-bit) 10 版本&#xff1a;5.6.4 症状 如下情况所示&#xff1a;在Oracle中和HGDB中使用拼接符“||”结果不一致。 Oracle&#xff1a; SQL> select null||123 from dual ;NUL -------…

作者头像 李华