[Development] Two source incompatibilities in Qt 5.5 with Clang
Olivier Goffart
olivier at woboq.com
Fri Mar 13 18:02:51 CET 2015
On Friday 13 March 2015 09:08:35 Thiago Macieira wrote:
> It's a minor SIC and I still call it justified. Anyone who was using #ifndef
> was making assumptions about Q_ASSERT's internals and how it is declared.
> We should all agree that making assumptions is a bad idea.
It was documented:
http://doc.qt.io/qt-5/qtglobal.html#Q_ASSERT
"It does nothing if QT_NO_DEBUG was defined during compilation."
And judging from the unused warning compiler gives, they were in their rights
to do it, I'd say.
> With this change, there's no longer the need to make any assumptions.
>
> And it saves us from ugly:
>
> int x = someFunction();
> Q_ASSERT(x);
> Q_UNUSED(x);
>
> As for adding a new macro... I don't want to replace every one of them in
> Qt.
>
> $ git submodule --quiet foreach "git grep Q_ASSERT -- '*.cpp' '*.mm' '*.h'
> || true" | wc -l
> 9390
Which can still be done in one line.
But we don't even need to do it. We can leave the old one as it, and use
Q_ASSERT_UNUSED for the new asserts
--
Olivier
Woboq - Qt services and support - http://woboq.com - http://code.woboq.org
More information about the Development
mailing list