- 博客(271)
- 资源 (19)
- 收藏
- 关注
原创 【三体】deepseek 对程心做的三次决定的评价
程心是小说中最具争议性的角色之一,她的选择往往出于善良和人性的本意,却在宇宙尺度的残酷现实中带来了灾难性的后果,深刻体现了刘慈欣对“圣母式”道德在黑暗森林法则下脆弱性的思考。
2025-06-11 11:31:41
792
原创 【三方库研读】facebook/folly中File类原理与作用深度解析
作为 C++ 文件描述符的 RAII 封装类,folly::File 提供了安全高效的文件资源管理。以下是核心原理分析
2025-06-09 20:22:17
783
原创 【基础知识】环形缓冲区(Circular Buffer)原理深度解析
环形缓冲区是一种高效的数据结构,特别适用于生产者-消费者模型和实时数据流处理。其核心原理是通过循环复用固定内存空间实现高效读写,避免频繁内存分配
2025-06-09 15:50:31
761
原创 【C++基础知识】深入解析 C++ `decltype` 关键字
decltype 是 C++11 引入的关键特性,用于在编译时推导表达式的类型。它提供了强大的类型推导能力,是现代 C++ 模板元编程和泛型编程的核心工具之一
2025-05-29 11:30:06
673
原创 【C++基础知识】RAII的一个简单示例讲解
这个表达式是 C++ 中利用 RAII(Resource Acquisition Is Initialization)原则管理 C 风格文件资源的经典范例
2025-05-29 11:20:35
918
原创 【C++基础知识】匿名命名空间
在C++中,匿名命名空间(Anonymous Namespace) 是一种特殊的命名空间机制,用于将实体(变量、函数、类等)的作用域限制在当前翻译单元(即单个源文件)内,实现类似static的"内部链接"效果,但更符合C++的现代风格
2025-05-28 19:55:51
635
原创 【C++基础知识】【ASAN】
AddressSanitizer(ASan)是 Google 开发的动态内存错误检测工具,通过编译时插桩和运行时库来捕获多种内存问题。以下是它能检测的主要问题类型及详细说明
2025-05-28 15:08:21
365
原创 【C++基础知识】【ASAN】heap-use-after-free 错误报告完整解读
影子内存是 ASan 的核心机制,通过内存状态标记实现高效检测标记值直接反映内存状态(如 fd 表示释放后的内存,fa 表示堆左红区)结合错误报告中的内存地址和影子字节,可精准定位问题类型和代码位置
2025-05-28 14:42:13
1017
原创 【优秀三方库研读】在 quill 开源库 Backend.h 知识点
【代码】【优秀三方库研读】在 quill 开源库 Backend.h 知识点。
2025-05-21 17:52:58
644
原创 【优秀三方库研读】在 quill 开源库 LogMarcos.h 中知识点汇总及讲解
编译时日志级别过滤预处理宏与条件编译可变参数处理技巧格式化字符串生成日志宏的分发机制线程本地存储(TLS)零成本抽象设计动态日志级别支持结构化日志标签日志频率限制机制
2025-05-21 15:48:16
1070
原创 【优秀三方库研读】在 quill 开源库中 try、throw、catch 相关代码解析
这段代码定义了用于错误处理和异常管理的宏,旨在提供灵活的错误处理机制,支持启用或禁用C++异常的环境。以下是对代码各部分作用的详细说明及设计原因的分析
2025-05-21 11:05:58
675
原创 【优秀三方库研读】在 quill 开源库中为什么封装 safe_fwrite,而不是直接使用系统 fwrite
在 Quill 日志库中,safe_fwrite 函数的封装是为了解决直接使用系统 fwrite 时可能存在的 可靠性 和 错误处理 问题,同时兼顾性能优化
2025-05-20 20:52:08
875
原创 【优秀三方库研读】在 quill 开源库中定义的 QUILL_LIKELY 和 QUILL_UNLIKELY 这两个宏的作用是什么
`QUILL_LIKELY` 和 `QUILL_UNLIKELY` 两个宏,主要用于 **优化条件分支预测**,从而提升程序性能,尤其是在高频调用的代码路径中(如日志库的核心逻辑)
2025-05-20 19:55:32
630
原创 【优秀三方库研读】在 quill 开源库中 QUILL_MAGIC_SEPARATOR 的作用是什么,解决了什么问题
在 Quill 开源库中,#define QUILL_MAGIC_SEPARATOR "\x01\x02\x03" 的作用是 为日志消息的字段或条目提供唯一且可靠的分隔标记
2025-05-20 17:43:48
415
原创 【优秀三方库研读】【性能优化点滴】odygrd/quill 解决伪共享
在代码中添加 `alignas(QUILL_CACHE_LINE_ALIGNED)` 是为了解决 **伪共享(False Sharing)** 这一多线程编程中的关键性能问题。下面我将详细解释其原理和作用:
2025-04-28 20:34:36
663
原创 【转载】Root Pixel 6 and Pixel 6 Pro with Magisk
原文地址:https://wccftech.com/how-to/how-to-root-pixel-6-and-pixel-6-pro-with-magisk/
2025-04-25 15:13:03
350
原创 【C++基础知识】C++ 模板元编程(Template Metaprogramming, TMP)技术详解
模板元编程技术随着 C++ 标准的演进不断发展,以下是各技术及其引入版本的详细说明
2025-04-25 11:50:22
768
原创 【C++基础知识】折叠表达式详解--结合上一篇
折叠表达式(Fold Expressions)是 C++17 引入的一种模板元编程技术,用于**简化可变参数模板(variadic templates)的参数包展开**。它允许以简洁的方式对参数包(parameter pack)中的所有元素进行**递归式操作**,如求和、逻辑运算、函数调用等
2025-04-25 11:29:53
503
原创 【优秀三方库研读】【C++基础知识】odygrd/quill -- 折叠表达式
按顺序计算每个参数的编码大小。确保的更新顺序与参数顺序一致。以最高效的方式累加结果。通过逗号折叠表达式,既保证了求值顺序,又实现了简洁高效的代码。
2025-04-24 21:07:10
1011
原创 【C++基础知识】C++类型特征组合:`disjunction_v` 和 `conjunction_v` 深度解析
这两个模板是C++17引入的类型特征组合工具,用于构建更复杂的类型判断逻辑
2025-04-24 20:49:58
713
原创 【C++基础知识】namespace前加 inline
在C++中,`inline namespace`(内联命名空间)是一种特殊的命名空间声明方式,**`inline`关键字在这里的含义是让该命名空间的内容在其外层命名空间中“直接可见”**,从而简化代码的版本管理和符号查找规则
2025-04-24 19:56:33
564
原创 【C++基础知识】C++中的explicit与implicit详解
在C++中,`explicit`和`implicit`关键字控制着类型转换的行为方式,它们直接影响着代码的安全性和灵活性。下面我将全面解析这两个关键概念
2025-04-24 10:37:35
487
原创 【性能优化点滴】odygrd/quill constexpr 相关使用续
`constexpr` 是 C++11 引入的关键特性,用于在编译期执行计算和初始化。在 Quill 的 `MacroMetadata` 类中,`_calc_file_name_pos` 和 `_calc_colon_separator_pos` 方法被声明为 `constexpr` 具有重要作用
2025-04-17 20:55:37
401
原创 【C++面试八股】基础篇--3、C++ static关键字完全解析:从语法到实现原理的面试宝典
static关键字在C++中具有双重生命周期控制特性:持久性:超出作用域依然存在限定性:将可见性限制在特定范围内
2025-04-17 20:31:31
1014
原创 【C++面试八股】基础篇--2、C++ const关键字完全指南:从基础到高阶面试宝典
const是C++中的类型修饰符,用于声明"常量",即一旦初始化后值不可改变的量。编译器会对const变量进行检查,阻止任何修改操作
2025-04-16 13:58:04
646
原创 【C++面试八股】基础篇--1、C++内存模型
C++内存模型是理解程序如何与计算机内存交互的核心概念。它定义了数据如何存储、访问以及不同部分之间的交互规则
2025-04-15 20:54:46
893
原创 【优秀三方库研读】【C++基础知识】odygrd/quill -- 从 ThreadContextManager 深度解析 Meyer’s Singleton(梅耶单例)模式
Meyer's Singleton 是 C++ 中最优雅、最安全的单例实现方式之一,由 C++ 大师 Scott Meyers 在《Effective C++》中提出。下面从原理到实现进行全面剖析
2025-04-15 17:31:35
1028
原创 【优秀三方库研读】odygrd/quill -- ThreadContext 类深度解析
ThreadContext 是 Quill 日志库中用于管理单个线程日志上下文的核心类,它封装了线程特定的日志资源和状态
2025-04-15 17:19:02
773
原创 《深入探索C++对象模型》指针赋值时的隐式偏移详解
在C++多重继承中,当派生类指针(或对象)被转换为非主基类(非第一个基类)的指针时,编译器会自动调整指针的地址,使其指向目标基类子对象在内存中的实际位置。这一过程称为隐式偏移调整
2025-04-11 16:22:46
627
原创 《深入探索C++对象模型》中“多重继承下的 Virtual Functions”小节“第二种情况“解释的延伸问题
《深入探索C++对象模型》中“多重继承下的 Virtual Functions”小节“第二种情况“解释的延伸问题
2025-04-11 16:11:31
964
原创 《深入探索C++对象模型》中“多重继承下的 Virtual Functions”小节“第二种情况“的详细解释--P166
通过一个 “指向 derived class” 的指针,调用第二个 base class 中一个继承而来的 virtual function
2025-04-11 15:22:52
757
原创 《深入探索C++对象模型》中的“4.5 inline Functions”知识点总结与扩展分析
《深入探索C++对象模型》中的“4.5 inline Functions”章节深入探讨了内联函数在C++底层对象模型中的实现机制、性能影响以及与编译器优化的交互。以下是对该章节的知识点总结和扩展分析,结合现代C++特性与编译器技术
2025-04-10 22:14:48
725
原创 【C++基础知识】将函数标记为 inline 一定就会内联吗?
在C++中,将函数标记为 inline 不保证函数一定会被内联。inline 关键字仅向编译器提供一个“建议”,最终的决策权在编译器自身。是否内联取决于编译器的优化策略、函数复杂度、调用上下文等因素
2025-04-10 22:02:50
1012
原创 【优秀三方库研读】【扩展】odygrd/quill --基于文件锁的 BackendWorkerLock 实现(仅支持 Unix/Linux 系统)
基于文件锁的 BackendWorkerLock 实现(仅支持 Unix/Linux 系统)
2025-04-10 17:52:50
603
原创 【优秀三方库研读】odygrd/quill -- BackendWorkerLock 类中 sem_xxx 作用以及为什么要用TA
在 Quill 的 BackendWorkerLock 类中,sem_xxx 系列函数(如 sem_open、sem_trywait、sem_unlink)主要用于 确保单进程内的唯一性,防止多模块静态链接导致的重复实例问题
2025-04-10 17:05:41
826
原创 【AI】RAG数据要求
要让 RAG(Retrieval-Augmented Generation)系统更高效、准确地学习和生成结果,灌入的数据需要满足以下要求
2025-04-10 16:44:01
800
创建一个多边形Active控件
2012-12-10
NIIT课堂笔记
2012-12-11
动态链接库运算器
2012-12-10
JAVA核心技术:卷Ⅰ基础知识
2013-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人