Compiler Warning (level 4) C4764
Tidak dapat meratakan objek tangkapan ke lebih dari 16 byte
Penyelarasan yang lebih besar dari 16 ditentukan, tetapi pada beberapa platform, jika fungsi melemparkan pengecualian, tumpukan akan memaksa penyelarasan tidak lebih besar dari 16.
Contoh
Sampel berikut menghasilkan C4764:
// C4764.cpp
// compile with: /W4 /EHsc
// processor: x64 IPF
#include <stdio.h>
class A
{
public:
int x;
};
typedef __declspec(align(32)) A ALIGNEDA;
int main()
{
ALIGNEDA a;
try
{
a.x = 15;
throw a;
}
catch (ALIGNEDA b) // can't align b to > 16 bytes
{
printf_s("%d\n", b.x);
}
} // C4764