06-18 深入探究C++虚函数表 以下讨论均基于Windows x64平台MSVC v14.42.34433环境。 关于虚函数表 众所周知,虚函数主要被用来实现多态机制,即通过基类指针或引用访问虚函数时,被访问的必须是该指针或引用所指对象的动态类型中该函数的最终重写版本。简而言之,运行时调用哪个函数,取决于对象的真实类型,而不是指针 93 1 0
01-15 将Keil工程移植为CMake工程 前期准备 一个Keil工程 根据主机平台和目标平台选择并安装交叉编译工具链,目标平台为ARM的直接官网下载:Arm GNU 工具链下载 – Arm Developer。如本文选择 安装CMake、Ninja(非必须,因为MinGW支持Unix m 1220 0 0
01-06 C++数组退化问题 #include <iostream> #include <type_traits> template<typename T> bool foo(T *param) { return std::is_same<T *, char *>::value; } int main() { 56 0 0
12-20 记一次开启编译优化选项后程序无法正常运行的调试过程 在开发的时候一直使用的Debug构建类型方便调试,今天换成Release突然发现程序不能运行了,屏幕都不亮了,于是尝试找出到底是哪里的代码导致的问题,先定位一下是哪个文件吧。保持Release构建类型不变,在CMakeLists.txt中将部分文件的编译优化关闭,逐步排查。比如我这里把Hardwar 207 2 0
10-20 重新认识C++的inline关键字 前言 一些教程和文章里对C++中的inline关键字的说明是这样的:用来建议编译器对被修饰的函数进行内联展开优化。包括我自己也在初学C++的很长一段时间里也是这么认为的,这大概是从C语言转到C++带来的“遗留问题”。而实际上自C++98起,inline关键字的作用就已经从“优先内联”变成了“允许多次 77 1 0
09-25 笔记 C++ 使用现代化C++实现线程安全的阻塞队列 完整代码 template<typename T> class BlockingQueue { const size_t capacity_; std::queue<T> queue_; std::mutex mutex_; std::condition_variab 58 0 0
04-14 笔记 C++ 20240414-C++-Concepts title: C++-Concepts date: 2024/04/14 tags: C++ categories: 笔记 C++ Concepts 概念(Concepts)是C++20中引入的一项特性,它们是对模板参数的约束,用于指定模板参数必须满足的接口(例如,一组必需的函数、类型、操作符等)和 30 0 0