On 12 sept. 2014, at 11:14, Olivier Goffart <[email protected]> wrote:
> On Thursday 11 September 2014 22:03:03 Samuel Gaist wrote: >> On 11 sept. 2014, at 21:49, Thiago Macieira <[email protected]> > wrote: >>> On Thursday 11 September 2014 21:44:15 Samuel Gaist wrote: >>>> What would be the correct procedure to handle QT_DEPRECATED_SINCE ? >>>> Removing it from around the signal declaration would make the code a bit >>>> inconsistent. >>>> >>>> By the way, how is it handled in Qt 5 since building goes without any >>>> problem even with the macros around the signal ? >>> >>> moc is smarter in Qt 5: it expands macros. >>> >>> But the recommendation stands: do not #if (of any kind) anything that >>> isn't >>> #defined in the same source, in a header next to the one being compiled, >>> or >>> passed as -D in the command-line. >>> >>> That means: don't hide signals and slots with #if, even for deprecation. >> >> I thought I've read somewhere that moc got better at this job :-) > > I would not be as strict as Thiago. > In Qt5 it's fine to use the preprocessor as long as moc can see the defines > (that is, if they don't rely on compiler built-in or need special include > paths.) > QT_DEPRECATED_SINCE should be fine. > > It is strange it does not work with Qt4. Are you sure that all the include > paths are passed to moc? Good question, I'll have to check. If that where not the case, what should I write to give additional include paths to moc ? > Otherwise, you will have to work around it somehow. > try #if not QT_DEPRECATED_SINCE() #else > Or some other trick with Q_MOC_RUN I forgot about that one, might be a starting point > > You can also use the QT_MOC_COMPAT macro in front of a declaration so QObject > will throw a runtime warning when connecting to this signal. (in debug mode) Good to know > >> It seems that the new moc doesn't use much of the Qt 5 only classes, would >> it be useful to backport it to Qt 4 to avoid having to "break" the code >> style for modules supporting both series ? > > This is out of question. > This is a behaviour change as Qt4 code relied on moc not expending the macro > in some cases. > > (At some point it will be time to switch fully to Qt5 and drop Qt4 support) I agree, but there are still lots of people locked to Qt 4… There's even posts on the forum asking for Qt 3 _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
