Upozornění kompilátoru (úroveň 1) C4383
"instance_dereference_operator" : význam dereferencování popisovače se může změnit, pokud existuje operátor "operátor" definovaný uživatelem; napište operátor jako statickou funkci, která má být explicitní pro operand.
Když do spravovaného typu přidáte přepsání uživatelem definované instance operátoru dereference, můžete potenciálně přepsat schopnost operátoru dereference typu vrátit objekt popisovače. Zvažte vytvoření statického operátoru dereference definované uživatelem.
Další informace naleznete v tématu Popisovač k operátoru objektu (^) a sledovací referenční operátor.
Operátor instance navíc není dostupný pro jiné kompilátory jazyka prostřednictvím odkazovaných metadat. Další informace naleznete v tématu Uživatelem definované operátory (C++/CLI).
Příklad
Následující ukázka vygeneruje 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;
}
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro