README.qtcopy: -no-stl or no -no-stl?

Bo Thorsen bo at sonofthor.dk
Tue Jan 20 19:34:43 GMT 2004


On Tuesday 20 January 2004 14:51, Dirk Mueller wrote:
> On Tuesday 20 January 2004 10:30, Bo Thorsen wrote:
> > cripple peoples Qt, when they might download Qt apps that need
> > exceptions. And yes, there are examples of such apps.
>
> Might be a stupid question, but why do you expect that Qt would do
> anything with exceptions?
>
> it is still fine to compile Qt without exceptions support. If you want
> exceptions fine - use them. But don't expect that Qt makes use of them.
>
> what do you think what will happen when exceptions cross signal/slot
> borders, even when Qt is compiled with exception support? Qt does not
> handle any exceptions at all, so letting them pass through Qt is
> probably producing very unwanted things.
>
> And if you don't pass the exceptions through Qt - you can compile Qt
> without exceptions support. Thats why we recommend it.

Just throw an exception in a slot, or something that is called from a 
slot. Qt without exception support crashes. Qt with exception support 
handles this nicely.

Or throw an exception in any of the template methods Qt has for 
overriding, with the same results.

Or subclass a Qt class, and override something that's called by a 
non-overridden method...

There are so many ways to crash Qt if you use exceptions but have a Qt 
without it. And they are all fixed by not using that old workaround.

Specific example of where this support is necessary: Dynamic function 
calls. Qt signals and slots can be used to on runtime figure out what 
methods are available and call them by having a small class that connects 
a signal to the wanted method, and emits. Now, if you want to make it 
possible for the method to signal something bad happened with an 
exception, you need exception support in Qt. And exceptions where not 
introduced in languages to annoy people, but because the fit the task at 
hand so much better than anything else.

Of course, after getting a bunch of weird user crashes, you learn to spot 
the KDE compilers and tell them to recompile Qt with exception support. 
That just quickly gets to you, when there is no real reason that it was 
disabled in the first place.

Bo.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: signature
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20040120/84b2ad9b/attachment.sig>


More information about the kde-core-devel mailing list