Share via


Advertencia del compilador (nivel 1) C4537

"object": "operator" aplicado al tipo no UDT

Comentarios

Se pasó una referencia cuando se esperaba un objeto (tipo definido por el usuario). Una referencia no es un objeto, pero el código del ensamblador insertado no es capaz de diferenciarlos. El compilador genera código como si el objeto fuera una instancia.

Ejemplo

El ejemplo siguiente genera el error C4537 y muestra cómo corregirlo:

// 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
    */
}