Avertissement du compilateur (niveau 1) C4358
'operator' : le type de retour des délégués combinés n’est pas 'void' ; la valeur retournée n’est pas définie
Deux délégués ont été combinés et la valeur de retour n’est pas void. Si deux délégués avec des valeurs de retour non void sont combinés, le compilateur ne pourra pas effectuer une affectation appropriée si la valeur de retour du délégué est utilisée.
L’exemple suivant génère l’erreur 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
}
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour