パディングは C++ 標準では指定されていません。コンパイラと CPU に依存します。パディングを手動で回避すると、パフォーマンスの問題や悪化につながる可能性があります。したがって、パディングの内容を制御することは、セキュリティなど、パディングによって引き起こされる望ましくない副作用を最小限に抑えるためのより実行可能な方法のようです。
私がやりたいことは、整列されたPODにゼロのパディングを持たせることです。例: テンプレート化された関数template<typename T> T zero_padding(T const & pod);
しかし、問題があります。
- C標準では何も保証されていないため、直接
struct
コピーすると、パディングで何が行われるかわかりません。 memset
構造体を作成してから、メンバーごとのコピーを実行できます。しかし、それは構造固有のようで、テンプレートでは簡単に実行できません。
だから私はこれを行う簡単な方法を見つけることができないようです.