컴파일러 경고(수준 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;
}