C++类模板的分离编译过去很多类模板都是整个类连同实现都放在一个头文件里,像STL库就是遵循这样的策略来实现类模板的。现在的标准正试图矫正这种局面。
在实现中又许多函数模板。这意味着每个函数都必须包含模板声明,并且在使用作用域操作符的时候,类的名称必须通过模板变量来实例化。
比如一个operator=的代码:template
const MemoryCell...
分类:
编程语言 时间:
2015-03-29 22:15:18
阅读次数:
189
之前对库的理解太肤浅(现在也仍很肤浅),导致走了挺多的弯路,现记录以备后查。 现在可以从Boost官网下载到最新的Boost源代码boost_1_57_0.tar.gz。 现将步骤记录如下: 1. 解压(非root)$tar -xf boost_1_57_0.tar.gz 2. 执行bo...
分类:
其他好文 时间:
2015-03-29 15:00:26
阅读次数:
171
C++智能指针主要是在普通指针的基础上封装了一层,使得使用者对指针的使用更加方便和放心,在使用的过程中不用担心指针因为释放问题而导致的异常。在C++11中,智能指针主要有三种:shared_ptr ptr, unique_ptr ptr, weak_ptr ptr;
shared_ptr ptr的初始化可以通过以下几种方式:
1)shared_ptr ptr = m...
分类:
编程语言 时间:
2015-03-29 01:54:51
阅读次数:
215
Firebreath工程目录各工程的功能和含意……文件目录Firebreath 根目录
build 编译目录
bin 编译出的插件的.dll或.so文件
boost 编译出的boost库
projects 项目的工程文件,如win下的.sln,.vcxproj
…
cmake cmake文件
doxygen...
分类:
其他好文 时间:
2015-03-28 23:15:49
阅读次数:
407
前言
boost::any类为我们提供了一个十分强大的功能:只要定义一个any对象,就可以保存任意类型的数据到这个对象中,而且还可以动态改变类型。这比我么在COM中使用到的VARIANT结构要强大多了,VARIANT只不过是用到了一个联合体,把可能出现的类型全部包括进去了,更像是一种穷举,而且还有一个标识来说明当前结构中保存的数据的类型。
如何使用any?
去boost官...
分类:
其他好文 时间:
2015-03-28 21:50:24
阅读次数:
182
何时我们需要智能指针?
资源所有权的共享
共享所有权是指两个或多个对象需要同时使用第三个对象的情况。这第三个对象应该如何(或者说何时)被释放?为了确保释放的时机是正确的,每个使用这个共享资源的对象必须互相知道对方,才能准确掌握资源的释放时间。从设计或维护的观点来看,这种耦合是不可行的。更好的方法是让这些资源所有者将资源的生存期管理责任委派给一个智能指针。当没有共享者存在时,智能指针就可以...
分类:
其他好文 时间:
2015-03-28 14:26:28
阅读次数:
170
何时我们需要智能指针?
资源所有权的共享
共享所有权是指两个或多个对象需要同时使用第三个对象的情况。这第三个对象应该如何(或者说何时)被释放?为了确保释放的时机是正确的,每个使用这个共享资源的对象必须互相知道对方,才能准确掌握资源的释放时间。从设计或维护的观点来看,这种耦合是不可行的。更好的方法是让这些资源所有者将资源的生存期管理责任委派给一个智能指针。当没有共享者存在时,智能指针就可以...
分类:
其他好文 时间:
2015-03-28 14:24:17
阅读次数:
121
智能指针在C++11的标准中已经存在了,分别是unique_ptr,shared_ptr,weak_ptr,其中最常用的应该是share_ptr,它采用引用计数的方式管理内存,当引用计数为0的时候,自动释放内存,但是由于shared_ptr考虑到了线程安全,所以会存在有较大的性能损失。所以在实时游戏开发中,往往不会用到shared_ptr。
在cocos2d-x3.2以及更高的版本中,cocos...
分类:
其他好文 时间:
2015-03-28 13:04:33
阅读次数:
750
1. 获取boost安装包 a. 使用命令下载. wget -O boost_1_54_0.tar.bz2 http://downloads.sourceforge.net/project/boost/boost/1.54.0/boost_1_54_0.tar.bz2?r=http%3A%2F%2....
分类:
系统相关 时间:
2015-03-28 11:17:58
阅读次数:
169
最后这三个条款属于杂项。条款53告诉我们不要忽略警告,虽然程序可以编译通过,但是要搞明白警告信息。条款54和条款55讲解C++的库,一个是TR1文档,一个是Boost。现在C++11标准已定,且有编译器支持。Boost库一些内容已经标准化到C++11,与其学习Boost,不如熟悉C++11中的Boost库内容。...
分类:
编程语言 时间:
2015-03-27 23:57:56
阅读次数:
465