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

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

operator new を使用して割り当てられたオブジェクトがオーバーアラインされている場合は、このオブジェクトにアラインメントが指定されていない可能性があります。 オーバーアラインされた型について、operator newoperator 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
}