Avviso del compilatore (livello 1) C4383
'instance_dereference_operator': il significato della dereferenziazione di un handle può cambiare, quando esiste un operatore 'operator' definito dall'utente; scrivere l'operatore come funzione statica per essere esplicito sull'operando
Quando si aggiunge un override dell'istanza definita dall'utente dell'operatore di dereferenziazione in un tipo gestito, è possibile eseguire l'override della capacità dell'operatore di dereferenziazione del tipo di restituire l'oggetto dell'handle. Prendere in considerazione la scrittura di un operatore di dereferenziazione statico definito dall'utente.
Per altre informazioni, vedere Handle to Object Operator (^) e Tracking Reference Operator.For more information, see Handle to Object Operator (^) and Tracking Reference Operator.
Inoltre, un operatore di istanza non è disponibile per altri compilatori del linguaggio tramite metadati di riferimento. Per altre informazioni, vedere Operatori definiti dall'utente (C++/CLI).
Esempio
L'esempio seguente genera l'errore C4383.
// C4383.cpp
// compile with: /clr /W1
ref struct S {
int operator*() { return 0; } // C4383
};
ref struct T {
static int operator*(T%) { return 0; }
};
int main() {
S s;
S^ pS = %s;
T t;
T^ pT = %t;
T% rT = *pT;
}