[Development] Removing QT_{BEGIN,END}_HEADER macros in Qt 5.1

Thiago Macieira thiago.macieira at intel.com
Tue Jan 15 02:47:14 CET 2013


On segunda-feira, 14 de janeiro de 2013 23.09.48, Ahumada Sergio wrote:
> Hi,
> 
> While I was trying to mark tst_headers as significant again
> <https://bugreports.qt-project.org/browse/QTQAINFRA-324> I found out that I
> had to add some QT_{BEGIN,END}_HEADER macros to some headers.
> 
> After some investigation and talks with Thiago, I realized this macro
> expands to nothing, so I decided to remove the check in tst_headers instead
> of adding the missing QT_{BEGIN,END}_HEADER macros
> <https://codereview.qt-project.org/44076>.
> 
> So far, this change does not affect Qt in any way, but I now want to go a
> little bit further and remove the check in 'syncqt'
> <https://codereview.qt-project.org/44810>
> 
> As the commit message says, this macro "might be removed", which is why I
> writing this email now.
> 
> What do you think about removing QT_{BEGIN,END}_HEADER all over the place
> for 5.1 ?

I support taking the next step and removing the macro usage completely. We may 
not be able to remove the definitions from qglobal.h, though.

Background:

QT_BEGIN_HEADER was introduced so that it could expand to extern "C++" { on 
Mac OS X, but I don't remember the reason why that was desired. 

However, the macro was never used as such, because it does (in Qt 4):

	#if defined(Q_OS_MAC) && !defined(Q_CC_INTEL)

Before Q_OS_MAC is ever defined. When I still had access to the old Qt history, 
I remember checking when this mistake cropped up and it turns out that it was 
like that in all released versions that had QT_BEGIN_HEADER. I don't remember 
now if the code was *added* like that or if it got moved around in a later 
commit, but still before the release.

Therefore, in Qt 5 (in ba3dc5f3b56d1fab6fe37fe7ae08096d7dc68bcb), we changed 
to an unconditional #define to empty.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130114/61a5b69c/attachment.sig>


More information about the Development mailing list