Krita/C++11

From KDE Community Wiki
Revision as of 01:26, 15 October 2015 by Miabrahams (talk | contribs) (Add list of features for consideration)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.

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:

Performance-related (rvalues)

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