APP下载

基于C++的反射框架研究与实现

2021-11-05杨树仁张启明孙为康王鸿显

电子技术与软件工程 2021年17期
关键词:特征信息

杨树仁 张启明 孙为康 王鸿显

(中船航海科技有限责任公司 北京市 100071)

1 引言

目前,Java、C#等编程语言具有较为成熟的反射框架,在实践中受到了广泛应用。但是,C++语言本身并不支持这一动态特性。虽然,在C++新标准中增加了许多类型信息提取方式,增强了模板元编程能力,但是整体上还不是一套完整的反射框架。目前已有许多不同实现机理的C++反射框架,如QT、UE4 等,但是与高级语言相比仍存在较大的差距,具有一定的局限性。

因此,本文主要研究目的是基于C++语言建立一个结构简单、功能完备、性能高效的通用型反射框架,尽量涵盖高级编程语言的所有反射功能,为C++反射框架的标准化建设提供理论指导。

2 概述

元数据是描述数据的数据,类型元数据用于描述类型定义信息[2]。本文中将类型定义信息称为类型特征信息,将加工处理后的类型特征信息称为类型元数据。反射框架的主要任务是提取类型特征信息,存入元数据仓库,再通过对元数据的合理使用实现反射功能。

本文设计的反射框架主要包括特征信息提取、类型注册、元数据应用、对象系统四部分。特征信息提取和类型注册是反射框架的基础,元数据应用和对象系统是反射框架的成果,只有提取到更加丰富的类型特征,才能建立功能完备的反射框架。

3 特征信息提取

特征信息包括基础信息、函数信息、属性信息、注解信息、枚举信息、基类信息等,以模板元编程作为主要提取手段,在程序编译阶段提取特征信息,提高运行期效率。……

登录APP查看全文

猜你喜欢

特征信息
如何表达“特征”
不忠诚的四个特征
订阅信息
展会信息
线性代数的应用特征
信息
健康信息
健康信息(九则)
健康信息(十则)