news 2026/6/15 8:36:50

自定义枚举-–-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/6/15 12:35:40

3、云、虚拟化与数据存储网络基础全解析

云、虚拟化与数据存储网络基础全解析 1. 数据存储的重要性与挑战 在当今数字化时代,数据存储的重要性不言而喻。很多人常常认为数据存储理所当然,但实际上却并不真正理解它。当存储空间不足,无法保存文件或照片时,存储问题就会变得令人沮丧,而当急需的文件或文档找不到时…

作者头像 李华
网站建设 2026/6/4 19:39:54

代码不会骗人,但AI会!大模型幻觉的真相与解决方案,小白也能懂

在大模型时代&#xff0c;“幻觉”已经成为所有 AI 产品经理绕不开的话题。它影响模型可靠性、用户信任度&#xff0c;也直接决定产品能否落地。本文将让你在一次阅读中彻底理解幻觉的本质、成因及可落地的解决方案。Transformer 架构工作流程图 &#x1f4cc; 一、什么是 AI 的…

作者头像 李华
网站建设 2026/6/15 12:36:16

Docker Offload的云端协同机制深度解析(资源调度黑科技曝光)

第一章&#xff1a;Docker Offload的云端协同机制深度解析&#xff08;资源调度黑科技曝光&#xff09;在现代边缘计算与云原生融合的背景下&#xff0c;Docker Offload 技术成为实现边缘设备与云端动态资源协同的关键路径。该机制通过智能调度策略&#xff0c;将边缘端高负载任…

作者头像 李华
网站建设 2026/6/14 14:41:06

现在2025年开始学网络安全的真实情况是什么?还好就业吗?

安全现在是大趋势&#xff0c;说是铁饭碗也不为过&#xff0c;就业前景好&#xff0c;方向多比传统计算机行业就业舒服点。但是大厂依然是985&#xff0c;211的天下&#xff0c;是双非能进大厂的&#xff0c;只是凤毛麟角。前提是你的能力可以让公司忽略你的学历。 IT行业一直都…

作者头像 李华
网站建设 2026/6/14 18:07:32

QuickBI报表开发流程详解

一、QuickBI报表开发全流程 核心开发流程 数据准备 → 数据源连接 → 数据集构建 → 数据建模 → 可视化设计 → 仪表板制作 → 发布共享二、详细步骤及示例说明 示例背景 假设我们需要分析某电商公司的销售数据&#xff0c;制作一个销售监控仪表板。 步骤1&#xff1a;数据…

作者头像 李华