Effective C++11 -- Scotts erste Ideen
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!