用途:面向生产环境的现代 C++ 开发技能,目标是用 C++11 到 C++23 的标准特性写出更清晰、更安全、更高效的代码。
主要能力:
- 移动语义:值类别(lvalue/rvalue/xvalue)、移动构造与移动赋值、完美转发(std::forward)。
- 智能指针:std::unique_ptr(独占所有权、自定义删除器、数组版本)、std::shared_ptr(make_shared、use_count、weak_ptr 打破循环),并附选择决策树。
- Lambda:从 C++11 基础 lambda 到 C++14 泛型、C++17 constexpr、C++20 模板 lambda,以及值捕获、引用捕获、移动捕获(C++14)、初始化捕获等捕获模式;C++23 的 deducing this。
- 概念(C++20):标准 concepts(integral、floating_point、copyable、invocable)与自定义 concept(requires 表达式)。
- Ranges(C++20):views::filter、transform、take、iota、repeat 等组合式惰性视图,以及 ranges 算法与投影(如按字段排序)。
- 协程(C++20):生成器模式(C++23 std::generator 的斐波那契示例)与异步 task 模式骨架。
- 模块(C++20):export module、import 模块与 import 标准库头单元。
- 工程实践:C++11/14 到 C++17、C++17 到 C++20 的迁移清单,常见编译错误的排查决策树,以及基于 gtest 的单元测试模板。
使用方式:作为技能/插件资料使用,按主题查阅上述示例与决策树;配合支持对应标准的编译器,通过 -std=c++XX 等标准标志启用特性。资料未提供安装命令、依赖或调用接口。
适用场景:需要采用现代 C++ 标准重构或新写 C++ 代码、处理资源所有权、编写泛型库、使用 ranges/协程/模块的项目。
限制:资料以示例与检查清单为主,未说明具体编译器版本、构建系统集成方式、性能数据,也未提供收费与授权信息;部分特性(如 C++23 std::print、flat_map、std::generator)依赖较高标准与库支持,实际可用性需以所用工具链为准。