摘要: C++ 语言特性的变更可能让你的防御成为马奇诺防线 马奇诺防线 马奇诺防线是法国在1930年代修建的一道大型防御工事系统。防线由复杂的地下工事网络组成,包括炮台、掩体、地下兵营、弹药库和指挥所等设施,有些地下工事深达数十米。 然而,在1940年的法国战役中,马奇诺防线并未发挥预期作用,德军绕过马奇诺防线,通过比利时和阿登森林发动突袭,迅速击败了法军。 阅读全文
posted @ 2025-12-12 17:05 saltymilk 阅读(191) 评论(0) 推荐(1)
摘要: 简介 平时的工作中我经常需要获取图片文件的一些基本信息(宽度、高度、通道数、色深)。因为项目依赖 opencv,以前都是直接用的 opencv 来读入图片后获取这些信息的,opencv 读入图片是读取所有的数据,会影响效率和内存占用,后来改用 stb_image,但是发现它不支持 tif 格式的文件 阅读全文
posted @ 2025-10-23 19:09 saltymilk 阅读(326) 评论(0) 推荐(2)
摘要: 本篇主要是为了记录在编写一个模板类的模板构造函数中遇到的初始化问题,以及针对这个问题展开的相关知识整理,文章就以引发这个问题的代码为标题了。 问题代码 在编写一个代表空间点的模板类 point 时,我打算为它添加一个模板构造函数: 代码 template<typename T, std::size_ 阅读全文
posted @ 2025-09-17 23:26 saltymilk 阅读(222) 评论(0) 推荐(0)
摘要: 如何将分治思想应用于模板元编程?快来跟作者一起探索一下吧~ 阅读全文
posted @ 2025-08-24 17:36 saltymilk 阅读(227) 评论(2) 推荐(1)
摘要: 一个简单的模板参数推导问题,AI 却相继扑街,来一看究竟吧~ 阅读全文
posted @ 2025-08-04 18:33 saltymilk 阅读(286) 评论(6) 推荐(1)
摘要: 什么是 RAII RAII(资源获取即初始化,Resource Acquisition Is Initialization),作为 C++ 的一个重要编程范式,已经被贯彻于标准库的各个角落。RAII 的核心思想是将资源与类的生命周期绑定,RAII 类是针对内部资源封装的资源管理类。 RAII 有什么 阅读全文
posted @ 2025-07-04 18:34 saltymilk 阅读(601) 评论(2) 推荐(4)
摘要: 为什么要设置删除器 C++11 加入STL的 shared_ptr 和 unique_ptr,已经是我们编码的常客了。用的多自然就会了解到它们的删除器,比如很多C语言库(GDAL, GLFW, libcurl等等)创建的指针不能简单的使用 delete 释放,当我们想使用智能指针管理这些库创建的资源 阅读全文
posted @ 2025-05-19 18:33 saltymilk 阅读(438) 评论(0) 推荐(0)
摘要: 有时候我们编写一个模板,希望用户使用我们期望的类型来实例化它,就需要对实参进行检查,限制不满足条件的实例化版本,同时给出便于理解的编译时信息。 对于 C++20 后的版本,可以将条件包装为concept: 代码 template<typename T> concept check = require 阅读全文
posted @ 2025-05-06 15:42 saltymilk 阅读(173) 评论(0) 推荐(1)
摘要: 什么是 ADL ADL(Argument Dependent Lookup),参数依赖查找,明确的意思是依赖参数的函数查找,即对于函数调用,不仅会依照常规的名称查找规则,还会在函数参数所在的命名空间内查找。 我们常用的 std::cout << "..." 其实就是一个 ADL 的例子,std::c 阅读全文
posted @ 2025-04-29 16:10 saltymilk 阅读(138) 评论(0) 推荐(0)