Krita/C++11
General links to C++11 and Qt
Note: as would be expected from those interested in hot new technology, the writers of most of these links demonstrate Silicon Valley levels of extreme optimism. Take this with a grain of salt. There is no such thing as a free lunch.
- ICS.com
- qt.io
- woboq.com: c++11 in Qt5
- woboq.com: c++14 in Qt5
- "C++11 lambdas are your friend"
- Warning: c++11 range-based for may be slower
- FOSDEM 2013 presentation slides
- KDAB: speed up your Qt 5 programs using C++11
- Bjarne Stroustrup's C++11 FAQ - the grand daddy
Particular Features
Type Inference (auto)
Motivation:
Drawbacks:
Recommendation:
Range-based for loop
Motivation:
Drawbacks:
Recommendation:
Universal and General Initialization
Motivation: Member Initializers Mixed uniform initialization
Drawbacks:
Recommendation:
Lambda
Motivation: Lambda expressions for slots
Drawbacks:
Recommendation:
constexpr
Motivation:
Drawbacks:
Recommendation:
Override and final
Motivation:
Drawbacks:
Recommendation:
<algorithm>
Motivation:
Drawbacks:
Recommendation:
nullptr
Motivation:
Drawbacks:
Recommendation:
Deleted and default class members
Motivation:
Drawbacks:
Recommendation:
unique_ptr
Motivation:
Drawbacks: unique_ptr is unable to be copied, and therefore cannot be used inside Qt classes. For example QVector<std::unique_ptr> is invalid, because QVector requires its members can be copied. This makes converting to unique_ptr arduous.
Recommendation:
http://thbecker.net/articles/rvalue_references/section_01.html
Move Constructors
Motivation:
Drawbacks:
Recommendation:
Reference Qualifiers
Motivation:
Drawbacks:
Recommendation:
Other C++11 features, less immediately useful
- Extended Unions (already have QVariant)
- New literal types (already have QString)
- Threads (Qt/KDE provide threading support already)
- shared_ptr (unique_ptr Qt already provides a
- Local types (mostly for advanced template programming)
- static_assert
- variadic templates