On 7 August 2017 at 14:59, Chris Vine <vine35792...@gmail.com> wrote:
> A static cast will carry out pointer adjustment when traversing an > inheritance graph to account for multiple inheritance or a vtable. It > is reinterpret cast which will not. > Indeed, thanks. I was only half-thinking at the time, and decided to err on the side of caution. :) I am one of the seemingly unpopular people who think it's perfectly fine to static_cast if you know the conversion will always be valid - i.e. so long as the program is not already in the process of crashing or failing asserts, which obviously should not be treated as reachable in released builds. I often wish the stdlib had an asserted_static_cast<T>(arg) as this is a pattern I use often: assert( dynamic_cast<T>(arg) ); auto& ref = *static_cast<T>(arg); // Use ref and I've not yet gotten around to creating my own little header to reduce the verbosity of this.
_______________________________________________ gtkmm-list mailing list gtkmm-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtkmm-list