最近看了boost::any类源码,其实现主要依赖typeid操作符。很好奇这样实现的时间和空间开销有多大,决定探一下究竟。VS2008附带的type_info类只有头文件,没有源文件,声明如下:[cpp]view plaincopyclasstype_info{public:virtual~typ... Read More
posted @ 2015-11-30 05:46
findumars
Views(2560)
Comments(0)
Diggs(0)
dynamic_cast是一个操作符,其用法不再赘述。查看汇编码可以发现实际调用的是这个函数__RTDynamicCast,其内部实现如下:rtti.h:[cpp]view plaincopy#pragmaonceextern"C"{#include};typedefconsttype_infoTy... Read More
posted @ 2015-11-30 05:45
findumars
Views(3738)
Comments(0)
Diggs(1)
下面这段代码会输出什么?[cpp]view plaincopyconstchar*p=string("hellotemprarystring").c_str();coutclassFoo{public:Foo(){_p=newchar[32];}~Foo(){delete_p;}private:ch... Read More
posted @ 2015-11-30 05:43
findumars
Views(982)
Comments(0)
Diggs(0)
以下是一段简单的C代码,malloc和free到底做了什么?[cpp]view plaincopyintmain(){char*p=(char*)malloc(32);free(p);return0;}malloc和free的debug和release版本实现各不相同,而且相差很大。Debug版本m... Read More
posted @ 2015-11-30 05:31
findumars
Views(1394)
Comments(0)
Diggs(0)

浙公网安备 33010602011771号