调用空智能指针对象的函数,Windows及Linux行为解析
先看结论:Windows下可以调用空智能指针对象的函数,但是函数中访问目标对象的成员变量会崩溃,this指针为nullptr;Linux下Debug版本及不开优化版本也能正常运行,-O0以上优化版本
调用空智能指针对象的函数,Windows及Linux行为解析
先看结论:Windows下可以调用空智能指针对象的函数,但是函数中访问目标对象的成员变量会崩溃,this指针为nullptr;Linux下Debug版本及不开优化版本也能正常运行,-O0以上优化版本
前言本文总结了STL中的序列式容器array的用法及注意事项。array的出现代表着C++的代码更进一步现代化,就像std::string的出现代替了c风格字符串并且能和STL配合工作一样,array的
可以使用std标准函数 offsetof(),在stddef h头文件中,实现原理如下(模拟系统的实现): define MY_STRUCT_OFFSET(s, m) ((size_t)(& ((s*)0)->m ))原理如下:1、0即空指
/usr/lib64/gcc/ ... /bin/ld: cannot find -lxxx 踩坑记录
编译一个模块时依赖xxx模块,在确认依赖路径及依赖xxx so文件名均正确的前提下,编译仍然报错: usr lib64 gcc bin ld: cannot find -lxxx最后才发现,xxx目录生成的目
Reference to ' ' is ambiguous:符号定义重复
Reference to & 39; & 39; is ambiguous 编译错误:从字面上看就是引用某个符号(变量、类名、函数等)的定义不明确,重复。以下为可能的原因及解决方法:1、自定义的变量名
use of deleted function std::unique_ptr 编译错误剖析,你可能少了一个std::move
编译报错日志如下: usr include c++ 4 7 bits stl_construct h:77:7: error: use of deleted function & 39;std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_p
Eclipse C++启用pretty printing,更直观显示stl变量内容
使用Eclipse CDT调试stl变量时,我们关注的变量内容往往需要查看好几层的变量后才能看到,非常的不直观。这里提供一种更优雅地打印stl变量的方法,核心原理是利用python对stl变量
hidden symbol ... is referenced by DSO 剖析
DSO是动态共享对象,Linux报hidden symbol is referenced by DSO错误的原因是符号(函数)未导出导致的,添加导出申明即可解决:__attribute__ ((visibility("default"))
分享一个Eclipse CDT黑色主题配置文件,已深度优化配色
分享一个Eclipse CDT黑色主题配置文件,已深度优化配色,效果如下:epf 配置文件:点此下载导入方法:Eclipse -> Project -> Preferences -> Import
解决Eclipse CDT Dark主题Editor bgcolor设置无效被覆盖的问题
Eclipse CDT切换Dark黑色主题后,自定义设置代码区背景颜色后发现背景色永远都是 2f2f2f,用户设置的颜色无效,Google了以下发现,代码区的颜色是写死在eclipse主题的css里面的,
volatile防范冲突,提高效率。降低CPU Cache Line锁冲突的几率。不同于普通变量在于:CPU缓存中有值的话,也得从内存中重新加载到缓存(普通变量不会);即认为寄存器值不可靠,
thread.join()与.detach()方法在资源释放方面的考量
thread join()等待线程结束,释放线程占用资源。 detach()让线程自己结束并释放占用资源。注意:不能两个函数都不调,这样会导致线程虽然结束但占用的资源不释放、系统资源耗尽的问题。
char强转int时,发现在x86平台下是按照有符号处理的,但是在ARM32下被当成了无符号导致问题,ARM64正常有符号。经调查,在PC上,char类型默认为signed-char,但是在一些嵌入式设备