Converting froma char* to a const char*

Mar 20, 2009 at 7:35am
Hello all,

Can I safely cast from a char* to a const char* like this:

const char * destPtr = reinterpret_cast<const char *>(srcPtr);

Is this safe or is there some C++ gotcha that I need to be aware of.

Many thanks,

Luca
Mar 20, 2009 at 10:34am
for this reinterpret_cast is not required. a simple c-style cast will do.


const char * destPtr = (const char *)srcPtr;


infact you dont need any casting. converting char to const char doesnt require any cast. had it been opposite then you need a simple cast.. i.e. from const char* to char*.
Mar 20, 2009 at 10:48am
Many thanks!
Mar 20, 2009 at 11:21am
You don't need to cast at all in this instance as it's completely safe.

If is not safe to use a const pointer as a non-const pointer, and so you must override the compiler to allow this use.

Whenever you use a cast, you are overriding the compilers type system. In C++ you should never do this lightly. C++ has four cast methods that force you to think about the cast you're doing. If you use C style casts, you're even subverting that.
Mar 20, 2009 at 12:40pm
+1 kbw. Never use C-style casts, period.
Topic archived. No new replies allowed.