CppCon 2019: De-fragmenting C++: Making Exceptions and RTTI More Affordable and Usable--Herb Sutter

Save to:
Instapaper Pocket Readability

What do you think about it?

De-fragmenting C++: Making Exceptions and RTTI More Affordable and Usable

by Herb Sutter

From the video:

A fundamental reason why C++ is successful and loved is its adherence to Stroustrup’s zero-overhead principle: You don’t pay for what you don’t use, and if you do use a feature you can’t reasonably code it better by hand. In the C++ language itself, there are only two features that violate the zero-overhead principle, exception handling and RTTI – and, unsurprisingly, these are also the only two C++ language features that every C++ compiler has switches to turn off and that are regularly discouraged or even banned. This matters because not using these features is the largest current cause of fragmentation of the C++ community into incompatible dialects, and the cause of recurring problems including type confusion security vulnerabilities arising from “didn’t down-cast using dynamic_cast because that would be too slow.” This talk is about ongoing long-term efforts to try to unify the community in this area, not by replacing exceptions and RTTI, but by doubling down: fully embracing exceptions and RTTI, and improving them so they can be zero-overhead too.

Add a Comment

Comments are closed.

Comments (1)

1 0

Martin Ba said on Sep 24, 2019 04:32 AM:

"... that violate the zero-overhead principle, exception handling and RTTI ... regularly discouraged or even banned"

I wonder whether the banning of exceptions is *really* a performance argument for most. It certainly isn't at our shop. Problem rather being writing and maintaining exceptions-safe code.