Delen via


Compilerwaarschuwing (niveau 1) C4927

illegale conversie; meer dan één door de gebruiker gedefinieerde conversie is impliciet toegepast

Opmerkingen

Er wordt impliciet meer dan één door de gebruiker gedefinieerde conversie toegepast op één waarde. De compiler heeft geen expliciete conversie gevonden, maar wel een conversie gevonden die wordt gebruikt.

Example

In het volgende voorbeeld wordt C4927 gegenereerd:

// C4927.cpp
// compile with: /W1
struct B
{
   operator int ()
   {
      return 0;
   }
};

struct A
{
   A(int i)
   {
   }

   /*
   // uncomment this constructor to resolve
   A(B b)
   {
   }
   */
};

A f1( B& b)
{
   return A(b);
}

B& f2( B& b)
{
   return b;
}

A f()
{
   B b;
   return A(b);   // ok
   return f1(b);  // ok
   return b;      // C4927
   return B(b);   // C4927
   return f2(b);  // C4927
}

int main()
{
   B b;
   A a = b;
   A a2(b);
}