コンパイラの警告 (レベル 3) C4316

ヒープで割り当てられているオブジェクトが、この型にアラインされていない可能性があります。

operator new を使用して割り当てられたオブジェクトがオーバーアラインされている場合は、このオブジェクトにアラインメントが指定されていない可能性があります。 オーバーアラインされた型に対して演算子 newおよび operator delete をオーバーライドして、アラインされた割り当てルーチン (たとえば、 や _aligned_malloc を使用 _aligned_free。 次の例では C4316 が生成されます。

// C4316.cpp
// Test: cl /W3 /c C4316.cpp

__declspec(align(32)) struct S {}; // C4324

int main() {
    new S; // C4316
}