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