Поделиться через


Предупреждение компилятора (уровень 1) C4537

Object: "operator" применяется к типу, отличному от определяемого пользователем типа

Замечания

Ссылка была передана, где ожидался объект (определяемый пользователем тип). Ссылка не является объектом, но встроенный код сборщика не может различаться. Компилятор создает код, как будто объект был экземпляром.

Пример

В следующем примере создается C4537 и показано, как исправить его:

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