c++20

啦啦啦啦啦zzzz13 天前
linux·服务器·c++·网络编程·c++20
利用RAII机制进行日志的采集对于日志器的组装我们已经完成了一大半了,接下来就是一些比较细节的实现。我们先回顾一下子之前的组成部分,首先是我们自定义了一个buffer,这个buffer是存储我们输出的日志的,由inline和overflow组成,当日志的内容比较小的时候,我们会把日志输出到inline里面,这个inline在栈上,也就是array<char, 128>,而当日志比较多的时候,我们才在堆上开辟内存,vector。
啦啦啦啦啦zzzz14 天前
c++·算法·c++20
Logger的组装(c++20)本篇文章将综合前几篇文章,appender,format,buffer,组装我们的一个Logger,其作用是可以输出日志到特定的地方。这也是我们日志器的核心部分。
啦啦啦啦啦zzzz17 天前
linux·服务器·c++·c++20
Appender抽象类的实现c++20本篇文章还是对于日志器的实现,我们的日志输出会输出到不同的地方,有时候是终端,有时候是网络,有时候是文件里面,所以我们需要规定其输出的地方,这也就是appender的作用。
OPEN-F20 天前
算法·c++20
C++20新特性精讲:概念、范围与三路比较本文是 C++ 系列教程的第 22 篇。上一篇讲解了 C++17 新特性,本篇深入 C++20 新特性:概念(concepts)、范围(ranges)、三路比较(spaceship)、协程与模块等,覆盖 8 个完整示例代码。
小小龙学IT1 个月前
linux·c++·c++20
C++ std::chrono 时间库深度解析:从 duration 模板到 C++20 日历与时区在 C++11 之前,C++ 程序处理时间几乎只能依赖 C 标准库的 time_t / struct tm 与一堆全局函数(time()、localtime()、strftime()),其痛点非常明显:
郝学胜-神的一滴1 个月前
开发语言·算法·编程·软件构建·c++20
C++20 高级编程 004:从初始化、内存到const系列关键字不少深耕 C++ 的开发者常会陷入一种尴尬:能写业务逻辑,却在底层语法细节栽跟头 —— 指派初始化分不清、栈堆内存乱释放、const指针看得头皮发麻、constexpr与consteval傻傻分不清。
可爱系程序猿1 个月前
程序人生·电脑·c++20
msvcp120.dll 加载失败排查:VC++ 2013、进程架构与插件私有目录如何对应msvcp120.dll 属于 Visual C++ 2013 的 C++ 标准库。加载失败既可能是运行库缺失,也可能是宿主程序与插件架构不一致,或者私有目录里的旧版本抢先被加载。技术排查应先锁定实际进程、模块路径和错误时点,再处理组件,避免只按文件名覆盖。
ShineWinsu1 个月前
c++·c++20
对于C++:C++20中线程、初始化、Lambda与内存视图等特性的解析本文聚焦 C++20 标准库中八组非常有代表性的能力:std::jthread、std::osyncstream、指派初始化器、范围 for 中的初始化语句、Lambda 初始捕获中的包扩展、and/or/not 替代标记、功能特性宏测试以及 std::span。
可爱系程序猿1 个月前
程序人生·电脑·c++20
mfc100.dll 加载失败排查:旧版 VC++ 2010 程序、位数与插件目录如何核对mfc100.dll 多见于使用 Visual C++ 2010 构建的旧程序。64 位 Windows 上运行 32 位旧软件仍需要 x86 运行库,因此只按系统位数安装组件很容易漏掉依赖。排查时应同时确认宿主程序、插件和运行库架构,再使用受支持的安装包修复。
ShineWinsu1 个月前
linux·开发语言·网络·c++·c++20·epoll
对于 C++:C++20中Concept(概念) 与 Coroutine(协程)的解析C++20 是 C++ 语言发展史上一个里程碑式的版本。如果说 C++11 让这门语言焕然一新,那么 C++20 则是一次更加深远的能力扩展。在这个版本中,有两个特性尤为引人注目,它们分别是概念(Concept) 和协程(Coroutine)。
Lzg_na1 个月前
c++20
C++20 Concept 核心概念、语法详解与三大工程实践场景定义:Concept 是一个编译期谓词(返回 bool 的表达式),用于对模板参数施加语义约束。本质:它告诉编译器:这个模板参数 T 必须具备哪些行为(如支持 +、支持迭代、可拷贝等)。
Billy121381 个月前
c++20·c++进阶学习
Day14-C++20 Modules:模块声明与导入、模块分区、与头文件对比、迁移策略C++进阶计划 · Day 14 | 预计学习时长:2.5小时C++20 Modules 是 C++ 历史上自 C++11 以来最重要的语言特性变革。它从根本上重新定义了 C++ 代码的编译模型,解决了困扰 C++ 数十年的翻译单元(Translation Unit)隔离问题。
程序猿编码1 个月前
pytorch·语言模型·大模型·c++20·推荐算法
不用GPU,不用多线程,我用C++20手写了一个Gemma 3推理引擎现在跑大模型,大家的默认思路是:上GPU、开多线程、调各种推理框架。但有时候你只是想在自己的笔记本上快速试个东西,或者你的场景根本不允许用GPU(比如嵌入式设备、边缘计算节点)。这时候,CPU单线程推理就成了唯一选择。
Billy121381 个月前
c++20·c++进阶学习
Day15-C++20 三路比较运算符 `<=>`:一次定义,全面排序C++进阶计划 · Day 15 | 预计学习时长:2小时在 C++20 之前,实现一个完整的可比较类型是一项繁琐的工作。你需要手写 6 个比较运算符(==、!=、<、<=、>、>=),每一个都要保证逻辑一致性。这不仅冗长,还容易出错——比如 < 和 > 的定义不一致,导致排序算法行为异常。
A_cainiao_A2 个月前
开发语言·c++20
C++20:std::stop_source让线程说停就听std::stop_source 是 C++20 引入的标准库组件(位于 <stop_token> 头文件中),用于在多线程编程中实现协同式线程取消(Cooperative Thread Cancellation)。
小小龙学IT2 个月前
c++20
C++20 Ranges 库实现原理深度解析:从视图适配器到管道运算符传统 STL 算法使用迭代器对 [begin, end) 表达范围,这种方式存在三个根本性问题:任何满足了 begin() 和 end() 的类型都是 range。与经典 STL 的关键区别是:begin 和 end 的返回类型可以不同,这催生了 sentinel(哨兵)概念。
Billy121382 个月前
c++20·c++进阶学习
C++20 Concepts:约束与概念的现代范式C++进阶计划 · Day 09 | 预计学习时长:2小时C++20 Concepts 是自 C++11 模板元编程诞生以来最重要的语言特性之一。它将模板约束从"隐式契约"提升为"显式声明",让编译器在模板实例化前就能提供有意义的错误信息,将 SFINAE 的隐式失败转变为 Concepts 的显式约束。
可爱系程序猿2 个月前
程序人生·电脑·c++20
mfc90.dll 缺失如何处理?VC++ 2008 运行库与并行程序集排查记录mfc90.dll 的提示多出现在较早的行业软件、工程工具和桌面客户端中。它通常不是单独存在的系统文件,而是 Visual C++ 2008 MFC 运行时的一部分;如果直接从其他电脑复制文件,很容易引发并行程序集配置或位数不匹配的问题。下面按技术排查顺序记录可复现的处理办法。
code_pgf2 个月前
c++·c++20
C++11 / C++14 / C++17 / C++20 新特性总结本文按版本梳理现代 C++ 的核心特性、使用方法、工程价值和注意事项。C++11 现代化基础C++14 语法完善
C语言Plus2 个月前
数据库·sql·安全·c++20
C++ SqlBuilder一个简单、灵活且类型安全的 C++ SQL 构建器库SqlBuilder 是一个使用 C++23 构建的 SQL 语句生成库,提供链式调用的现代 API,让开发者以类型安全的方式构造 SQL 语句,避免手写字符串拼接带来的错误与安全风险。zcmaye/SqlBuilder https://github.com/zcmaye/SqlBuilder设计目标: