The boost developers mailing list recently discussed the differences between
static_cast<> C++ casting operators.
The general consensus is that
reinterpret_cast<> provides virtually no guarantees, does not have portable behavior and should only be used when you are trying to perform a cast that you should basically not be performing in the first place. The only legitimate use for
reinterpret_cast<> seems to be converting between integral types and back, for instance, from a
char * to an
int and back to a
static_cast<> should be used for virtually anything that
const_cast<> cannot do.