Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"operator": returtypen för kombinerade delegater är inte "void"; det returnerade värdet är odefinierat
Anmärkningar
Två delegater kombinerades och returvärdet är inte null. Om två ombud med icke-void-returvärden kombineras kan kompilatorn inte utföra en korrekt tilldelning om returvärdet för ombudet används.
Example
I följande exempel genereras C4358:
// C4358.cpp
// compile with: /clr /W1
delegate int D();
delegate void E();
ref class X {
int i;
public:
X(int ii) : i(ii) {}
int f() {
return i;
}
};
ref class Y {
int i;
public:
Y() {}
void g() {}
};
int main() {
D^ d = gcnew D(gcnew X(1), &X::f);
D^ d2 = gcnew D(gcnew X(2), &X::f);
d += d2; // C4358
int j = d(); // return value indeterminate
E^ e = gcnew E(gcnew Y, &Y::g);
E^ e2 = gcnew E(gcnew Y, &Y::g);
e += e2; // OK
}