Il 06/09/19 16:27, Mutz, Marc via Development ha scritto:
Let's name the options, as I see them (new additions welcome!):([NS::] in the below means that namespace is inline) A) We can keep the existing Qt namespace, then types would be named [Qt::]Qt::Alignment, [Qt::]QString, [Qt::]QLineEdit, which, in the first case, is a bit funny but would only show up in the debugger. B) Same as (A), but we flatten the existing namespace Qt into the new inline namespace Qt. This is what I propsed in OP: [Qt::]Alignment, [Qt::]QString, [Qt::]QLineEdit. C) I don't think you can have two namespace blocks with the same name and have one inline and the other not, but if you can, then we could erect the new inline namespace Qt ex the current non-inline one: Qt::Alignment, [Qt::]QString, [Qt::]QLineEdit. D) Alternatively, we can go the extra mile and make a per-library inline namespace, ex the current non-inline Qt namespace: Qt::Alignment, [QtCore::]QString, [QtWidgets::]QLineEdit. I'd still ask to first try (B). The name clashes are entirely theoretical atm, and when and if they unexpectedly become a source of problems, we still have the option to go with (A), (C), or (D).
I was actually proposing option A, to avoid clashes. The Qt:: namespace at the moment is simply too big to reasonably claim that there will be no conflicts. A few examples that come into mind: Qt::horizontal, Qt::vertical, Qt::[color name], Qt::SHIFT, Qt::Monday, Qt::XAxis.
Option C does not work, a namespace is either entirely inline or it's not. http://eel.is/c++draft/basic.namespace#namespace.def-5 Thanks for bringing this up, -- Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Senior Software Engineer KDAB (France) S.A.S., a KDAB Group company Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com KDAB - The Qt, C++ and OpenGL Experts
smime.p7s
Description: Firma crittografica S/MIME
_______________________________________________ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development