Modernes C++ programmieren

Mai 02, 2012

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!