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

2021-11-05 08:04:04杨树仁张启明孙为康王鸿显
电子技术与软件工程 2021年17期
关键词:特征信息

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

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

1 引言

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

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

2 概述

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

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

3 特征信息提取

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

登录APP查看全文

猜你喜欢
特征信息
如何表达“特征”
不忠诚的四个特征
当代陕西(2019年10期)2019-06-03 10:12:04
订阅信息
中华手工(2017年2期)2017-06-06 23:00:31
展会信息
中外会展(2014年4期)2014-11-27 07:46:46
线性代数的应用特征
河南科技(2014年23期)2014-02-27 14:19:15
信息
建筑创作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
健康信息(九则)
祝您健康(1987年2期)1987-12-30 09:52:28
健康信息(十则)
祝您健康(1986年5期)1986-12-30 09:52:22