다음을 통해 공유


컴파일러 오류 C2594

'operator': 'type1'에서 'type2'로의 모호한 변환

type1에서 type2로의 변환이 다른 어떤 것보다 직접적이 아니었습니다. type1 에서 type2로 변환할 수 있는 두 가지 솔루션을 제안합니다. 첫 번째 옵션은 type1에서 type2로의 직접 변환을 정의하는 것이며, 두 번째 옵션은 type1에서 type2로의 변환 시퀀스를 지정하는 것입니다.

다음 샘플에서는 C2594를 생성합니다. 오류에 대한 제안된 해결 방법은 변환 시퀀스입니다.

// C2594.cpp
// compile with: /c
struct A{};
struct I1 : A {};
struct I2 : A {};
struct D : I1, I2 {};

A *f (D *p) {
   return (A*) (p);    // C2594

// try the following line instead
// return static_cast<A *>(static_cast<I1 *>(p));
}