Linked by Thom Holwerda on Wed 7th May 2008 08:54 UTC, submitted by elsewhere
Permalink for comment 313276
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.





Member since:
2006-01-02
The concern about replacing parts of the STL has, in my opinion, been adressed in the 4.0 release when Qt was split into smaller modules. For instance, if you use QString in a library, you only need to link to QtCore. That is a reasonable dependency just like another. It is much lighter than linking to all of Qt -- which practically no app or library does.
And by the way who said C++ was an immuable thing that nobody may improve except for an ISO committee
Some more info here:
It is perfectly OK to replace the standard library and Qt is certainly not the only such alternative. For example Boost also provides replacements for many classes, and I think that GTK (and GTKmm) also does. The standard library is rather old-fashioned and C++ programming has evolved since the times when it was designed, 20 years ago. You mention better unicode support as an advantage of QString over std::wstring, and I would mention at least another one: copy-on-write. Being able to write a function that just returns a QString without paying the overhead of uselessly copying that string, is awesome.
About the Meta-object-compiler, (MOC) what's wrong about it? It provides huge advantages that one just can't achieve otherwise. The biggest one is introspection. Ever wondered why Apple uses Objective C instead of C++? Introspection. The MOC brings introspection to C++, and that's huge. QObjects can e.g. enumerate their own methods, call methods by name, etc. This allows for much more flexible signals-and-slots than is possible with tempate solutions (a la GTKmm). Hugely valuable for a GUI toolkit, to connect to dynamically loaded components. It also improves the i18n system. Trust me the MOC brings enough benefits to justify its existence
http://doc.trolltech.com/4.3/templates.html
Edit: one important precision, the MOC is, like the other Qt tools, Free software released under the GPL 2/3. So it's not at all a "proprietary extension to c++" as is sometimes trolled.
Edited 2008-05-07 14:31 UTC