news 2026/7/23 16:31:25

自定义枚举-–-behaviac

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自定义枚举-–-behaviac

原文

  • 类似于自定义类,在.h文件中,任意编写一个自定义枚举类型,然后通过宏DECLARE_BEHAVIAC_ENUM声明该枚举类型。需要注意的是,宏DECLARE_BEHAVIAC_ENUM必须定义在全局的namespace里,即放在任何命名空间之外。

    如下代码样例所示:

namespaceTNS{namespaceNE{namespaceNAT{enumeColor{RED,GREEN,BLUE,YELLOW,WHITE,};}}}DECLARE_BEHAVIAC_ENUM(TNS::NE::NAT::eColor,eColor);
  • 在.cpp文件中,通过一系列宏注册该枚举自身的描述及其枚举值:
    • 宏BEGIN_ENUM_DESCRIPTION和END_ENUM_DESCRIPTION表示枚举信息注册的开始和结束。

    • 可选的宏ENUMCLASS_DISPLAY_INFO用于注册枚举自身的显示名和描述。

    • 宏DEFINE_ENUM_VALUE用于注册枚举的值,可以通过.DISPLAYNAME的追加方式为值添加显示名,通过.DESC的追加方式为值添加描述。

      如下代码样例所示:

BEGIN_ENUM_DESCRIPTION(TNS::NE::NAT::eColor,eColor){ENUMCLASS_DISPLAY_INFO(L"色彩枚举",L"eColor是用于测试枚举使用的类型");DEFINE_ENUM_VALUE(TNS::NE::NAT::RED,"RED").DISPLAY_INFO(L"红色",L"激进");DEFINE_ENUM_VALUE(TNS::NE::NAT::GREEN,"GREEN");DEFINE_ENUM_VALUE(TNS::NE::NAT::BLUE,"BLUE");DEFINE_ENUM_VALUE(TNS::NE::NAT::YELLOW,"YELLOW");DEFINE_ENUM_VALUE(TNS::NE::NAT::WHITE,"WHITE");}END_ENUM_DESCRIPTION()
  • 在初始化注册(Register)的部分需要加上如下的代码,反注册(UnRegister)的部分添加相应UnRegister的代码。注意这部分Register/UnRegister的代码不是必须的,如果该类型没有用作par或者没有用作条件比较,就可以不需要。
behaviac::TypeRegister::Register<TNS::EnumTest>(" TNS::EnumTest ");behaviac::TypeRegister::UnRegister<TNS::EnumTest>(" TNS::EnumTest ");

更多细节可以参考behaviac组件C++源码库中btunittest工程的UnitTestTypes.h文件中eColor结构体相关的代码。


声明的类型只用被使用过才会导出。所谓使用过是指:

  1. 作为某Agent的成员

  2. 作为某Agent成员函数的参数或返回值

如果只是声明了,但是没有被使用过,则不会被导出。

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

aliexpress 逆向分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;部分python代码n231 cp.call(get231, …

作者头像 李华
网站建设 2026/7/22 0:58:48

腾讯滑块 collect分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;部分python代码pow_cfg data["dat…

作者头像 李华
网站建设 2026/7/22 7:58:12

4、基础设施资源管理:提升云、虚拟和存储网络效率的关键

基础设施资源管理:提升云、虚拟和存储网络效率的关键 1. 数据基础设施管理 在当今数字化时代,信息服务的高效、灵活、可靠且经济的交付至关重要。支持信息服务交付的资源涵盖多个方面: - 硬件 :包括服务器、存储设备、输入/输出与网络连接设备以及桌面设备。 - 软件 …

作者头像 李华
网站建设 2026/7/23 8:26:22

从 Spring Boot 2.x 到 3.5.x + JDK21:一次完整的生产环境迁移实战

升级背景 在私有化部署过程中&#xff0c;客户使用安全扫描工具检测到大量安全漏洞&#xff0c;主要集中在&#xff1a; 框架版本过低&#xff1a;Spring Boot 2.1.6.RELEASE&#xff08;发布于 2019 年&#xff09;JDK 版本过旧&#xff1a;JDK 8&#xff08;缺乏最新安全补…

作者头像 李华
网站建设 2026/7/21 16:09:39

Multi-Agent与LangGraph框架 简介篇

文章目录Multi-Agent系统概述LangGraph框架简介实现Multi-Agent系统的关键方法构建天气查询Agent的步骤输出示例Multi-Agent系统概述 Multi-Agent系统&#xff08;MAS&#xff09;是由多个自主智能体组成的分布式系统&#xff0c;智能体通过协作或竞争完成复杂任务。其核心特点…

作者头像 李华