Avertissement du compilateur (niveau 4) C4764
Impossible d'aligner les objets de bloc catch sur plus de 16 octets
Un alignement supérieur à 16 a été spécifié. Toutefois, sur certaines plates-formes, si la fonction lève une exception, la pile force un alignement qui n’est pas supérieur à 16.
Exemple
L’exemple suivant génère l’avertissement 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