Problem about align
LazyWolfLin opened this issue · 3 comments
LazyWolfLin commented
我在阅读时看到这段注释,这里的意思是否是在处理对齐要求大于 16 的对象时,gcc 会嵌入对齐指令,所以尽量使用 memcpy 而非 new?
Lines 480 to 482 in d34990c
但是我在 gcc 9.2 上观察到传递给 new 非对齐的地址,new 返回的值并没有偏移到对齐的位置上。随后我查看 cppreference,发现 placement new 返回的是给定的指针。
所以,这里指的是什么情况,是否是我理解错了场景?
MengRao commented
这里的placement new是为了调用复制构造函数,但不会分配内存,所以返回值是没有意义的。
LazyWolfLin commented
这里的placement new是为了调用复制构造函数,但不会分配内存,所以返回值是没有意义的。
我知道这里是为了调用复制构造,我疑惑的是注释里提到的嵌入对齐指令这个情况。因为我没能复现这个场景。
MengRao commented
可能出现,并不是绝对,和对象定义有关。