读书人

求大人帮小弟我看一下一个怪异的new写

发布时间: 2012-02-04 15:43:08 作者: rapoo

求大人帮我看一下一个怪异的new写法
template <typename _Ty >
struct ul_creator <_Ty, typename gp::check_type_helper <_Ty, typename _Ty::leader_tag >::type >
{
void construct(char* pmem, uvector_type* pvector)const
{
(new (pmem) _Ty)- >vector_ptr = pvector;
};

上面是代码片段。。。
注意一下最好一个new的用法,pmem应该是传入的一个分配好的内存块。_Ty应该是模板参数
我不知道最后那个new是什么意思,求大人指教。。呵呵
ps:这个写法绝对正确。。vc2005下编译通过了

[解决办法]
placement new

在pmem指向的内存里构造一个_Ty对象
[解决办法]
(new (pmem) _Ty) 是replacement new,在已分配好的空间上,只执行构造函数,就是不用向系统申请内存。

读书人网 >C++

热点推荐