技术栈
现代c++
小此方
14 天前
开发语言
·
c++
·
c++11
·
现代c++
Re:思考·重建·记录 现代C++ C++11篇(六) 从 shared_ptr 到 weak_ptr:起底智能指针的引用计数与循环引用之痛
这里是此方,好久不见。 本专栏是【主题曲:C++程序设计】专栏的补充篇【插曲:现代C++】。本系列将优先深度解析C++11标准,力求内容详实,无微不至。C++14~C++20的进阶内容将在后续间隔一段时间后连载。本期将重点讲解:智能指针的底层原理、RAII 设计思路、循环引用痛点及其解决方案等内容。
小此方
23 天前
开发语言
·
c++
·
c++11
·
现代c++
Re:思考·重建·记录 现代C++ C++11篇 (四)C++ Lambda 全解析:编译器是如何为你生成仿函数的?
这里是此方,好久不见。 本专栏是【主题曲:C++程序设计】专栏的补充篇【插曲:现代C++】。本系列将优先深度解析C++11标准,力求内容详实,无微不至。C++14~C++20的进阶内容将在后续间隔一段时间后连载。本期将重点讲解:lambda以及常见的运用场景和底层原理等内容.好的,让我们现在开始吧。
charlie114514191
1 个月前
开发语言
·
c++
·
vscode
·
stm32
·
安全
·
重构
·
现代c++
嵌入式C++工程实践——第13篇:第一次重构 —— enum class取代宏,类型安全的开始
仓库已经开源!仍然在持续建设中,喜欢的话点个⭐!相关的链接如下:https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP
小此方
1 个月前
开发语言
·
c++
·
stl
·
c++11
·
现代c++
Re:思考·重建·记录 现代C++ C++11篇 (三) 深度解构:可变参数模板、类功能演进与 STL 的新版图
这里是此方,好久不见。 本专栏是【主题曲:C++程序设计】专栏的补充篇【插曲:现代C++】。本系列将优先深度解析C++11标准,力求内容详实,无微不至。C++14~C++20的进阶内容将在后续间隔一段时间后连载。本期将重点讲解:可变参数模板、C++11新的类功能以及STL中的新变化.好的,让我们现在开始吧。
小此方
1 个月前
开发语言
·
c++
·
c++11
·
现代c++
Re:思考·重建·记录 现代C++ C++11篇 (二) 右值引用与移动语义&引用折叠与完美转发
这里是此方,好久不见。 本专栏是【主题曲:C++程序设计】专栏的补充篇【插曲:现代C++】。本系列将优先深度解析C++11标准,力求内容详实,无微不至。C++14~C++20的进阶内容将在后续间隔一段时间后连载。本期将重点讲解:右值引用与移动语义以及他们常见的运用场景:引用折叠与完美转发等内容.好的,让我们现在开始吧。
小此方
1 个月前
开发语言
·
c++
·
stl
·
c++11
·
现代c++
Re:思考·重建·记录 现代C++ C++11篇 (一) 列表初始化&Initializer_List
这里是此方,好久不见。 本专栏是【主题曲:C++程序设计】专栏的补充篇【插曲:现代C++】。本系列将优先深度解析C++11标准,力求内容详实,无微不至。C++14~C++20的进阶内容将在后续间隔一段时间后连载。本期将重点讲解:基础且重要的“列表初始化”以及initializer_list。好的,让我们现在开始吧。
charlie114514191
3 个月前
开发语言
·
c++
·
笔记
·
嵌入式
·
现代c++
·
工程实践
嵌入式C++教程——Lambda捕获与性能影响
上一章我们学习了Lambda的基本语法,但你可能心中还有一个疑问:那个捕获列表[...]到底是怎么回事?值捕获和引用捕获有什么区别?会不会影响性能?
橘色的喵
3 个月前
c语言
·
c++
·
现代c++
·
c++17
现代 C++17 相比 C 的不可替代优势
基于 newosp 工业嵌入式基础设施库的实践总结C++17 的模板、variant、constexpr、RAII、强类型系统让编译器在编译期捕获类型不匹配、 内存越界、资源泄漏、未处理错误等问题,同时生成比手写 C 更优的机器码。 C 把这些全部推迟到运行时,靠程序员自觉、代码审查和 sanitizer 事后发现。
charlie114514191
4 个月前
开发语言
·
c++
·
学习
·
算法
·
嵌入式
·
现代c++
·
工程实践
现代嵌入式C++教程:对象池(Object Pool)模式
内存分配是一个非常常见的事情,这是我们无法回避讨论的。任何一个生命周期需要自己掌控而非自动的对象(或者你说结构体或者说是变量都对)都需要分配堆上内存。尽管单片机上也许没有太过严格的划分,但是我们一定需要一些持久化分配的对象。
charlie114514191
4 个月前
开发语言
·
c++
·
笔记
·
学习
·
嵌入式
·
现代c++
现代嵌入式C++教程:if constexpr——把编译期分支写得像写注释 —— 工程味实战指南
笔者一直认为,在介于最近的现代C++和比较古典的C++98之间,大部分模板编程的使用方式,都是为了组合出特定目的而编写的,这种复杂性有时候并不是我们想要的。比如说,我们在之后学习的模板编程里,很多依赖模板的 enable_if、特化、SFINAE 花活本质上只是为了达成我们特定的编译期匹配目的。好在现在,我们有if constexpr 来化简绝大多数的场景了。
charlie114514191
4 个月前
开发语言
·
c++
·
笔记
·
学习
·
嵌入式
·
现代c++
嵌入式现代C++教程: 构造函数优化:初始化列表 vs 成员赋值
在嵌入式 C++ 项目中,我们很容易把精力放在“看得见”的地方:中断、DMA、时序、缓存命中率、Flash/RAM 占用……而对于构造函数这种“看起来只执行一次”的代码,往往下意识地放松了警惕。
charlie114514191
5 个月前
c语言
·
开发语言
·
c++
·
学习
·
嵌入式
·
教程
·
现代c++
现代嵌入式C++教程:C++98——从C向C++的演化(2)
完整的仓库地址在Tutorial_AwesomeModernCPP中,您也可以光顾一下,喜欢的话给一个Star激励一下作者
charlie114514191
5 个月前
c++
·
ide
·
windows
·
学习
·
visual studio
·
调试
·
现代c++
深入解构:MSVC 调试机制与 Visual Studio 调试器原理
笔者最近在家中做一些Windows的项目,项目比较大,这里就涉及到了MSVC的调试相关的内容了,笔者把这几天的一些收获结合MSVC的文档好好聊聊。 尽管,我们有时候得承认,Visual Studio有的时候是有点不太好用(特别是项目一大,有点折磨人了会,VS很重),但是他的调试做的OK。我想很多朋友肯定会使用调试来解决自己的项目中遇到的问题。这就是这个博客的出发点——重新审视一下调试,特别是MSVC的调试。
charlie114514191
5 个月前
开发语言
·
c++
·
笔记
·
学习
·
现代c++
如何快速在 VS2026 上使用 C++ 模块 — 完整上手指南
现代C++提出了一个非常breakthrough的特性,就是模块,尽管有一些时间的发展了(这个玩意是C++20出的),目前在一些demo case中,VS对模块的支持还OK。笔者也计划试一试逐步开始尝试向自己的一些玩具项目引入module来化简自己工程的依赖处理关系。
刘家炫
5 个月前
c++
·
现代c++
·
模版元编程
C++ 中的模版元编程
现代 C++ 的一个进化方向是在编译时做更多的工作。模板元编程是 C++ 中一种利用模板机制在编译期进行计算和代码生成的高级技术。它通过模板转化、递归实例化和类型操作,在编译时完成传统运行时才能处理的任务,从而实现零运行时开销的优化。下面将从核心概念、关键技术、现代发展等方面全面讲解 C++ 模板元编程。
止观止
6 个月前
c++
·
c++11
·
c++20
·
编程思想
·
现代c++
告别“祖传C++”:开启你的现代C++之旅
C++ 是一门古老的语言吗?它复杂、危险,只属于那些头发稀疏的底层大神? 如果你还对 C++ 抱有这样的印象,那么这个系列将彻底颠覆你的认知。
止观止
6 个月前
c++
·
实战
·
raii
·
代码重构
·
现代c++
实战演练:用现代 C++ 重构一个“老项目”
学了这么多特性,你是否感觉“学是学了,但不知道怎么用”?纸上谈兵终觉浅,绝知此事要躬行。本文将选取一个典型的“老项目”片段,用我们学过的现代 C++ 特性进行一次彻底的重构。
charlie114514191
8 个月前
c++
·
学习
·
c++20
·
协程
·
语言特性
·
调度
·
现代c++
理解C++20的革命特性——协程支持1
首先,引出协程,我们跑不了提到函数的运行时栈:调用一个函数时,运行时会为该函数分配一个栈帧,在栈帧中保存参数、返回地址以及函数中声明的局部变量——这就是函数的运行时环境。
itas109
1 年前
开发语言
·
c++
·
c++11
·
现代c++
·
c++标准
C++语言发展历程-2025
C++是一种高级编程语言,由Bjarne Stroustrup于1979年在贝尔实验室创建,是C语言的扩展和改进版。
南郁
1 年前
c++
·
开源
·
json
·
nlohmann
·
现代c++
·
d2school
·
108杰
007-nlohmann/json 项目应用-C++开源库108杰
本课为 fswatch(第一“杰”)的示例项目加上对配置文件读取的支持,同时借助 第三“杰” CLI11 的支持,完美实现命令行参数与配置文件的逻辑统一。