Compartir a través de


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 las rutinas de ese tipo.

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

El código siguiente genera el error 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;
}