Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How modern is C++ language used in Qt?

Tags:

c++

qt

api

I heard Qt API is written in pretty outdated C++ language. Is it true?
Are there any plans to make it use more modern C++ language? Are there any official information on this?

Are there any projects with the aim to wrap current Qt API constructs with more modern C++?

UPDATE
That's more to this question than templates and that's not the question only about the current state of affairs (that's why I tagged it with the future tag).

UPDATE
I'm especially concerned with Qt API as this is what users of this framework work with.
Using modern C++ language in API makes it more robust, flexible and easier to use.
What kind of C++ is used inside Qt is far less important to me.

like image 450
Piotr Dobrogost Avatar asked May 10 '09 20:05

Piotr Dobrogost


People also ask

Which language is best for QT?

Most Qt developers use C++ (the language that Qt is written in), often in association with QML.

Does Qt support C#?

The property setter calls the native Qt class before firing the event using the __raise keyword. This wrapper class can now be used in . NET code, e.g. using C++, C#, Visual Basic or any other programming language available for .


1 Answers

Qt is known not to use templates, one very useful modern c++ feature. But that does not mean that there is a need for a wrapper to Qt's API. Qt uses in-house precompilers to address the same issues. Some don't like this approach, but Qt's API is very simple and efficient, and i don't believe there is a real need to modernize it. In particular, signals&slots, a very impressive feature from Qt, can be achieved using templates (see boost.signals library), but the way Qt has implemented it is still much more efficient.

I'd say "don't worry and use Qt as is".

EDIT: Sorry i forgot about template containers provided with Qt. But still, Qt's API makes very little use of template classes. This does not mean that they don't use them inside Qt though or that their way of coding is obsolete.

Boost.Signals are probably more powerful than Qt signals/slots but, as far as i can tell, there is no arguing about which is simpler to use. One very convincing implementation of the KISS principle.

like image 176
Benoît Avatar answered Oct 21 '22 16:10

Benoît