C++ 标准中没有指定填充。它取决于编译器和 CPU。手动避免填充可能会导致性能问题或更糟。因此,控制填充中的内容似乎是一种更可行的方法,可以最大限度地减少填充引起的不良副作用,例如安全性。
我想要做的是在对齐的 POD 中填充零。例如模板化函数template<typename T> T zero_padding(T const & pod);
但也有问题。
- 如果我们直接
struct
复制,我们不知道填充会做什么,因为 C 标准不保证任何事情。 - 我们可以
memset
构建结构,然后按成员进行复制。但它似乎是特定于结构的,对于模板来说并不容易。
所以我似乎找不到一个简单的方法来做到这一点。