This documentation is archived and is not being maintained.

Compiler Error C2682

cannot use name to convert from 'type1' to 'type2'

A casting operator tried to convert between incompatible types. For example, you cannot use the dynamic_cast operator to convert a pointer to a reference. The dynamic_cast operator cannot be used to cast away qualifiers. All qualifiers on the types must match.

You can use the const_cast operator to remove attributes such as const, volatile, or __unaligned.


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

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