Megosztás a következőn keresztül:


C2682 fordítási hiba

a casting_operator nem használható a "type1" típusról "type2" típusra való konvertáláshoz

Megjegyzések

Egy casting operátor nem kompatibilis típusok közötti konvertálást kísérelt meg. Például a dynamic_cast operátorral nem alakíthat át mutatót hivatkozássá. Az dynamic_cast operátor nem használható a minősítők elűzésére. A típusok összes minősítőjének egyeznie kell.

Az operátorral eltávolíthatja az const_cast olyan attribútumokat, mint az const, volatilevagy __unaligned.

Példák

A következő példa C2682-t hoz létre:

// C2682.cpp
class A { virtual void f(); };
class B: public A {};

void g(A* pa) {
    B& rb = dynamic_cast<B&>(pa); // C2682
}

A következő példa C2682-t hoz létre:

// C2682b.cpp
// compile with: /clr
ref struct R{};
ref struct RR : public R{};
ref struct H {
   RR^ r ;
   short s;
   int i;
};

int main() {
   H^ h = gcnew H();
   interior_ptr<int>lr = &(h->i);
   interior_ptr<short>ssr = safe_cast<interior_ptr<short> >(lr);   // C2682
   interior_ptr<short>ssr = reinterpret_cast<interior_ptr<short> >(lr);   // OK
}