Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
WinRT- of CLR-operator 'operator', heeft een parameter door verwijzing doorgegeven. WinRT- of CLR-operator 'operator' heeft verschillende semantiek van C++-operator 'operator', wilde u een waarde doorgeven?
Opmerkingen
U hebt een waarde doorgegeven aan een door de gebruiker gedefinieerde Windows Runtime- of CLR-operator. Als de waarde in de functie wordt gewijzigd, moet u er rekening mee houden dat de geretourneerde waarde na de functieaanroep de retourwaarde van de functie wordt toegewezen. In standaard C++wordt de gewijzigde waarde weergegeven na de functieaanroep.
Example
In het volgende voorbeeld wordt C4460 gegenereerd en ziet u hoe u dit kunt oplossen.
// C4460.cpp
// compile with: /W4 /clr
#include <stdio.h>
public value struct V {
static V operator ++(V& me) { // C4460
// try the following line instead
// static V operator ++(V me) {
printf_s(__FUNCSIG__ " called\n");
V tmp = me;
me.m_i++;
return tmp;
}
int m_i;
};
int main() {
V v;
v.m_i = 0;
printf_s("%d\n", v.m_i); // Should print 0
v++; // Translates to "v = V::operator ++(v)"
printf_s("%d\n", v.m_i); // will print 0, hence the warning
}