Share via


Advertencia del compilador (nivel 1) C4928

inicialización de copia no válida; se aplicó implícitamente más de una conversión definida por el usuario

Se encontró más de una rutina de conversión definida por el usuario. El compilador ejecutó el código en todas esas rutinas.

De forma predeterminada, esta advertencia está desactivada. Vea Advertencias del compilador desactivadas de forma predeterminada para más información.

El ejemplo siguiente genera la advertencia C4928:

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