【发布时间】:2015-05-15 10:47:33
【问题描述】:
我打算使用std::string 作为通用数据缓冲区(而不是我自己的)。我需要将各种 POD 打包到其中,包括用户定义的结构,std::string 分配的内存缓冲区是否为此目的正确对齐?
如果C++标准中没有规定,那么libstdc++是什么情况?
主机 CPU 是 x86_64。
【问题讨论】:
-
为什么是
std::string而不是std::vector? -
我不关心容器只要内存缓冲区对齐,std::vector的缓冲区是否保证对齐?
-
顺便说一句,打包到容器中的数据大小不同,我需要自己解释缓冲区。
-
所以,std::basic_string
可能会满足 16 字节对齐(x86_64 CPU 需要),对吧?
标签: c++ memory-alignment