On Friday 24 July 2015 10:30:32 Peter Kuemmel wrote: > > Or do you want to help improve the C++11 support in Qt? > > Is there a TODO list about possible improvements? > And what's the policy about C++14? Isn't C++14 mostly > a patch/cleanup of C++11?
List: we have the list from Thiago, which I asked yesterday on the list about re: consensus. That'd be - make sure public headers use Q_NULLPTR, not 0 (the devil is in the details here, just adding the warning to headerscheck doesn't find 0s in templates). - make sure Q_DECL_OVERRIDE is added everywhere (postponed to 5.7 for now) - make sure Q_DECL_NOTHROW / Q_DECL_NOEXCEPT / Q_DECL_NOEXCEPT_EXPR is added to relevant functions - make sure Q_DECL_(RELAXED_)CONSTEXPR is added whereever possible To which I'd add: - add qMove()s where it makes sense (e.g. QVector::append() these days). My personal agenda: - make sure value types aren't pessimised by careless disabling of the move special member functions (move assignment is generally easy, move ctors need the new smart pointer (https://codereview.qt-project.org/115213) and need to work with both QSharedDataPointer _and_ QExplicitlySharedDataPointer before they can be safely ported to QtPrivate::SharedDataPointer - that turns out to be surprisingly tricky in certain cases). - ditto, but in addition they're nothrow std::vector resizing performance heavily depends on a nothrow move constructor. But also QVector has gained _some_ move support (in append(), both lvale and rvalue overloads). C++14: There's not much different in terms of API design between C++11 and 14. Basically, currently we only have Q_DECL_RELAXED_CONSTEXPR vs. Q_DECL_CONSTEXPR. If we have polymorphic function objects, we probably should add is_transparent to them, but I don't think we have any. Well, QCollator maybe. Thanks, Marc -- Marc Mutz <[email protected]> | Senior Software Engineer KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company Tel: +49-30-521325470 KDAB - The Qt Experts _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
