腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
搜索
关闭
文章
问答
(19)
视频
开发者手册
清单
用户
专栏
沙龙
全部问答
原创问答
Stack Exchange问答
更多筛选
回答情况:
全部
有回答
回答已采纳
提问时间:
不限
一周内
一月内
三月内
一年内
问题标签:
未找到与 相关的标签
筛选
重置
5
回答
placement-new
会引入序列点吗?
考虑下面这行代码:如果构造函数T()抛出异常,是否可以保证p已经被递增?
浏览 0
提问于2011-06-28
得票数 12
回答已采纳
1
回答
为什么安置-新调用标准的安置操作符新功能?
使用指向预分配内存的指针的单个参数的
placement-new
表达式将在该内存中构造一个类型为T的对象。为什么它调用标准的
placement-new
运算符void* operator new ( std::size_t count, void* ptr );,因为后者什么也不做,只返回指针参数?为什么
placement-new
表达式不直接在它作为指针获得的内存地址上构造一个对象,而不是调用一个什么都不做并且只返回指针参数的运算符函数?
浏览 2
修改于2021-06-16
得票数 0
2
回答
内存重用实际意味着什么?
. = this; // OK, this points to valid memory也就是说,在//1中,我们首先调用重用内存的
placement-new
,然后再构造一个新的对象。对吗?
浏览 3
修改于2019-08-14
得票数 0
回答已采纳
3
回答
C++,将临时对象添加到列表中,而不需要动态内存分配。
一个解决方案,但不是很漂亮的风格是这样的:// using
placement-new
ThirdParty tp; tp.add(new (myalloc(sizeof(Derived))) Derived("John")); // using
placement-new
浏览 8
提问于2016-11-09
得票数 0
回答已采纳
4
回答
在新位置获得的指针上使用操作符delete的合法性
};X* p = new (raw) X(); // according to the standard, the RHS is a
placement-new
;X* p = new (raw) X[1]; // according to the standard, the RHS is a
placement-new
浏览 6
修改于2017-05-23
得票数 12
2
回答
在C++和/或克隆模式中的多态原位重建
); this->~A(); construct(); // this should magically use
placement-new
浏览 4
修改于2014-07-15
得票数 2
回答已采纳
2
回答
如何初始化std::array<T,2>,其中T是不可复制和非默认可构造的?
如果std::array<T, 2>本质上不工作,我还能做什么,而不是求助于额外的间接层或手动内存管理技术,如
placement-new
?
浏览 8
修改于2016-07-29
得票数 7
1
回答
C++自定义内存管理使用brk()系统调用分配内存?
我用了
placement-new
char* buf = new char [sizeof(X) * num_objs]; //Pre-create
浏览 0
提问于2014-01-01
得票数 1
回答已采纳
2
回答
从std::aligned_union_t获取指向包含的对象的指针
我想使用
placement-new
在std::aligned_union_t中构造一个任意类型的对象。一旦构造成功,我希望能够取回指向构造的对象的指针,而无需单独存储它。
浏览 0
提问于2017-12-30
得票数 4
1
回答
在不违反严格别名规则的情况下访问进程间共享内存中的对象
通常,我会通过调用
placement-new
将其传递给编译器,但在这种情况下,它会在现有对象上进行初始化(我认为这也是未定义的行为)。 我如何才能在不违反严格的别名规则的情况下访问这个对象?
浏览 18
提问于2019-04-27
得票数 1
1
回答
要求返回的类型,可能有一些成员的功能,SFINAE在功能的翻译单位?
. void constructAt(std::unique_ptr<X>* ptr) { new (&ptr
浏览 5
提问于2022-04-07
得票数 1
回答已采纳
1
回答
C++布局新、继承和析构函数
allocator; // NB: Can't do `delete object` here because of
placement-new
浏览 3
提问于2015-05-20
得票数 4
回答已采纳
2
回答
通过放置新对象转移对象所有权
int foo_;不幸的是,当我将此模式与使用
placement-new
的库一起使用时,我得到了一个编译器错误: .
浏览 3
修改于2011-05-17
得票数 0
回答已采纳
1
回答
C++:我可以使用带有新位置的向量吗?
- sizeof( long );// Will be called with a
placement-new
浏览 2
修改于2013-07-11
得票数 2
1
回答
为包括对齐在内的多个缓冲区分配内存
. // Now we can allocate a buffer of size offsets.back() with alignment alignof(char) and
placement-new
浏览 6
提问于2020-09-29
得票数 1
1
回答
利用工会来防止破坏?
#include <new> struct S0 { ~S0() = delete; static S0&
浏览 5
修改于2022-01-19
得票数 4
回答已采纳
1
回答
const std::vector<T> w/o UB的修改内容
而且,由于它将是一个完整的const对象,因此即使在没有UB和/或编译器抱怨的情况下也不能使用
placement-new
对其进行修改。
浏览 6
修改于2022-09-04
得票数 7
3
回答
用闭包类型初始化的g++:std::函数总是使用堆分配吗?
_M_access<_Functor*>() = new _Functor(std::move(__f)); }例如,如果_Local_storage()为true_type,则调用
placement-new
浏览 1
修改于2015-10-27
得票数 10
2
回答
通过在此指针上放置新位置重新初始化对象的未定义行为
因为我认为由于它的预分配,std::vector必须依赖于
placement-new
和显式的ctors。第4点要求它是派生最多的类型,而Base显然不是。
浏览 1
修改于2018-02-09
得票数 7
领券