
On Thursday, May 03, 2012 2:42 PM, Richard wrote:
boost-users@lists.boost.org spake the secret code <1D97E025367AFB4A8C528590A3715BF442603A@archerysummit2.willamette.charte roaksystems.com> thusly:
static void Internal_callback (XtPointer self, XtIntervalId*) { reinterpret_cast
(self)->callback(); I don't know why people always leap to reinterpret_cast<> as their first choice; it's the most dangerous. I'd prefer static_cast<> here.
In this case, the reinterpret_cast is needed because X11 specified that your callback *must* take a void pointer. Reinterpret_cast and the old c-style cast (which would act as a reinterpret_cast in this case) are the only ways I know to convert a void pointer to the correct type. In this case, I mitigated the danger by making Internal_callback private and ensuring the only place where it is used--the public Schedule function--provides a pointer of the correct type.