Skip to content

学习路线

这里是 cp 语言文档的读者入口。文档分成两层:先读导览页建立整体认识,再按需要进入参考页查细节。

推荐顺序

  1. 语法导览,了解 cp 程序的基本形状。
  2. 标准库导览,知道 std 里已经有哪些可用模块。
  3. 对照 示例导览,选择一个主题示例阅读。
  4. 遇到具体规则时进入下面的参考页。

语言语法

  • 类型系统:类型分类、默认初始化、聚合字面量、decltype、返回类型推导、引用和指针规则。
  • 初始化:变量、常量、引用 binding 和初始化表达式。
  • 模块:模块声明、导入、重导出、导出和名字冲突。
  • 流程控制if、循环、标签、break / continuereturn
  • 结构struct / impl、构造、析构、成员函数、关联函数、UFCS、字段访问和块表达式。
  • Enum:强类型整数枚举、作用域 case 和显式底层整数转换。
  • Variant:名义和类型、case 构造、match、默认初始化和 tagged union 布局。
  • 运算符:运算符表、内建运算符和第一版 operator 重载。
  • 类型转换as 显式转换。
  • Lambda 与函数值:函数类型、函数指针、普通函数绑定、lambda、捕获和闭包边界。
  • 泛型:泛型函数、泛型类型、泛型 impl、参数包、template for、约束和实例化。
  • Concept:静态协议、关联类型、默认实现、父 concept 和 impl concept for Type
  • 所有权、借用与移动:默认 copy、显式 ref / movelike const 转发 / move&、特殊成员和能力推导。

标准库

  • 标准库导览:标准库模块分层、导入方式和常见类型。
  • 迭代:range-for 的语言入口、iterator / iterable 协议要求和内建类型入口。
  • 标准库 collectionsvector、有序唯一键 map/set、node 语义和 order-statistics 接口。
  • 标准库 rangesstd.ranges 的范围对象、iota 入口和非重载命名规则。
  • 标准库 fsstd.fs.fileopen_options、同步读写和 runtime 文件 ABI。

底层与互操作

  • 错误处理!panicassert、前置条件和可恢复失败边界。
  • 底层内存分配:裸分配、对象生命周期原语和 runtime ABI。
  • Opaque aliastype A = opaque T 的名义封装、layout 规则和显式转换边界。
  • extern "C":外部 C 函数声明、C 符号名导出和第一版 ABI 边界。