gpt4 book ai didi

c++ - 调用 placement new 时,将指针强制转换为 "void*"有什么影响吗?

转载 作者:可可西里 更新时间:2023-11-01 15:53:54 25 4
gpt4 key购买 nike

我正在审查自定义容器的代码,它的某些部分创建了如下元素:

::new( (void*)&buffer[index] ) CStoredType( other );

有些人是这样的:

::new( &buffer[index] ) CStoredType( other );

所以两者都使用 placement new 来调用复制构造函数来通过复制其他元素来创建元素,但在一种情况下,指向新元素存储的指针按原样传递,而在另一种情况下,它被转换为 void*

转换为 void* 有什么影响吗?

最佳答案

是的,您可以为非空指针重载 operator new。强制转换确保采用 void 指针重载。

例如

void* operator new(size_t s, env * e);

关于c++ - 调用 placement new 时,将指针强制转换为 "void*"有什么影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8443738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com