다음을 통해 공유


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

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

둘 이상의 사용자 정의 변환이 단일 값에 암시적으로 적용됩니다. 컴파일러는 명시적 변환을 찾지 못했지만 사용한 변환을 찾았습니다.

다음 샘플에서는 C4927을 생성합니다.

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