컴파일러 오류 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
, WORD
DWORD
및 LONG
. serialization을 위해 모든 정수 형식을 이러한 형식 중 하나로 캐스팅해야 합니다. 멤버 함수를 사용하여 부동 소수점 형식을 CArchive::Write()
보관해야 합니다.
다음 예제에서는 보관할 부동 소수점 변수(f
)를 보관 ar
하는 방법을 보여 줍니다.
ar.Write(&f, sizeof( float ));