Scott Meyers hat erste Ideen zu seinen Empfehlungen für ein potentielles Effective C++11.
Einige Kandidaten findet man indirekt auch in C++11 programmieren
- „Prefer auto to Explicit Type Declarations“ — die Vorteile werden in
[typeinfer.auto]
besonders beschrieben, aber auch an vielen anderen Stellen - „Prefer non-member begin/end to member versions“ — Ausführlich in
[syntax.for]
besprochen - „Be Wary of Default Capture Modes in Lambdas Escaping Member Functions“ — Thema in
[lambda.args]
- „Pass std::launch::async if Asynchronicity is Essential“ — wird in
[thread.async]
erwähnt - „Distinguish Rvalue References from Universal References“ — Der Unterschied zwischen
&
und&&
wird in[rval.intro]
besprochen. - „Prefer Lambdas over Binders“ — die Vorteile stehen auch in
[func.funcobjs]
- „Apply std::forward when Passing Universal References“ — ausführlich in
[rval.forward]
erklärt - „Prefer std::array to Built-in Arrays“ — wird in
[stl.algorithm]
angerissen - „Use std::make_shared Whenever Possible“ in
[stl.shptr]
begründet - „Reserve noexcept for Functions with Wide Interfaces“ — auch empfohlen in
[std.noexcept]
- „For Copyable Types, View Move as an Optimization of Copy“ — angerissen in
[class.delete]
- „Prefer enum classes to enums“ — begründet mit Beispielen in
[enum.typed]
- „Prefer nullptr to NULL and 0 — exakt wie in
syntax.nullptr
beschrieben
Ich freue mich jedoch darauf, wieder eine exzellente Zusammenfassung und Begründung von Scott Meyers in den Händen zu halten!