[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