(拓展)C++ 进阶知识¶
约 524 个字 预计阅读时间 2 分钟
本节内容尚未完稿,不是正式版本
本节将讲解 C++ 语言的一些进阶知识,这部分内容虽然不会在校内赛中用到,但对于管理和开发一个具有拓展性和可维护性的大型 C++ 项目是非常有帮助的。通过学习这些内容,你将能够更深入地理解 C++ 的高级特性和最佳实践,也能了解一些编程范式在 C++ 中的体现。
- Cppreference、中文版:C/C++ 的在线参考手册,内容及其全面且更新非常迅速,适合查阅 C/C++ 语言的各种细节与版本特性,可以作为参考书使用
- Boost:C++ 的一个大型开源库,标准库的许多特性都源自 Boost,包含了许多实用的工具和库,适合用来扩展 C++ 的功能
- hackingcpp:一个优秀的现代 C++ 教学网站,包含许多示意图
- Effective modern C++:一本关于 C++ 11/14 的优秀书籍,有中文版
- Learncpp:一个优秀的 C++ 教学网站,内容全面且更新比较迅速,不过只有英文版
本节接下来将首先继续列举 C/C++ 的大致知识框架,你可以按照对应的名称在以上网站中找到对应的章节进行学习。
- C++ 版本
- 语言特性
- auto、decltype (C++11)
- nullptr (C++11)
- 右值引用 (C++11)
- lambda 表达式 (C++11)
- 列表初始化 (C++11)
- 范围 for 循环 (C++11)
- constexpr (C++11)
- 用户定义字面量 (C++11)
- 属性 (C++11)
- noexcept (C++11)
- 尾随返回类型 (C++11)
- 结构化绑定 (C++17)
- constexpr if、带初始化语句的 if (C++17)
- 折叠表达式 (C++17)
- 三路比较运算符 (C++20)
- 模块 (C++20)
- 协程 (C++20)
- 约束与概念 (C++20)
- consteval、constinit (C++20)
- 对象所有权模型
- 值类别
- 移动语义
- std::move、std::forward (C++11)
- 移动构造函数、移动赋值运算符 (C++11)
- RAII(Resource Acquisition Is Initialization)
- 视图(非所有权容器) (C++20)
- std::string_view (C++17)
- std::span (C++20)
TODO: CRTP、pImpl、macro、io、thread、constexpr、template