Kompilatorfel C2682

kan inte använda casting_operator för att konvertera från "type1" till "type2"

Anmärkningar

En gjutningsoperator försökte konvertera mellan inkompatibla typer. Du kan till exempel inte använda operatorn dynamic_cast för att konvertera en pekare till en referens. Operatorn dynamic_cast kan inte användas för att kasta bort kvalificerare. Alla kvalificerare för typerna måste matcha.

Du kan använda operatorn const_cast för att ta bort attribut som const, volatileeller __unaligned.

Exempel

I följande exempel genereras C2682:

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

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

I följande exempel genereras C2682:

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