Extra Credit

C++

Official docs outline

19 sections
  1. Basic concepts

    Declarations vs definitions, scope, linkage, translation units, the one-definition rule and name lookup.

  2. Types and declarations

    Fundamental types, declarators, auto, const/constexpr, references and storage duration.

  3. Expressions

    Operators, precedence, value categories, conversions and evaluation order.

  4. Statements

    Control flow, range-based for, structured bindings and if/switch with initializers.

  5. Functions

    Overloading, default arguments, inline, noexcept, function pointers and overload resolution.

  6. Lambda expressions

    Captures by value and reference, mutable lambdas, generic lambdas and closure types.

  7. Classes

    Members, access control, constructors, destructors, static members and special member functions.

  8. Inheritance and virtual functions

    Base and derived classes, virtual dispatch, abstract classes, override/final and multiple inheritance.

  9. Object lifetime and RAII

    Lifetime of objects and temporaries, constructors/destructors ordering, RAII and the rule of three/five/zero.

  10. Move semantics and value categories

    lvalues, rvalues, rvalue references, std::move, perfect forwarding and copy elision.

  11. Templates

    Function and class templates, specialization, variadic templates, SFINAE and template argument deduction.

  12. Concepts and constraints

    C++20 concepts, requires clauses and constrained templates.

  13. Exceptions

    throw/try/catch, stack unwinding, noexcept and exception safety guarantees.

  14. constexpr and compile-time programming

    constexpr, consteval, constinit and compile-time evaluation.

  15. Dynamic memory and smart pointers

    new/delete, unique_ptr, shared_ptr, weak_ptr and allocators.

  16. Containers, iterators and algorithms

    Standard containers, iterator categories, algorithms, ranges and views.

  17. Memory model and concurrency

    Threads, mutexes, atomics, memory ordering and data races.

  18. Coroutines and modules

    C++20 coroutines (co_await, co_yield) and module import/export.

  19. Undefined behavior and object model

    Undefined, unspecified and implementation-defined behavior, strict aliasing and lifetime violations.

Each section links to the official page. Titles and summaries by Extra Credit; the docs belong to their authors.

All 41