Compartilhar via


Aviso do Compilador (nível 1) C4537

'object' : 'operator' aplicado ao tipo não UDT

Comentários

Uma referência foi passada onde um objeto (tipo definido pelo usuário) era esperado. Uma referência não é um objeto, mas o código montador embutido não é capaz de fazer a distinção. O compilador gera código como se o objeto fosse uma instância.

Exemplo

O exemplo a seguir gera C4537 e mostra como corrigi-lo:

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