On Fri, Aug 13, 2010 at 12:33 PM, Ingo Weinhold <ingo_weinhold@xxxxxx> wrote: > static_cast is a compile time cast, i.e. the pointer offset is computed at > compile time. At run time the operation consists of a NULL pointer check and > an addition of the (hardcoded) offset. The obvious requirement for the > applicability of static_cast is that the two involved classes are related. > You can static_cast between BNode* and BFile* (both directions), but not > between BNode* and BPositionIO*, regardless of whether the object is a BFile. > Unless the given pointer is NULL, static_cast always succeeds, even, if the > object is actually not of the target type (e.g. BNode* -> BFile* works also > for BSymLink objects). Aha, thanks for clearing that up. Apologies for the noise/previous misinformation :) Regards, Rene