22.01.2016, 12:50, "Marc Mutz" <[email protected]>: > 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.
And this cleanup code more often than not interferes with compiler optimizations, so -fno-exceptions tends to work faster. > > 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 -- Regards, Konstantin _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
