cpp
文章平均质量分 71
yolo_guo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
编译期断言技巧
muduo 源码中通过 char require_32_bit_integer_at_least[sizeof(int) >= sizeof(int32_t) ? 1 : -1]; 实现编译期断言:若 int 不足 32 位,数组长度为负,编译失败;否则合法。后续 (void)require_... 消除未使用变量警告。二者独立,前者验证类型大小,后者清理警告,体现 C++ 语言特性的巧妙运用。原创 2026-09-24 17:18:03 · 176 阅读 · 0 评论 -
关于gcc编译指定: -Wl,-rpath 的设置的一个要注意的点
<think>我们根据内容生成摘要。要求≤150字。核心问题:使用相对rpath导致从不同目录启动失败;解决方案:用$ORIGIN替代相对路径;解释$ORIGIN机制及转义。摘要需简洁。</think>摘要:程序通过相对rpath指定自带libstdc++库,但仅能从bin目录启动。从其他目录启动时,动态链接器按当前工作目录解析相对路径,导致找不到正确库。解决方法是用$ORIGIN(动态链接器内置变量,表示可执行文件所在目录)替换相对路径,如-Wl,-rpath,'$$ORIGIN/../libc++',其原创 2026-09-07 16:49:47 · 201 阅读 · 0 评论 -
顶层 const 和 底层 const
本文探讨了C++中顶层const与底层const的区别及其应用场景: 定义区分:顶层const修饰对象本身(如const int),底层const修饰指针/引用指向的对象(如const int*); 值传递问题:函数模板值传递会丢失顶层const和引用属性(如const int退化为int); 引用特性:引用本身隐含不可变性,其const只能是底层const(修饰被引对象),类似int& const的写法非法。通过代码示例直观展示了类型推导中的const丢失现象及引用const的底层本质。原创 2026-06-02 13:41:20 · 198 阅读 · 0 评论 -
转发引用(Forwarding Reference)
转发引用(Universal Reference)是C++11引入的特性,语法形式为T&&,能动态绑定左值或右值引用。其核心用途是实现完美转发,保持参数的原始类型和值类别。转发引用的特性依赖于类型推导和引用折叠规则:传入左值时推导为左值引用,传入右值时推导为右值引用。与右值引用的区别在于是否需要类型推导。结合std::forward可实现完美转发,避免不必要的拷贝或移动。引用折叠规则确保正确处理引用叠加的情况。注意:转发引用仅在模板类型推导时生效,const T&&不属于转发引用。该特性对C++泛型编程至关原创 2026-06-02 13:40:57 · 192 阅读 · 0 评论 -
cpp: std::back_inserter
std::back_inserter是C++标准库中的迭代器适配器,用于将输出操作转换为容器的push_back()调用,实现自动扩容。它解决了STL算法需要预先分配空间的问题,允许直接向空容器写入数据而无需手动resize。与普通迭代器不同,back_inserter会在每次赋值时自动扩展容器,使代码更简洁安全。类似功能的还有front_inserter和inserter,分别对应push_front()和指定位置插入。典型使用场景包括std::copy等需要输出迭代器的算法,特别适合不确定输出数据量的情原创 2026-04-21 15:45:06 · 237 阅读 · 0 评论 -
gcc 的 include 搜索顺序学习与验证
本文总结了GCC编译器头文件搜索顺序规则及相关选项。主要内容包括: 头文件搜索顺序规则: 双引号形式"...":当前目录→-iquote→-I→系统路径 尖括号形式<...>:-I→系统路径 常用搜索路径选项: -iquote:仅影响双引号形式 -I:影响所有包含形式 -isystem:系统头文件路径,抑制警告 -idirafter:后备搜索路径 环境变量影响: CPATH/C_INCLUDE_PATH/CPLUS_INCLUDE_PATH会在-isystem之后、系统路径之原创 2026-02-06 16:51:12 · 969 阅读 · 0 评论 -
零长度数组(Zero-Length Array)
零长度数组是C/C++中用于处理可变长度数据结构的特殊数组形式,常见语法为type name[0]或C99的type name[]。其核心特点包括不占用结构体空间、作为访问后续数据的符号标记、内存连续性和类型安全访问。主要应用于网络协议、文件格式等需要动态数据处理的场景。使用时需注意内存分配和释放需整体处理,且不同编译器支持程度可能不同。该技术通过结构体头部与数据的连续存储,实现了高效、类型安全的内存访问,特别适合协议封装和数据序列化需求。原创 2025-12-24 19:12:15 · 266 阅读 · 0 评论
分享