Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
'operator': el tipo de valor devuelto de los delegados combinados no es 'void'; el valor devuelto no está definido
Observaciones
Se combinaron dos delegados y el valor devuelto no es nulo. Si se combinan dos delegados con valores devueltos no nulos, el compilador no podrá realizar una asignación adecuada si se usa el valor devuelto del delegado.
Example
En el ejemplo siguiente se genera 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
}