[Qt5-feedback] The #include directives for Qt Essentials and Qt Add-on modules

henry.haverinen at nokia.com henry.haverinen at nokia.com
Fri Jul 1 10:04:29 CEST 2011


> Henry spaketh:
> I had a brief chat with Lars, and based on that I updated a proposal to
> the product definition wiki:
> http://developer.qt.nokia.com/groups/qt_contributors_summit/wiki/Qt5ProductDefinition
>
 
> Shane respondeth: 
> What about #include for a single class, rather than the whole module?
> 
> For essentials, I assume that you would still use:
> #include <QString>

Right, that's my assumption too.
 
Charley wrote:

> Our "#include<>" conventions, and class name clashes (across add-ons)
> *are* a problem for trade-offs.  However, I read our "#include<>" plans on 
> the Qt5ProductDefinition page, and am very concerned:

> // ARE YOU SURE YOU WANT TO DO THIS?
> #include <some/path/SomeFile.hpp>

We're certainly not sure we want to do that :-)

It was based on a 2-minute discussion, and we just wanted to have a proposal 
for discussion. The reason for proposing to use subdirectories was to be consistent with 
the QML import statements and the C++ namespace. 

So thanks for your insights! I don't think that reason is good enough 
to justify the problems you listed.

> For these plugins, I really think there is very low likelihood of
> name collisions across packages:
>
> #include <Foo>  // for QtAddOn/Foo
> 
> ...But, if we wanted explicit namespaces, I'd prefer:
> 
> #include <QtAddOn.Foo>

I think it's important to be explicit, and as consistent between QML and C++ as 
possible. I went ahead and updated the wiki according your latter proposal. 

Shane wrote about the include directive for classes of add-ons:

> For add-ons, the clean looking option:
> #include <QtAddOn/Foo/Bar>
> has the problem that <QtAddOn/Foo>, the file, clashes with the subdirectory.
>
> #include <Bar>
> is no good because of potential class name clashes

So in the light of #include <QtAddOn.Foo> and Charley's arguments about 
the harmfulness of using subdirectories, does anyone have good suggestions 
for including the classes of add-ons?

#include <QtAddOn.Foo.Bar> // this may look a bit weird but it would be logical...

Cheers,
Henry



More information about the Qt5-feedback mailing list