c++20

ULTRA??2 天前
c++·python·kotlin·c++20
基于range的函数式编程C++,python比较你说得对!Kotlin 和 Python 的函数式编程确实可以更简洁地实现这个逻辑。让我展示一下:Kotlin 版本
apocelipes2 天前
c++·性能优化·golang·并发·c++20·linux编程
从源码角度解析C++20新特性如何简化线程超时取消C++20中增加了很多重量级新特性,它不仅带来了ranges、concept和协程,也为多线程编程带来了jthread和stop_source这些强力辅助。利用这些新特性,我们可以更高效地编写并发程序。
ALex_zry3 天前
安全·c++20·c++23
C++20和C++23 在内存管理、并发控制和类型安全相关优化方式的详细技术分析现代C++标准在进程间共享信息方面引入了多项重要改进,特别是在内存管理、并发控制和类型安全方面。以下是对C++20和C++23相关优化方式的详细技术分析。
ALex_zry3 天前
开发语言·c++·c++20
C++20/23标准对进程间共享信息的优化:从传统IPC到现代C++的演进在深入探讨现代C++标准的优化之前,我们有必要理解传统进程间通信(IPC)方案存在的核心挑战。传统的共享内存IPC实现通常依赖于平台特定API,如POSIX或System V接口,这些实现面临着诸多固有局限性。
fpcc6 天前
哈希算法·c++20
c++20容器中的透明哈希在C++14引入了透明操作符,而C++20中又引入了透明哈希。它们有一个共同的特征,就是透明。那么它们之间有没有什么联系呢?为什么又引入一个透明哈希呢?一个问题紧跟着一个问题。那咱们就从根儿上盘一盘,把它们的来龙去脉分析一下。这样,就更容易理解透明这个概念以及透明操作符和透明哈希的关系。
小老鼠不吃猫6 天前
开发语言·c++·c++20
C++20 STL <numbers> 数学常量库<numbers> 是 C++20 新增的标准头文件,定义了一组常用数学常量。命名空间是std::numbers。在实际工程应用中,应该用标准替代经验,用规范替代习惯。用 <numbers> 替代手写常量,统一数学表达方式,提升可读性与可靠性。
Chrikk6 天前
人工智能·算法·c++20
C++20 Concepts 在算子库开发中的应用:从 SFINAE 到类型约束在高性能计算与 AI 基础设施开发中,模板元编程是实现通用性与性能并存的关键手段。然而,传统 C++ 依赖 SFINAE 机制进行类型约束,导致接口定义晦涩且调试困难。本文以矩阵运算库的开发为例,对比分析 SFINAE 与 C++20 Concepts 的技术差异,探讨如何利用 Concepts 与 requires 表达式构建更清晰、更安全的编译期类型契约,从而降低泛型编程的工程复杂度。
oioihoii6 天前
linux·服务器·c++20
C++20协程如何撕开异步编程的牢笼摘要:三年前,一个深夜的线上事故让我彻底醒悟——callback hell不是技术问题,而是人性问题。当人类大脑理解不了自己写的代码时,就该换种写法了。C++20协程就是这个答案,但它真的能救我们于水火吗?
Chrikk6 天前
c++20
高并发推理服务中的异步 IO 模型:C++20 无栈协程应用解析在大语言模型(LLM)推理服务的构建中,请求处理链路通常涉及 HTTP 解析、Tokenizer 处理、后端推理集群调度以及结果回传等多个 IO 密集型环节。传统的同步阻塞模型会导致吞吐量受限于线程数,而基于回调(Callback)的异步模型则破坏了代码的线性逻辑,增加了维护成本。本文分析 C++20 引入的无栈协程特性,探讨其在实现高并发、低延迟推理网关中的工程实践。
点云SLAM7 天前
c++·c++20·c++模版·c++高级应用·c++模版报错定位
C++ Template(模板)解读和模板报错如何“逆向阅读”定位Template = 编译期函数 / 类型生成系统编译期行为:关键点:模板代码膨胀、编译慢的根本原因要求:
在黎明的反思13 天前
java·前端·c++20
c++20协程co_await流程测试:用co_yield产生序列:协程文件读取:
黑不溜秋的15 天前
开发语言·c++·c++20
C++语言特性32 - 三方比较(C++20)在 C++20 中,引入了一个新的比较运算符 <=>。表达式形如 a <=> b,它的返回值不是简单的 bool,而是一个“比较结果对象”。(比较类别 — comparison category object),根据 a 与 b 的大小/相等关系,返回不同结果。具体来说:如果 a < b,那么 (a <=> b) < 0;如果 a > b,那么 (a <=> b) > 0;如果 a == b(或等价 / 相等 / 等价关系成立),那么 (a <=> b) == 0。
小毅&Nora17 天前
算法·c++20·泛函算法
【后端】【C++】泛型算法:从传统到C++20 Ranges的进化之旅核心理念:泛型算法是C++ STL的基石,它让算法与容器解耦,实现"一算法多容器"的通用设计。想象一下,你去菜市场买菜:找最便宜的青菜(最小值)、找最新鲜的鱼(按日期排序),只需告诉"比价机器人"比较标准,而不需要知道具体怎么比较。这正是泛型算法的精髓!
Lion Long17 天前
开发语言·c++·stl·c++20
C++20 异步编程:用future、promise 还是协程?网络编程的程序并发处理能力、系统资源的利用率非常重要。不管是构建高性能的网络服务器、响应迅速的桌面应用,还是处理海量数据的批处理系统,都要异步编程。异步是指在等待耗时操作完成的同时,继续执行其他任务,避免界面卡顿、提高吞吐量,充分使用多核处理器资源。
Mr_WangAndy19 天前
c++20·c++40周年·指定初始化
C++20新特性_指定初始化 (Designated Initializers)C++20之前,初始化一个包含多个成员的结构体通常使用{}方式,按值的定义顺序进行初始化。这种方式缺点是可读性差,看到10,800,需要对照定义顺序来查看表示的意思。 如果在结构体中添加或删除一个成员,所有初始化代码都要重新修改。 C++20引入了指定初始化,解决了上面的问题。
Mr_WangAndy20 天前
c++20·c++40周年·编译期间判断
C++20新特性_std::is_constant_evaluated() 编译期判断C++20引入了std::is_constant_evaluated(),包含在头文件<type_traits>中,主要作用判断当前函数调用是否正在一个编译期间常量上下文中执行。 如果是在编译期求值(例如,在初始化 constexpr 变量、static_assert 中,或在 consteval 函数内),返回 true。 如果是在运行时求值,返回 false。 这个函数引入的核心价值在于,允许我们编写一个既能用于编译期也能用于运行时的 constexpr 函数,并为这两种情况提供不同的实现路径。这解决
小毅&Nora21 天前
java·c++20
【后端】【C++】从裸指针到 C++20 协程:现代 C++ 内存与并发编程的双重革命在 2025 年,仍有大量 C++ 项目运行在 VC++6.0 上——没有模板偏特化、没有 STL 安全性、没有 RAII、没有多线程标准库。开发者每天与 new[] / delete[]、_beginthreadex、CRITICAL_SECTION 打交道,如同在雷区跳舞。
Mr_WangAndy21 天前
c++20·c++20新特性·c++40周年·chrono库扩展·jthread线程
C++20新特性_std::jthread和chrono库扩展在C++11的thread是,如果忘记 join()( 让主线程等待子线程结束) 或者 detach()分离线程,当std::thread析构时,程序会直接调用terminate()崩溃。 在C++20中引入了 jthread,就是为了遵循RAII原则,析构时自动调用 join(),保证程序不崩溃。
Mr_WangAndy21 天前
c++20·c++40周年·c++原子智能指针·source_location·位操作函数
C++20新特性_原子智能指针,std::source_location和位操作函数C++11引入了智能指针,shared_ptr和unique_ptr是内存管理的利器。但是,shared_ptr不是线程安全的,虽然,std::shared_ptr 的引用计数控制块是线程安全的,但修改它指向的对象并不是线程安全的。所以,在多线程中读写同一个全局的 std::shared_ptr对象,面临数据竞争风险。 C++20之前的解决方法是,在多线程环境下,对共享变量加锁,以确保线程安全。 C++20 的解决方案: 直接特化 std::atomic 模板,允许 std::atomic<std::sh
Mr_WangAndy21 天前
c++20·likely·c++40周年·unlikely·特性测试宏
C++20新特性_[[likely]] , [[unlikely]]属性和特性测试宏现代 CPU 采用流水线技术执行指令。当遇到条件跳转(如 if 或 switch)时,CPU 需要猜测代码会走哪条路径,并预先加载该路径的指令。 如果CPU预测正确,流水线畅通无阻,性能极高。 如果CPU预测错了,就是一种控制冒险,CPU必须清空流水线,重新加载正确指令,这个过程需要几十个指令周期。 C++20之前,为了优化热点代码,开发者通常依赖编译器特定的扩展,例如 GCC/Clang 的 __builtin_expect: