Hi, Standard C++ is evolving in a unprecedented pace at the moment. Both C++11 and C++14 added a lot of new good features. C++17 is planned to be a big step again.
Qt needs to evolve together with C++ or it will be a outdated toolkit stuck in a C++98 world. As an example, Qt's container classes and C++11 range based for loop do not mix very well.[1] And for the same reason, the upcoming Ranges TS will not be too useful for Qt's container. We have started using some parts of C++11 in Creator a year ago and our experience is that lambdas (and std::function) are useful everywhere. Today we have more than 400 lambdas in Creator's source and have several interfaces that take a std::function. I would expect that allowing C++11 in Qt would similarly lead to a wider understanding on how to leverage the new features for better code and better APIs. We need to start now and deprecate old compilers that do not support any C++11 features at all. I I suggest requiring support for lambda as supported by MSVC 2010, g++ 4.5 and clang 3.1 in Qt 5.7 and deprecating all platforms that do not in Qt 5.6. daniel [1] ranged based for uses std::begin(container), which if not overloaded calls container.begin(), which detaches. So using range-based can be used: - If the container is const or - If the container is unshared or - To actually change the container's contents _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development