Share via


Compilerwarnung (Stufe 1) C4928

Unzulässige Kopierinitialisierung. Es wurden mehrere benutzerdefinierte Konvertierungen implizit übernommen.

Es wurde mehr als eine benutzerdefinierte Konvertierungsroutine gefunden.Der Compiler hat den Code in all diesen Routinen ausgeführt.

Diese Warnung ist standardmäßig deaktiviert.Weitere Informationen finden Sie unter Standardmäßig deaktivierte Compilerwarnungen.

Im folgenden Beispiel wird C4928 generiert:

// C4928.cpp
// compile with: /W1
#pragma warning(default: 4928)

struct I
{
};

struct I1 : I
{
};

struct I2 : I
{
};

template <class T>
struct Ptr
{
   operator T*()
   {
      return 0;
   }

   Ptr()
   {
   }

   Ptr(I*)
   {
   }
};

int main()
{
   Ptr<I1> p1;
   Ptr<I2> p2 = p1;   // C4928
   // try one of the following two lines to resolve this error
   // Ptr<I2> p2(p1);
   // Ptr<I2> p2 = (I1*) p1;
}