Partage via


Avertissement du compilateur (niveau 1) C4537

'object' : 'operator' appliqué au type non-UDT

Notes

Une référence a été passée où un objet (type défini par l’utilisateur) était attendu. Une référence n’est pas un objet, mais le code assembleur inline n’est pas en mesure de faire la distinction. Le compilateur génère du code comme si l’objet était une instance.

Exemple

L’exemple suivant génère l’erreur C4537 et montre comment la corriger :

// C4537.cpp
// compile with: /W1 /c
// processor: x86
struct S {
    int member;
};

void f1(S &s) {
    __asm mov eax, s.member;   // C4537
    // try the following code instead
    // or, make the declaration "void f1(S s)"
    /*
    mov eax, s
    mov eax, [eax]s.member
    */
}