다음을 통해 공유


컴파일러 오류 C2593

'연산자 identifier'가 모호합니다.

오버로드된 연산자에 대해 둘 이상의 가능한 연산자가 정의됩니다.

하나 이상의 실제 매개 변수에서 명시적 캐스트를 사용하는 경우 이 오류가 해결될 수 있습니다.

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

// C2593.cpp
struct A {};
struct B : A {};
struct X {};
struct D : B, X {};
void operator+( X, X );
void operator+( A, B );
D d;

int main() {
   d +  d;         // C2593, D has an A, B, and X
   (X)d + (X)d;    // OK, uses operator+( X, X )
}

이 오류는 개체를 사용하여 부동 소수점 변수를 serialize하여 발생할 수 있습니다 CArchive . 컴파일러는 연산자를 << 모호한 것으로 식별합니다. 직렬화할 수 있는 CArchive 유일한 기본 C++ 형식은 고정 크기 형식BYTE, WORDDWORDLONG. serialization을 위해 모든 정수 형식을 이러한 형식 중 하나로 캐스팅해야 합니다. 멤버 함수를 사용하여 부동 소수점 형식을 CArchive::Write() 보관해야 합니다.

다음 예제에서는 보관할 부동 소수점 변수(f)를 보관 ar하는 방법을 보여 줍니다.

ar.Write(&f, sizeof( float ));