Aracılığıyla paylaş


Derleyici Uyarısı (düzey 1) C4358

'operator': Birleşik temsilcilerin dönüş türü 'geçersiz' değildir; döndürülen değer tanımlanmamış

İki temsilci birleştirildi ve dönüş değeri geçersiz değil. Geçersiz olmayan dönüş değerlerine sahip iki temsilci birleştirilirse, temsilcinin dönüş değeri kullanılırsa derleyici düzgün bir atama yapamaz.

Aşağıdaki örnek C4358 oluşturur:

// 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
}