コンパイラの警告 (レベル 1) C4537
'object': UDT 以外の型に適用された '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
*/
}