![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 85
Beyond_阿炳
C++er
展开
-
解析C++中的new、operator new、operator new[]和delete、operator delete、operator delete[](下)
注:以下测试均在VS2015下进行,其他编译器可能会有轻微差别。继续整理第二部分的内容。二、operator new/delete,以及其对应的数组版本new[]/delete[]。operator new优先调用全局重载的,所以::operator new(sizeof(COperatorTest))和operator new(sizeof(COper原创 2016-10-23 23:28:13 · 1959 阅读 · 0 评论 -
解析C++中的new、operator new、operator new[]和delete、operator delete、operator delete[](上)
最近在为一个Base项目实现需求,看到了大量的重载operator new/delete的轮子代码,而这方面之前并没有过多去关注,于是花了点时间,查一查资料,写了写Demo的代码,总算是对C++中new/delete这一家族的成员有了个了解。我们一一来看。1. new/delete以及对应的数组版本new[]/delete[]操作符(operator)。这两组可以看作是一家的,也是我们原创 2016-10-19 23:28:06 · 2331 阅读 · 0 评论 -
关于错误map/set iterator not incrementable
今天Debug代码时,碰到一个关于迭代器的崩溃错误(仅限Debug模式,release会被容错):map/set iterator not incrementable,相关代码如下(仅演示思路代码)://pretypedeftypedef std::multimap<int, int>::iterator multimapIterator;typedef std::pair<multimapIt原创 2016-11-07 23:54:44 · 6881 阅读 · 0 评论 -
C++中如何通过无成员变量的空类存储数据
最近看到一个比较有意思的存储数据的方法,使用了类,但是不是使用成员变量来存储,所以称为假类(Fake Class)模式,觉得思路挺有意思的,拿来分享一下。整体思路思路比较独特,我们都知道类中如果没有成员变量,没有虚函数,也不是虚拟继承而来的子类,只有非虚成员函数,那么该类可以认为是个空类,也就是类的大小为0(此类型的类在实际编译器中大小一般为1,是为了唯一标识对象之用)。既然没有成员变量又该如何存储原创 2016-11-09 00:28:43 · 743 阅读 · 0 评论 -
C++11 reference collapsing and perfect forward (引用折叠以及完美转发)
引用折叠原则和完美转发是有联系的,可以说后者是基于前者的某些特性实现的,具体来看一下。 要理解完美转发,需要了解两个知识点: 1. 引用折叠原则(Reference collapsing rules)。 2. 右值函数模版参数类型推导(Template argument deduction)先看引用折叠。所谓引用折叠或者崩塌(collapse)既为当引用指向引用的时候,这里的引用可以是左值也可原创 2017-01-04 22:54:18 · 2068 阅读 · 1 评论 -
C++11/14新特性快速概览
推荐几篇关于C++11/14新特性的文章,是一个系列的,可以快速了解那些新特性,并配有简单移动的代码示例: 1. 关于初始化列表的,例如使用形如{1, 2, 3, 4, 5}为以前并不支持此种初始化方法的结构初始化,例如:std::vector等等。 http://www.bogotobogo.com/cplusplus/C11/C11_initializer_list.php 2. 更统一的转载 2017-01-11 21:53:35 · 3527 阅读 · 0 评论