다음을 통해 공유


컴파일러 경고(수준 1) C4928

복사 초기화가 잘못되었습니다. 사용자 정의 변환이 암시적으로 두 번 이상 적용되었습니다.

사용자 정의 변환 루틴을 두 개 이상 발견하였으며 컴파일러에서 이러한 루틴에 있는 코드를 모두 실행했습니다.

이 경고는 기본적으로 해제되어 있습니다. 자세한 내용은 기본적으로 해제되어 있는 컴파일러 경고를 참조하십시오.

다음 샘플에서는 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;
}