Skip to content

Latest commit

 

History

History
49 lines (38 loc) · 4.3 KB

File metadata and controls

49 lines (38 loc) · 4.3 KB

项目简介

  1. 提供高价值的C++模板元编程基础支持组件,核心功能仅依赖C++03编译器,无需任何标准库或第三方库。
  2. 为应用开发者提供基础系统组件(线程、同步、通讯等),简化跨平台开发。

本库最初在C++03(VS2008)+WinCE环境下开发,所有模板代码无需C++11及以上标准支持。

  • 使用 MiniMPL::ParamPackage 实现可变模板参数
  • 使用 MiniMPL::CGetType::xxx 实现多输入类型推导(类似C++11 decltype)

目前已逐步转向C++11及以上标准,因其提供了更简洁和强大的语言特性(但C++03下的可变模板和类型推导依然可用)。

MiniMPL

本库为大型C++项目提供高效、灵活的模板元编程工具集。 [核心组件] 2009年4月(C++11诞生前)项目驱动开发,在VS2008(C++03)+WinCE环境下实现,无任何标准库和三方库依赖,提供高价值的模板元编程工具集:

自C++11后,增加了少量基于C++11的新特性,主要用于简化代码、提升性能和可读性。 可通过VS运行 UT_MiniMPL 检查用法和示例。

OsBase

提供基于OS的跨平台运行时功能(OsBase),实现部分基础功能的C++封装。

  • 提供线程、同步、异步、网络、串口等基础系统封装
  • 常用OS工具(如Windows注册表工具)
  • 可通过VS运行 UT_OsBase 检查用法和示例

crtp_trait_bind

  • 利用CRTP演示用C++替换MLIR tabgen的可行性 (1_base_crtp.hpp)
  • 利用CRTP+trait bind演示用户非侵入式增强外部平台框架功能 (2_enhanced_crtp_trait_bind.hpp)
  • 利用value-type trait方法将复杂长符号转为短符号,解决大型模板项目(如mlir)符号膨胀问题 (3_symbol_bloat_optimize.hpp)
  • 为MLIR等大规模模板项目提供符号优化和扩展性支持

兼容性说明:本库已逐步转向C++11及以上标准,部分新特性仅在C++11及以上可用。

贡献与开源:欢迎提交issue和PR,详见CONTRIBUTING.mdLICENSE

详细用法和示例请参考各子目录README和源码注释。