按使用场景¶
语言与对象模型¶
语法¶
- auto 与 decltype:C++11,难度 2/5,3 条证据
- = default 与 = delete:C++11,难度 2/5,3 条证据
- 强类型枚举(enum class):C++11,难度 2/5,3 条证据
- lambda 表达式:C++11,难度 3/5,3 条证据
- nullptr:C++11,难度 1/5,3 条证据
- 范围 for 循环:C++11,难度 2/5,3 条证据
- if 与 switch 的初始化语句:C++17,难度 1/5,3 条证据
- 结构化绑定:C++17,难度 2/5,3 条证据
初始化¶
- std::initializer_list:C++11,难度 2/5,3 条证据
- consteval 与 constinit:C++20,难度 3/5,3 条证据
- 指定初始化(designated initializers):C++20,难度 2/5,3 条证据
对象模型¶
控制流¶
- if 与 switch 的初始化语句:C++17,难度 1/5,3 条证据
- 协程:C++20,难度 5/5,3 条证据
面向对象¶
- = default 与 = delete:C++11,难度 2/5,3 条证据
- override 与 final:C++11,难度 2/5,3 条证据
语言机制¶
- noexcept 异常说明:C++11,难度 3/5,3 条证据
- 标准属性:C++17,难度 2/5,3 条证据
- 内联变量:C++17,难度 2/5,3 条证据
比较¶
- 三路比较运算符 <=>:C++20,难度 3/5,3 条证据
类型系统¶
类型系统¶
- auto 与 decltype:C++11,难度 2/5,3 条证据
- 强类型枚举(enum class):C++11,难度 2/5,3 条证据
- nullptr:C++11,难度 1/5,3 条证据
- override 与 final:C++11,难度 2/5,3 条证据
- static_assert:C++11,难度 2/5,3 条证据
- 类型特征(type_traits):C++11,难度 3/5,3 条证据
- std::variant:C++17,难度 3/5,3 条证据
类型安全¶
- std::byte:C++17,难度 2/5,3 条证据
- std::variant:C++17,难度 3/5,3 条证据
- std::expected:C++23,难度 3/5,3 条证据
类型转换¶
- std::bit_cast:C++20,难度 3/5,3 条证据
类型擦除¶
- std::function:C++11,难度 2/5,3 条证据
- std::any:C++17,难度 2/5,3 条证据
类型工具¶
- 别名模板(alias templates):C++11,难度 3/5,3 条证据
- std::tuple:C++11,难度 2/5,3 条证据
- 类型特征(type_traits):C++11,难度 3/5,3 条证据
- std::remove_cvref 与 std::type_identity:C++20,难度 2/5,3 条证据
类型推导¶
- 类模板实参推导(CTAD):C++17,难度 2/5,3 条证据
值语义¶
- std::array:C++11,难度 1/5,3 条证据
- std::tuple:C++11,难度 2/5,3 条证据
- std::optional:C++17,难度 3/5,3 条证据
- std::variant:C++17,难度 3/5,3 条证据
所有权¶
- std::shared_ptr 与 std::weak_ptr:C++11,难度 3/5,3 条证据
- std::unique_ptr:C++11,难度 2/5,3 条证据
- std::make_unique:C++14,难度 2/5,3 条证据
模板与泛型¶
模板¶
- 别名模板(alias templates):C++11,难度 3/5,3 条证据
- 可变参数模板:C++11,难度 4/5,3 条证据
- 泛型 lambda:C++14,难度 3/5,3 条证据
- std::integer_sequence:C++14,难度 3/5,3 条证据
- 变量模板:C++14,难度 2/5,3 条证据
- 类模板实参推导(CTAD):C++17,难度 2/5,3 条证据
- 折叠表达式:C++17,难度 3/5,3 条证据
- 缩写函数模板(abbreviated function templates):C++20,难度 2/5,3 条证据
- requires 表达式:C++20,难度 3/5,3 条证据
- 模板 lambda(template lambda):C++20,难度 3/5,3 条证据
泛型编程¶
- 类型特征(type_traits):C++11,难度 3/5,3 条证据
- 可变参数模板:C++11,难度 4/5,3 条证据
- if constexpr:C++17,难度 3/5,3 条证据
- std::invoke 与 std::apply:C++17,难度 3/5,3 条证据
- 结构化绑定:C++17,难度 2/5,3 条证据
- 缩写函数模板(abbreviated function templates):C++20,难度 2/5,3 条证据
- concepts 与 requires:C++20,难度 4/5,3 条证据
概念¶
- concepts 与 requires:C++20,难度 4/5,3 条证据
- requires 表达式:C++20,难度 3/5,3 条证据
元编程¶
- std::remove_cvref 与 std::type_identity:C++20,难度 2/5,3 条证据
可变参数¶
- std::integer_sequence:C++14,难度 3/5,3 条证据
- 折叠表达式:C++17,难度 3/5,3 条证据
编译期计算¶
编译期计算¶
- constexpr:C++11,难度 3/5,3 条证据
- static_assert:C++11,难度 2/5,3 条证据
- std::integer_sequence:C++14,难度 3/5,3 条证据
- 变量模板:C++14,难度 2/5,3 条证据
- constexpr lambda:C++17,难度 2/5,3 条证据
- 折叠表达式:C++17,难度 3/5,3 条证据
- if constexpr:C++17,难度 3/5,3 条证据
- consteval 与 constinit:C++20,难度 3/5,3 条证据
- constexpr 中的动态分配:C++20,难度 4/5,3 条证据
并发¶
并发¶
- std::atomic:C++11,难度 3/5,3 条证据
- std::condition_variable:C++11,难度 3/5,3 条证据
- std::thread:C++11,难度 2/5,3 条证据
- 并行算法与执行策略:C++17,难度 3/5,3 条证据
- std::scoped_lock:C++17,难度 3/5,3 条证据
- std::shared_mutex:C++17,难度 3/5,3 条证据
- std::atomic_ref:C++20,难度 4/5,3 条证据
- 协程:C++20,难度 5/5,3 条证据
- std::jthread 与停止令牌:C++20,难度 3/5,2 条证据
- 闩锁、屏障与计数信号量:C++20,难度 3/5,4 条证据
线程同步¶
- std::condition_variable:C++11,难度 3/5,3 条证据
- std::scoped_lock:C++17,难度 3/5,3 条证据
- std::shared_mutex:C++17,难度 3/5,3 条证据
- 闩锁、屏障与计数信号量:C++20,难度 3/5,4 条证据
原子操作¶
- std::atomic:C++11,难度 3/5,3 条证据
- std::atomic_ref:C++20,难度 4/5,3 条证据
异步¶
- 协程:C++20,难度 5/5,3 条证据
内存与资源¶
内存管理¶
- std::shared_ptr 与 std::weak_ptr:C++11,难度 3/5,3 条证据
- std::unique_ptr:C++11,难度 2/5,3 条证据
- std::make_unique:C++14,难度 2/5,3 条证据
- std::byte:C++17,难度 2/5,3 条证据
- 多态内存资源(std::pmr):C++17,难度 4/5,3 条证据
- constexpr 中的动态分配:C++20,难度 4/5,3 条证据
- std::span:C++20,难度 3/5,3 条证据
RAII¶
- std::scoped_lock:C++17,难度 3/5,3 条证据
视图¶
- std::string_view:C++17,难度 3/5,3 条证据
- std::span:C++20,难度 3/5,3 条证据
标准库¶
容器¶
- std::array:C++11,难度 1/5,3 条证据
- 范围 for 循环:C++11,难度 2/5,3 条证据
- std::unordered_map:C++11,难度 2/5,3 条证据
- std::any:C++17,难度 2/5,3 条证据
- 多态内存资源(std::pmr):C++17,难度 4/5,3 条证据
- 字符串与范围小工具:C++20,难度 2/5,3 条证据
字符串¶
- std::string_view:C++17,难度 3/5,3 条证据
- std::format:C++20,难度 2/5,3 条证据
- 字符串与范围小工具:C++20,难度 2/5,3 条证据
算法¶
- 并行算法与执行策略:C++17,难度 3/5,3 条证据
范围¶
- ranges 与 views:C++20,难度 4/5,3 条证据
格式化¶
- std::format:C++20,难度 2/5,3 条证据
- std::print / std::println:C++23,难度 2/5,2 条证据
I/O¶
- std::print / std::println:C++23,难度 2/5,2 条证据
文件系统¶
- std::filesystem:C++17,难度 3/5,3 条证据
函数式¶
- std::function:C++11,难度 2/5,3 条证据
- lambda 表达式:C++11,难度 3/5,3 条证据
- 泛型 lambda:C++14,难度 3/5,3 条证据
- constexpr lambda:C++17,难度 2/5,3 条证据
- std::invoke 与 std::apply:C++17,难度 3/5,3 条证据
- 模板 lambda(template lambda):C++20,难度 3/5,3 条证据
错误处理¶
- noexcept 异常说明:C++11,难度 3/5,3 条证据
- std::optional:C++17,难度 3/5,3 条证据
- std::expected:C++23,难度 3/5,3 条证据
诊断¶
- 标准属性:C++17,难度 2/5,3 条证据
- std::source_location:C++20,难度 2/5,3 条证据
模块¶
- 模块(modules):C++20,难度 4/5,3 条证据
性能¶
- std::chrono:C++11,难度 2/5,3 条证据
- constexpr:C++11,难度 3/5,3 条证据
- 移动语义与右值引用:C++11,难度 4/5,3 条证据
- noexcept 异常说明:C++11,难度 3/5,3 条证据
- std::unordered_map:C++11,难度 2/5,3 条证据
- 保证的复制消除:C++17,难度 4/5,3 条证据