Aracılığıyla paylaş


Derleyici Hatası C2593

'işleç tanımlayıcısı' belirsiz

Açıklamalar

Aşırı yüklenmiş bir işleç için birden fazla olası işleç tanımlanır.

Bir veya daha fazla gerçek parametrede açık bir atama kullanırsanız bu hata düzeltilebilir.

Örnekler

Aşağıdaki örnek C2593 oluşturur:

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

Bu hata, kayan nokta değişkenlerini nesne CArchive kullanarak seri hale getirmeden kaynaklanabilir. Derleyici, işleci belirsiz olarak tanımlar << . Seri hale getirebilen CArchive tek ilkel C++ türleri, , BYTEWORDve DWORDsabit boyutlu türlerdirLONG. Tüm tamsayı türleri serileştirme için bu türlerden birine atılmalıdır. Kayan nokta türleri üye işlevi kullanılarak CArchive::Write() arşivlenmelidir.

Aşağıdaki örnekte, bir kayan nokta değişkeninin (f) arşivlenerek arşivlenme aryöntemi gösterilmektedir:

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