C++ – 核心程序库结构

平台库(Platform)

将平台特定的基础功能等统一一个接口,避免代码直接访问平台功能,实现跨平台。

宏定义

构建目标

  • PLATFORM_NAME

包含当前目标平台的名称,如 Windows 或 Linux 等,应由构建工具设置,缺省为 Unknown 。

  • PLATFORM_XXX

XXX 为目标平台的名称(全大写),为当前目标平台时定义为 1 ,反之为 0 。

  • BUILD_TYPE

包含当前目标构建类型的名称,如 Debug 或 Release 等,应由构建工具设置,缺省为 Unknown 。

  • BUILD_XXX

XXX 为目标构建类型的名称(全大写),为当前目标构建类型时定义为 1 ,反之为 0 。

字符串

  • PLATFORM_TCHAR_IS_CHAR16

当平台的 TCHAR 类型是 16位 时定义为 1 ,反之为 0 。

  • TEXT(Str)

TCHAR 字面量字符串包裹。

关键词宏

函数

  • VARARGS
  • CDECL
  • STDCALL
  • FORCEINLINE
  • FORCENOINLINE
  • RESTRICT

对齐

  • GCC_PACK
  • GCC_ALIGN
  • MS_ALIGN

DLL 导入 & 导出

  • DLLEXPORT
  • DLLIMPORT

数据类型

整数类型

  • uint8
  • uint16
  • uint32
  • uint64
  • int8
  • int16
  • int32
  • int64

字符类型

  • ANSICHAR
  • WIDECHAR
  • TCHAR

指针类型

  • uintptr_t
  • intptr_t
  • size_t
  • ssize_t
  • null_t
  • nullptr_t

工具库(Utility)

实现基础的 C++ 语言工具,以支持语言中的一些常见的惯用法。

类型萃取(TypeTraits)

通用工具库(Utility : Forward & Move)


内存库(Memory)

实现与内存操作相关的功能,实现不同的内存分配方案。

对齐(Alignment)

控制(Memory : Memmove & Malloc)

操作(MemoryOps : ConstructItems)


字符串库(String)

包括 C语言风格字符 与 C++字符串类 等,以及其相关操作。


容器库(Container)

容器库是类模板与算法的汇集,允许程序员简单地访问常见数据结构,例如队列、链表和栈。容器管理为其元素分配的存储空间,并提供直接或间接地通过迭代器访问它们的函数。大多数容器拥有至少几个常见的成员函数,并共享功能。


算法库(Algorithm)

算法库提供大量用途的函数(例如查找、排序、计数、操作),它们在元素范围上操作。


数学库(Math)

数学库包含常用数学函数及类型、对随机数生成的支持等。


杂项库(Misc)

一些零碎的不值得单独作为一类的功能被放在这里。

断言(Assertion)

发表评论