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.
Example
class A { virtual void f(); }; class B: public A {}; void g(A* pa) { B& rb = dynamic_cast<B&>(pa); // error }