最近发现了一个奇怪的编译参数-fno-strict-aliasing,好奇之下做了一点研究; 重点参考Understanding C/C++ Strict Aliasing; 所谓的aliasing就是多个变量指向同一块内存,变量之间互为别名; strict-aliasing是一种 ...
想讲讲C STL中各种算法都用到的一个概念,Strict Weak Ordering。 举个例子,来说明为什么写C 要知道这个东西。 假如你定义了一个类型MyType,而且这个类型是可比的 comparable,定义了 lt 这个operator : 现在一个vector里装着很多这种类型的对象,你想对这个 vector 排序: 之所以能用std::sort 来对任意类型排序,而不用给std::s ...
2016-06-05 18:20 1 3716 推荐指数:
最近发现了一个奇怪的编译参数-fno-strict-aliasing,好奇之下做了一点研究; 重点参考Understanding C/C++ Strict Aliasing; 所谓的aliasing就是多个变量指向同一块内存,变量之间互为别名; strict-aliasing是一种 ...
智能指针 weak_ptr 使用 weak_ptr用途: 1,解决空悬指针问题 2,解决循环引用问题 weak_ptr特点:没有*操作和->操作 weak_ptr是不控制所指对象生存周期的智能指针,它指向由一个shared_ptr管理的对象。将一个weak_ptr绑定到一个 ...
main.cpp g_test.h g_test.cpp 输出结果是调用到g_test.cpp中的testFunc函数中 如果g_test.cpp中没有实现,则调用的__attribute__((weak))的函数 ...
1、为什么需要weak_ptr? 在正式介绍weak_ptr之前,我们先来回忆一下shared_ptr的一些知识。我们知道shared_ptr是采用引用计数的智能指针,多个shared_ptr实例可以指向同一个动态对象,并维护了一个共享的引用计数器。对于引用计数法实现的计数,总是避免 ...
C++智能指针 weak_ptr weak_ptr 是一种不控制对象生命周期的智能指针, 它指向一个 shared_ptr 管理的对象. 进行该对象的内存管理的是那个强引用的 shared_ptr. weak_ptr只是提供了对管理对象的一个访问手段. weak_ptr 设计的目的 ...
/赋值对象.(C++如何禁止拷贝对象?详情看第三篇文章) 4.shared_ptr,通过"引用计数 ...
先看一个例子:Stark和Targaryen家族你中有我,我中有你。我们设计以下类企图避免内存泄漏,使得析构函数都能调用到: #include<iostream> #includ ...
(所有示例的运行,将#序号所在main()函数去掉序号即可,参考[url]http://www.codeguru.com/cpp/cpp/cpp_mfc/stl/article.php/c15361/[/url])#1 #2get() 返回对象指针use_count() 返回对象的引用 ...