这是smooth_L1_loss_layer.cu的前向传播部分 blob的主要变量: blob只是一个基本的数据结构,因此内部的变量相对较少,首先是data_指针,指针类型是shared_ptr,属于boost库的一个智能指针,这一部分主要用来申请内存存储data,data主要是正向传播的时候用的 ...
分类:
其他好文 时间:
2017-06-27 19:55:48
阅读次数:
1443
scoped_ptr的所有权更加严格,不允许转让,对其赋值和拷贝都是不合法行为,因而显得更轻巧和快捷。 scoped_ptr重载了operator*()和operator->()解引用操作符*和箭头操作符->,因此可以把scoped_ptr对象如同指针一样使用。如果scoped_ptr保存的空指针, ...
分类:
其他好文 时间:
2017-06-27 18:42:05
阅读次数:
133
?? 1、引用内部函数绑定机制 #include<iostream> #include<functional> usingnamespacestd; usingnamespacestd::placeholders; //仿函数。创建一个函数指针,引用一个结构体内部或者一个类内部的共同拥有函数 str ...
分类:
编程语言 时间:
2017-06-26 22:43:21
阅读次数:
222
1. SharedPointer的设计 (1)使用类模板,通过计数机制标识堆内存 (2)堆内存被指向时,refCount++ (3)指针被置空时:refCount— (4)当refCount == 0时,释放堆内存 2. 计数机制原理剖析 3. SharedPointer类的声明 4. 智能指针使用 ...
分类:
其他好文 时间:
2017-06-25 16:54:30
阅读次数:
180
智能指针概述: 智能指针用来管理动态对象。其行为类似于常规指针,重要的差别是:它负责自己主动释放所指向的对象。 C++ 11标准库提供两种智能指针:shared_ptr、unique_ptr 差别是:shared_ptr同意多个指针指向同一个对象;unique_ptr则独占所指向的对象。 另外。另一 ...
分类:
编程语言 时间:
2017-06-24 18:31:24
阅读次数:
174
shared_ptr 这里有一个你在标准库中找不到的—引用数智能指针。大部分人都应当有过使用智能指针的经历,并且已经有很多关于引用数的文章。最重要的一个细节是引用数是如何被执行的—插入,意思是说你将引用计数的功能添加给类,或者是非插入,意思是说你不这样做。Boost shared_ptr是非插入类型 ...
分类:
编程语言 时间:
2017-06-22 13:20:56
阅读次数:
172
C++ Code 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 ...
分类:
编程语言 时间:
2017-06-07 17:29:57
阅读次数:
210
Smart pointer line 58之后smart pointer里的计数已经是0,所以会真正释放它引用的对象,调用被引用对象的析构函数。如果继续用指针访问,会出现如下图的内存访问异常。所以说如果选择了用智能指针,就不要再试图用其他方式再去访问对象了。 ...
分类:
其他好文 时间:
2017-06-04 18:37:08
阅读次数:
241
auto_ptr是C++标准库提供的类模板,头文件<memory>,auto_ptr对象通过初始化指向由new创建的动态内存,它是这块内存的拥有者,一块内存不能同一时候被分给两个拥有者。当auto_ptr对象生命周期结束时,其析构函数会将auto_ptr对象拥有的动态内存自己主动释放。即使发生异常, ...
分类:
编程语言 时间:
2017-06-03 14:04:46
阅读次数:
228
一. 概述 由于最近比较多的接触到这块的代码,因此有必要做个总结。 众所周知,C/C++中的堆内存分配和释放的方式主要是: malloc/free 以及 new/delete 等,但这些方式对程序员要求较高,一不小心很可能就会导致内存泄漏而不自知。 请看下面的代码: 如果 func 函数能顺利执行到 ...
分类:
编程语言 时间:
2017-05-31 10:35:32
阅读次数:
192