Sections

Back to C++ after years away? Start with Language. Choosing a build system or an analyzer? Tooling. Planning a move to C++23? Standards.

Document
Sections
Clauses
8
Answers
24
Annexes
A Since When,
B Toolchain
  1. Language[lang]

    The core language as it is written now, from values and moves to lambdas and modules, for developers who learned C++ once and need the current answer.

    Value semantics and passing argumentsMove semantics and rvalue referencesCopy elision and returning valuesSpecial member functions and the rule of zeroLambdas and closuresType deduction with auto and decltypeconst, constexpr and constevalExceptions, noexcept and error handlingReferences, pointers and lifetimesClasses, inheritance and polymorphismInitialization rulesModules and headers

    4 answers

  2. Standard Library[lib]

    The library that ships with every compiler, from containers and algorithms to ranges and smart pointers, for developers choosing which type to reach for first.

    Containers and choosing between themAlgorithms and iteratorsRanges and viewsStrings, stringview and formattingSmart pointers and ownershipoptional, variant, expected and anyComparators, ordering and sortingchrono, filesystem and randomInput, output and printBoost, and when the standard library is not enoughThird-party libraries worth knowing

    9 answers

  3. Templates[temp]

    Generic code from the first function template to concepts and compile-time programming, for developers who use templates daily and still fear them a little.

    Function and class templatesConcepts and constraintsTemplate argument deductionVariadic templates and fold expressionsCompile-time programming with constexprCompile-time strings and non-type template parametersType traits and what replaced SFINAEExpression templates and embedded DSLsReading template error messagesGeneric lambdas and function objectsStatic reflectionCompile times

    3 answers

  4. Performance[perf]

    What makes C++ fast and what quietly makes it slow, from copies and allocation to cache behavior, for developers who would rather measure than guess.

    Measuring and benchmarkingCopy elision and avoiding copiesMemory allocation and allocatorsCache-friendly data layoutInlining and what the optimizer doesReading compiler outputSmall-buffer and small-string optimizationsCompiler flags and optimization levelsProfilersLow-latency and real-time constraintsLink-time and profile-guided optimization

    3 answers

  5. Concurrency[conc]

    Threads, atomics, locks, coroutines and asynchronous code in standard C++ and its libraries, for developers whose code runs on more than one thread.

    Threads, jthread and stop tokensMutexes, locks and condition variablesAtomics and the memory modelCoroutinesGenerators and lazy sequencesAsynchronous I/O and AsioSenders, receivers and executorsParallel algorithmsLock-free data structuresData races and the sanitizers that find themThread pools and task systems

    2 answers

  6. Tooling[tools]

    Compilers, build systems, package managers, editors, debuggers, analyzers and CI, for C++ developers deciding what to install and what to pay for.

    GCC, Clang and MSVCCMake and other build systemsConan and vcpkgIDEs and editorsDebuggersStatic analyzers and lintersSanitizers and fuzzingTesting frameworksContinuous integrationBuild caching and distributed buildsAI coding assistants for C++Formatting and documentation tools

    1 answer

  7. Standards[std]

    What each C++ standard changed and what the next one brings, feature by feature and compiler by compiler, for teams planning their next upgrade.

    What changed in each standardCompiler support by featureMoving a codebase to a newer standardDeprecated and removed featuresProposals and how the committee worksCommittee meeting outcomesContracts, safety profiles and hardeningFeature-test macrosStandard library implementations comparedWhat is planned after C++26

    1 answer

  8. Careers[careers]

    Working as a C++ developer, from interviews and salaries to books and conferences, for people getting into C++ and people deciding where to take it next.

    Interview questions and coding roundsIndustries that hireSalaries and levelsLearning paths from another languageBooksCourses and certificationsConferences and talksOpen-source contributionCode review and legacy codeMoving between C++ and Rust

    1 answer

Annexes the two reference tools

  1. Since When

    C++11 to C++26, feature by feature: the standard that added it and the first GCC, Clang and MSVC releases.

    Find a feature

  2. Toolchain

    The compilers, build tools, analyzers and IDEs a C++ team would install, each with its price.

    Open the Toolchain