销毁然后使用相同的变量构造新对象
有时重新开始是件好事。在 C++ 中,我可以采用以下简单的操作: { T x(31, Blue, false); x.~T(); // enough with the old x ::new (&x) T(22, Brown,…
数组放置新需要缓冲区中未指定的开销?
C++11 Feb 草案的 5.3.4 [expr.new] 给出了示例: new(2,f) T[5] 导致调用 operator new[](sizeof(T)*5+y,2,f) . 这里,x和y是非负未指定值,表示数组…
是否将指针强制转换为“void*”?调用placement new 时有什么影响吗?
我正在审查自定义容器的代码,其中的某些部分创建如下所示的元素: ::new( (void*)&buffer[index] ) CStoredType( other ); 部分这样做: ::new( &buf…
删除这个并放置新的虚拟派生类
class base { int a; protected: template class derived; public: base() {} virtual ~base() {} virtual void func() {} static base* maker(); }; …
使用 new、malloc 和 free 布局
基本上,我有一个使用 malloc 分配的内存块,我想开始使用placement new 将对象放入其中。我知道当我删除这些对象时,必须显式调用它们的析构函数,但…
放置新的中断常量和引用?
根据我对 href="https://stackoverflow.com/questions/7580635/how-to-copy-or-swap-objects-of-a-type-that-contains-members-that-are-referenc…
C++ 中的放置新运算符是什么? java有吗?
我听说过 C++ 的放置新运算符。我很困惑它是什么。不过,我可以在 stackoverflow 中的一个问题下看到它可以在哪里使用。我也很困惑java中是否有这个。…
我可以在 operator= 中使用放置 new(this) 吗?
背景: 我有一个包含许多变量的复杂类。我有一个健全且经过测试的复制构造函数: Applepie::Applepie( const Applepie ©) : m_crust(copy.m_crust…
我可以对用新放置分配的指针调用delete吗?
我们可以对分配有placement new的指针调用delete吗?如果没有那为什么?请详细解释一下。 我知道没有放置删除。但我想知道为什么只是删除操作者不能删…
如何为具有内部放置 new 的类实现安全复制构造函数(使用 std::string)
这是我的代码: struct RS_Token { char id; char cleanup; unsigned char array[sizeof (std::string) > sizeof (double) ? sizeof (std::string) : …