c++ - 如何使用 placement new 确定对象是否已放置

标签 c++ placement-new

使用 placement new 语法,我应该能够做这样的事情:

char *buffer  = new char[sizeof(MyClass)]; //pre-allocated buffer
MyClass *my_class = new (buffer) MyClass; //put da class there 

现在假设我只做第一行,而不做第二行。有没有一种方法可以在代码中确定是否已正确分配缓冲区,但那里尚未实例化 MyClass 类型的对象?

最佳答案

该语言没有提供任何内置机制来提供该信息,至少我所知道的没有。您必须添加自己的簿记代码来跟踪此类信息。

关于c++ - 如何使用 placement new 确定对象是否已放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35320468/

相关文章:

c++ - C++ 中的 Memory Tracker 在 vector 初始化期间进入无限循环

c++ - 如何将 C++ 引用传递给 C 函数的指针参数?

c++ - 为什么内联函数看不到作用域内部?

c++ - 放置新的以获得动态大小

c++ - 为什么我应该使用新的展示位置?

c++ - 在 Visual C++ 2010 中执行前先执行 bat 脚本

c++ - GLUT 和 C++ 类

c++ - placement-new 上的析构函数

c++ - operator new(n) 与 new unsigned char[n] 用于放置 new

c++ - 使用 operator new 和 placement new 创建非默认可构造对象的动态数组