On Friday 13 March 2015 12:23:00 Stephen Kelly wrote: > Thiago Macieira wrote: > >> What macro works for multiple versions of Qt? > >> Why should everyone define such a macro themselves in their code? How > >> about contributing it back to qglobal.h? What would it be called? And to > >> bring this full circle, how about swapping the semantic of the old and > >> new macros? > >> > >> I'm sure you considered not making the SIC change and creating a new > >> macro instead. Why did you decide for the SIC? > > > > Two main reasons: > > > > 1) it improves existing code, since we can get rid of some #ifdefs > > > > 2) it allows us avoid CI integration errors because no one compiled in > > release mode before submitting > > I'm sure it's as obvious to you as it is to me that both of those would be > solved in a SIC way by a new macro. Q_CHECKED_ASSERT or similar. > > It's not a good argument for the SIC.
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. 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 -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development