🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
EnumDescriptor.hpp 文件参考
#include "AstGlobal.h"
#include "AstUtil/Span.hpp"
#include <string>
#include <vector>
#include <utility>

浏览该文件的源代码.

类

class  ast::EnumDescriptorData
 
class  ast::EnumDescriptor< EnumType >
 

命名空间

namespace  ast
 

宏定义

#define AST_ENUM_VALUE(Enumerator, Name)
 
#define AST_ENUM_DESCRIPTOR(EnumType, ...)
 

函数

template<typename EnumType >
EnumDescriptor< EnumType > & ast::aEnumDescriptor ()
 

详细描述



作者
axel
日期
2026-10-08

SpaceAST项目(https://github.com/space-ast/ast) 本软件基于 Apache 2.0 开源许可证分发。 您可在遵守许可证条款的前提下使用、修改和分发本软件。 许可证全文请见:

http://www.apache.org/licenses/LICENSE-2.0

重要须知: 软件按"现有状态"提供,无任何明示或暗示的担保条件。 除非法律要求或书面同意,作者与贡献者不承担任何责任。 使用本软件所产生的风险,需由您自行承担。

宏定义说明

◆ AST_ENUM_DESCRIPTOR

#define AST_ENUM_DESCRIPTOR ( EnumType,
... )
值:
template<> \
EnumDescriptor<EnumType>& aEnumDescriptor<EnumType>() \
{ \
using _EnumType = EnumType; \
static_assert(sizeof(EnumType) <= sizeof(EnumDescriptorData::NumberType), "size of " #EnumType " must be less than or equal to size of EnumDescriptorData::NumberType"); \
static std::pair<EnumDescriptorData::NumberType, char*> _values[] = {__VA_ARGS__}; \
static EnumDescriptor<EnumType> descriptor{_values}; \
return descriptor; \
}

定义枚举描述符,即 aEnumDescriptor<EnumType>() 的特化

参数
EnumType枚举类型
...枚举项列表,每一项由 AST_ENUM_VALUE() 给出

◆ AST_ENUM_VALUE

#define AST_ENUM_VALUE ( Enumerator,
Name )
值:
{static_cast<EnumDescriptorData::NumberType>(_EnumType::Enumerator), const_cast<char*>(Name)}

定义一个枚举项(枚举值 + 名称)

仅用于 AST_ENUM_DESCRIPTOR() 的枚举项列表中

参数
Enumerator枚举项名称(不带枚举类型限定符)
Name枚举项的名称字符串