Reply to Silvio, > Is there any good reason why the following code doesn't work? [...] If you want to dive into template programming you can make a do-nothing function that does the cast and will only compile if the cast is in fact safe.