When to use reinterpret_cast?

Posted by HeretoLearn on Stack Overflow See other posts from Stack Overflow or by HeretoLearn
Published on 2009-02-21T16:12:39Z Indexed on 2011/11/22 17:50 UTC
Read the original article Hit count: 197

Filed under:
|

I am little confused with the applicability of reinterpret_cast vs static_cast. From what I have read the general rules are to use static cast when the types can be interpreted at compile time hence the word static. This is the cast the C++ compiler uses internally for implicit casts also.

reinterpret_cast are applicable in two scenarios, convert integer types to pointer types and vice versa or to convert one pointer type to another. The general idea I get is this is unportable and should be avoided.

Where I am a little confused is one usage which I need, I am calling C++ from C and the C code needs to hold on to the C++ object so basically it holds a void*. What cast should be used to convert between the void * and the Class type?

I have seen usage of both static_cast and reinterpret_cast? Though from what I have been reading it appears static is better as the cast can happen at compile time? Though it says to use reinterpret_cast to convert from one pointer type to another?

© Stack Overflow or respective owner

Related posts about c++

Related posts about casting