On Friday 22 January 2016 10:38:28 Welbourne Edward wrote: > > AFAIK C++11/14 compilers have zero-cost exception, so, is there any > > reason why not start using them in Qt 6.0 ? > > Any "zero cost" claim is with respect to some assumed base-point. ISTR > exceptions require RTTI (run-time type info, as used by dynamic_cast<>), > so I guess this "zero cost" claim takes for granted the cost of RTTI - > which is surely non-trivial. Qt has its own meta-info so (IIUC) can be > built without RTTI, so building with would be a non-trivial cost as a > pre-requisite of exceptions.
It's not just RTTI. It's also exception tables and cleanup code. So no, exceptions don't have zero cost. But they may have zero _runtime_ cost when not thrown, as MS claims for the Windows ABI on AMD64. A fair comparision would, however, not compare -fexceptions vs -fno- exceptions, but take a subsystem, and replace all manual error handling with exceptions, then compare performance and code size between the subsystem using exceptions and the version with manual error handling (as complete as possible, of course) and -fno-exceptions. I'm not sure about what outcome to expect, and I don't remember any numbers posted by anyone else, either. Thanks, Marc -- Marc Mutz <[email protected]> | Senior Software Engineer KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company Tel: +49-30-521325470 KDAB - The Qt Experts _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
