- 引言 C++23新特性概述 std::generator基本概念 定义 作用 模板参数 std::generator特性分析 与协程的结合 范围视图 内存管理 std::generator使用示例 std::generator的优势与挑战 优势 挑战 总结 引言在C++的发展历程中,每一个新版本都带来了许多令人期待的新特性和改进。C++23也不例外,其中std::generator作为一个... 引言 C++23新特性概述 std::generator基本概念 定义 作用 模板参数 std::generator特性分析 与协程的结合 范围视图 内存管理 std::generator使用示例 std::generator的优势与挑战 优势 挑战 总结 引言在C++的发展历程中,每一个新版本都带来了许多令人期待的新特性和改进。C++23也不例外,其中std::generator作为一个...
- 对于 C++ 开发者而言,调试和错误诊断一直是开发周期中不可或缺但又充满挑战的一环。当程序崩溃或发生未预期行为时,获取清晰、准确的调用栈信息至关重要。在 C++23 标准之前,开发者通常需要依赖平台特定的 API 或第三方库来实现这一功能,这不仅增加了代码的复杂性,也降低了可移植性。令人振奋的是,C++23 标准正式引入了 栈踪迹库 (<stacktrace>),其提案编号为 P0881R7... 对于 C++ 开发者而言,调试和错误诊断一直是开发周期中不可或缺但又充满挑战的一环。当程序崩溃或发生未预期行为时,获取清晰、准确的调用栈信息至关重要。在 C++23 标准之前,开发者通常需要依赖平台特定的 API 或第三方库来实现这一功能,这不仅增加了代码的复杂性,也降低了可移植性。令人振奋的是,C++23 标准正式引入了 栈踪迹库 (<stacktrace>),其提案编号为 P0881R7...
- 引言 背景知识 std::reference_wrapper std::basic_common_reference P2655R3提案 提案背景 提案目的 提案设计 为什么结果应该是 T& 而不是 reference_wrapper<T> 考虑的替代方案 支持所有兼容的转换 支持cv限定的 reference_wrapper 和其他代理类型 C++23中的实现 实际应用场景 容器中的引用... 引言 背景知识 std::reference_wrapper std::basic_common_reference P2655R3提案 提案背景 提案目的 提案设计 为什么结果应该是 T& 而不是 reference_wrapper<T> 考虑的替代方案 支持所有兼容的转换 支持cv限定的 reference_wrapper 和其他代理类型 C++23中的实现 实际应用场景 容器中的引用...
- 一、C++协程入门知识 (一)基本概念 (二)特点 (三)应用场景 二、C++协程精通知识 (一)高级特性 (二)优化技巧 (三)错误处理机制 (四)调试技巧 一、C++协程入门知识 (一)基本概念协程(coroutine)是一种特殊的函数,它可以被暂停(suspend)、恢复执行(resume),并且一个协程可以被多次调用。C++中的协程属于stackless协程,即协程被suspend... 一、C++协程入门知识 (一)基本概念 (二)特点 (三)应用场景 二、C++协程精通知识 (一)高级特性 (二)优化技巧 (三)错误处理机制 (四)调试技巧 一、C++协程入门知识 (一)基本概念协程(coroutine)是一种特殊的函数,它可以被暂停(suspend)、恢复执行(resume),并且一个协程可以被多次调用。C++中的协程属于stackless协程,即协程被suspend...
- C++23 std::tuple与其他元组式对象的兼容性 介绍C++23 引入了一些增强功能,以使 std::tuple 与其他元组式对象更具兼容性。这种改进大大提升了代码的通用性和可读性,使得不同类型之间的数据互操作变得更加简单。 引言元组(tuple)是一种轻量级、固定大小的异质集合,适用于需要将多个值组合在一起但又不想创建结构体的场景。在 C++ 中,std::tuple 是实现此功... C++23 std::tuple与其他元组式对象的兼容性 介绍C++23 引入了一些增强功能,以使 std::tuple 与其他元组式对象更具兼容性。这种改进大大提升了代码的通用性和可读性,使得不同类型之间的数据互操作变得更加简单。 引言元组(tuple)是一种轻量级、固定大小的异质集合,适用于需要将多个值组合在一起但又不想创建结构体的场景。在 C++ 中,std::tuple 是实现此功...
- 1. 背景:std::pair 的转发构造函数 2. C++23 的改进:添加默认实参 示例代码 3. 带来的好处 3.1 更简洁的代码 3.2 提高代码的可维护性 3.3 与 std::optional 和 std::variant 的协同 4. 实现细节 示例实现(简化版) 5. 使用场景 5.1 初始化列表 5.2 模板编程 6. 注意事项 6.1 默认构造的限制 6.2 与旧代码的... 1. 背景:std::pair 的转发构造函数 2. C++23 的改进:添加默认实参 示例代码 3. 带来的好处 3.1 更简洁的代码 3.2 提高代码的可维护性 3.3 与 std::optional 和 std::variant 的协同 4. 实现细节 示例实现(简化版) 5. 使用场景 5.1 初始化列表 5.2 模板编程 6. 注意事项 6.1 默认构造的限制 6.2 与旧代码的...
- 一、引言 二、std::optional和std::expected的基本概念 2.1 std::optional 2.2 std::expected 三、std::optional的单子式操作 3.1 transform 3.2 and_then 3.3 or_else 四、std::expected的单子式操作 4.1 transform 4.2 and_then 4.3 or_els... 一、引言 二、std::optional和std::expected的基本概念 2.1 std::optional 2.2 std::expected 三、std::optional的单子式操作 3.1 transform 3.2 and_then 3.3 or_else 四、std::expected的单子式操作 4.1 transform 4.2 and_then 4.3 or_els...
- 引言 基本概念 作用 使用示例 与之前方法的对比 在 C++23 中的意义 总结 引言在 C++ 的发展历程中,每一个新版本都带来了许多令人期待的新特性和改进,以提升代码的安全性、可读性和可维护性。C++23 作为其中的一个重要版本,也不例外。其中,std::to_underlying 这个工具函数便是 C++23 为开发者带来的一个实用礼物,它主要用于获取枚举(enum)的底层值。本文将... 引言 基本概念 作用 使用示例 与之前方法的对比 在 C++23 中的意义 总结 引言在 C++ 的发展历程中,每一个新版本都带来了许多令人期待的新特性和改进,以提升代码的安全性、可读性和可维护性。C++23 作为其中的一个重要版本,也不例外。其中,std::to_underlying 这个工具函数便是 C++23 为开发者带来的一个实用礼物,它主要用于获取枚举(enum)的底层值。本文将...
- 引言 背景知识回顾 可调用对象 C++17的std::invoke std::invoke_r的诞生 提案背景 std::invoke_r的定义 参数和返回值 异常说明 std::invoke_r的使用场景 指定返回类型 丢弃返回值 std::invoke_r与std::invoke的对比 功能差异 使用场景差异 结论 引言在C++的发展历程中,对于可调用对象的处理一直是一个重要的话题。从... 引言 背景知识回顾 可调用对象 C++17的std::invoke std::invoke_r的诞生 提案背景 std::invoke_r的定义 参数和返回值 异常说明 std::invoke_r的使用场景 指定返回类型 丢弃返回值 std::invoke_r与std::invoke的对比 功能差异 使用场景差异 结论 引言在C++的发展历程中,对于可调用对象的处理一直是一个重要的话题。从...
- 一、背景与动机 (一)完美转发的局限性 (二)std::forward_like的提出 二、std::forward_like的设计与实现 (一)基本语法 (二)实现原理 (三)与std::forward的区别 三、使用场景 (一)成员访问 (二)Lambda表达式 (三)容器和智能指针 四、优点与意义 (一)增强的灵活性 (二)减少错误 (三)与C++23其他特性结合 五、总结在C++2... 一、背景与动机 (一)完美转发的局限性 (二)std::forward_like的提出 二、std::forward_like的设计与实现 (一)基本语法 (二)实现原理 (三)与std::forward的区别 三、使用场景 (一)成员访问 (二)Lambda表达式 (三)容器和智能指针 四、优点与意义 (一)增强的灵活性 (二)减少错误 (三)与C++23其他特性结合 五、总结在C++2...
- 引言 背景知识 旧有的绑定工具 C++20的std::bind_front std::bind_back的定义和功能 定义 功能 std::bind_back的使用场景 简化回调函数 部分应用参数 std::bind_back与其他绑定工具的对比 与std::bind的对比 与std::bind_front的对比 总结 引言在C++的发展历程中,每一个新标准的发布都会带来一些令人期待的新特... 引言 背景知识 旧有的绑定工具 C++20的std::bind_front std::bind_back的定义和功能 定义 功能 std::bind_back的使用场景 简化回调函数 部分应用参数 std::bind_back与其他绑定工具的对比 与std::bind的对比 与std::bind_front的对比 总结 引言在C++的发展历程中,每一个新标准的发布都会带来一些令人期待的新特...
- 面向对象编程(OOP)是一种将现实世界抽象为代码中对象的编程范式,核心特性包括封装、继承、多态和抽象。封装通过访问控制保护对象内部状态;继承实现代码复用与扩展;多态让同一操作在不同对象上有不同表现;抽象提取本质特征,忽略无关细节。C++作为支持OOP的语言,广泛应用于游戏开发、图形处理等领域,助力构建高效、灵活且可维护的软件系统。掌握OOP思想,能更好解决复杂问题,创造精彩代码世界。 面向对象编程(OOP)是一种将现实世界抽象为代码中对象的编程范式,核心特性包括封装、继承、多态和抽象。封装通过访问控制保护对象内部状态;继承实现代码复用与扩展;多态让同一操作在不同对象上有不同表现;抽象提取本质特征,忽略无关细节。C++作为支持OOP的语言,广泛应用于游戏开发、图形处理等领域,助力构建高效、灵活且可维护的软件系统。掌握OOP思想,能更好解决复杂问题,创造精彩代码世界。
- C语言自20世纪80年代以来一直是主流编程语言,适用于小型计算机、个人电脑及大型机。因其高效紧凑且易于修改和移植,广泛用于软件开发。尽管后来C++和JAVA流行起来,但C语言仍然是软件行业核心,并在嵌入式系统、科学编程和操作系统开发如Linux中扮演重要角色。即使到现在,掌握C语言仍是一项重要技能。不是必须得是计算机专家才能使用C语言,学习C语言同时也能学到很多C++的知识。 C语言自20世纪80年代以来一直是主流编程语言,适用于小型计算机、个人电脑及大型机。因其高效紧凑且易于修改和移植,广泛用于软件开发。尽管后来C++和JAVA流行起来,但C语言仍然是软件行业核心,并在嵌入式系统、科学编程和操作系统开发如Linux中扮演重要角色。即使到现在,掌握C语言仍是一项重要技能。不是必须得是计算机专家才能使用C语言,学习C语言同时也能学到很多C++的知识。
- 一、定义与基本概念 1.1 定义 1.2 基本概念 二、特点 2.1 仅可移动性 2.2 支持多种限定符 2.3 无target_type和target访问器 2.4 强前置条件 三、使用场景 3.1 处理不可复制的可调用对象 3.2 性能优化 3.3 资源管理 四、与其他可调用包装器的对比 4.1 与std::function的对比 4.2 与std::function_ref的对比 五... 一、定义与基本概念 1.1 定义 1.2 基本概念 二、特点 2.1 仅可移动性 2.2 支持多种限定符 2.3 无target_type和target访问器 2.4 强前置条件 三、使用场景 3.1 处理不可复制的可调用对象 3.2 性能优化 3.3 资源管理 四、与其他可调用包装器的对比 4.1 与std::function的对比 4.2 与std::function_ref的对比 五...
- 1. constexpr 函数中使用非字面量变量、标号和 goto (P2242R3) 示例代码 2. 允许 constexpr 函数中的常量表达式中使用 static 和 thread_local 变量 (P2647R1) 示例代码 3. constexpr 函数的返回类型和形参类型不必为字面类型 (P2448R2) 示例代码 4. 不存在满足核心常量表达式要求的调用的 constexp... 1. constexpr 函数中使用非字面量变量、标号和 goto (P2242R3) 示例代码 2. 允许 constexpr 函数中的常量表达式中使用 static 和 thread_local 变量 (P2647R1) 示例代码 3. constexpr 函数的返回类型和形参类型不必为字面类型 (P2448R2) 示例代码 4. 不存在满足核心常量表达式要求的调用的 constexp...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签