Skip to content

References

This page compiles the most important reference materials for C++ learning and engineering practice. All resources that are legally available for free have been downloaded to the references/ directory.


ISO Standard Working Drafts (Downloaded)

All standard drafts are freely available from WG21 Papers.

VersionDocument No.DescriptionSize
C++98/03N13962002 Working Draft (includes C++98 and TC1 corrections)992 KB
C++11N3337C++11 Final Working Draft (2012-01-16)4.9 MB
C++14N4296C++14 Working Draft (2014-10-07)12 MB
C++17N4659C++17 Final Working Draft (2017-03-21)6.2 MB
C++20N4861C++20 Final Working Draft (2020-04-10)6.8 MB
C++23N4950C++23 Final Working Draft (2023-05-10)7.7 MB
C++26N5008C++26 Current Working Draft (2025-03-15)8.9 MB

Path: references/standards/

How to Read Standard Documents

The standard document is not a tutorial — it is a normative reference.

  1. Look up specific behavior: use Ctrl+F to search for keywords
  2. Understand the clause structure: §1–§6 General rules, §7–§22 Core language, §23–§33 Standard library
  3. Cross-reference with cppreference: read the concise explanation first, then consult the standard for precise semantics

Offline Reference Materials (Downloaded)

cppreference Offline Documentation (2025-02-09)

Complete offline version of the C/C++ reference documentation, covering the latest C++26 features.

  • Path: references/cppreference/cppreference-doc-20250209/reference/en/index.html
  • Usage: open index.html directly in a browser
  • Source: cppreference.com | GitHub

C++ Core Guidelines (Stroustrup & Herb Sutter)


Downloaded Books

The following book PDFs have been downloaded locally.

Introduction & Overview

TitleAuthorDescriptionPath
Modern C++ Tutorial: C++11/14/17/20Changkun OuQuick introduction to modern C++books/Modern-Cpp-Tutorial-en-us.pdf
Think C++Allen DowneyBeginner-friendly, progressive approachbooks/think-cpp.pdf
21st Century C++Bjarne StroustrupThe creator of C++ on modern C++ thinkingbooks/21st-Century-Cpp-Stroustrup.pdf

Modern C++ Comprehensive

TitleAuthorDescriptionPath
Modern C++ Programming (C++03–C++26)Federico Busato30 MB comprehensive tutorial covering all versionsbooks/Modern-CPP-Programming-Busato.pdf
Mastering Modern C++23SimplifyC++Complete guide to C++23 new featuresbooks/simplifycpp-mastering-modern-cpp23.pdf
C++ Best PracticesJason TurnerEngineering practice guidebooks/cpp-best-practices.pdf

STL Specialization

TitleAuthorDescriptionPath
Mastering STLSimplifyC++In-depth STL analysisbooks/simplifycpp-mastering-stl.pdf
Mastering STL in C++23SimplifyC++C++23 STL new features and best practicesbooks/simplifycpp-mastering-stl-cpp23.pdf

OOP & Design Patterns

TitleAuthorDescriptionPath
OOP in Modern C++SimplifyC++Object-oriented design with modern C++ implementationbooks/simplifycpp-oop-modern-cpp.pdf

Concurrency & Atomic Operations

TitleAuthorDescriptionPath
Atomic OperationsSimplifyC++Authoritative guide to atomic operationsbooks/simplifycpp-atomic-operations.pdf

Mini Booklets (Quick Reference)

Concise quick-reference booklets from SimplifyC++, ideal for quick lookups.

BookletDescriptionPath
C++ Low-Level OptimizationPerformance optimization techniques and low-level detailsbooks/minibooklets/cpp-low-level-optimization.pdf
Atomic Operations GuideComplete atomic operations handbookbooks/minibooklets/atomic-operations-guide.pdf
Template MetaprogrammingCore concepts of template metaprogrammingbooks/minibooklets/template-metaprogramming.pdf
Modern C++ Best PracticesGolden rules quick referencebooks/minibooklets/best-practices-modern-cpp.pdf
STL Quick ReferenceSTL containers and algorithms cheat sheetbooks/minibooklets/stl-mini-booklet.pdf

Cookbook Code Repositories (Downloaded)

The companion code for the following Packt Cookbook series books has been downloaded to references/books/cookbook-code/. The books themselves must be purchased, but the code repositories are publicly available and can be studied and run directly.

TitleAuthorCode PathPurchase Link
C++17 STL CookbookJacek Galowiczcookbook-code/Cpp17-STL-Cookbook/Packt
C++20 STL CookbookBill Weinmancookbook-code/CPP-20-STL-Cookbook/Packt
C++23 STL Cookbook (2nd ed.)Bill Weinmancookbook-code/C-23-STL-Cookbook-Second-Edition/Packt
Modern C++ Programming Cookbook (3rd ed.)Marius Bancilacookbook-code/Modern-Cpp-Programming-Cookbook-Third-Edition/Packt
Advanced C++ Programming CookbookDr. Rian Quinncookbook-code/Advanced-CPP-Programming-CookBook/Packt
Hands-On System Programming with C++Dr. Rian Quinncookbook-code/Hands-On-System-Programming-with-CPP/Packt
C++ High Performance (2nd ed.)Björn Andrist & Viktor Sehrcookbook-code/Cpp-High-Performance-Second-Edition/Packt
Building Low Latency Applications with C++Sourav Ghoshcookbook-code/Building-Low-Latency-Applications-with-CPP/Packt
CMake CookbookRadovan Bast & Roberto Di Remigiocookbook-code/CMake-Cookbook/Packt
Design Patterns in Modern C++ (2nd ed.)Dmitri Nesterukcookbook-code/design-patterns-in-modern-cpp/Apress
Boost C++ CookbookAntony Polukhincookbook-code/Boost-Cookbook/Packt
AwesomePerfCpp (resource list)Bartłomiej Filipekcookbook-code/AwesomePerfCpp/GitHub

How to Obtain Paid Books

The following books can be legally borrowed through Controlled Digital Lending (CDL) on Internet Archive. Register a free account to read online (each loan is 1 hour, renewable).

TitleAuthorInternet Archive Link
Effective Modern C++Scott MeyersBorrow
More Effective C++Scott MeyersBorrow
C++ Primer (early edition)Stanley B. LippmanBorrow
The C++ Standard Library (1st ed.)Nicolai M. JosuttisBorrow
C++ Templates (1st ed.)David Vandevoorde et al.Borrow

How to use: visit the link → click "Borrow" → log in or register → read online. No download needed; read in your browser.

Publisher Official Sample Chapters (Downloaded)

Official publisher sample PDFs for the following books have been downloaded to references/books/samples/, containing the table of contents and select chapters.

TitleAuthorSample ContentPath
The C++ Standard Library (2nd ed.)Nicolai M. JosuttisTOC + select chapterssamples/Josuttis-CppStandardLibrary-sample.pdf
C++ Templates: The Complete Guide (2nd ed.)Vandevoorde et al.TOC + select chapterssamples/Vandevoorde-CppTemplates-sample.pdf
C++ Primer (5th ed.)Lippman et al.TOC + select chapterssamples/Lippman-CppPrimer-sample.pdf
Modern C++ DesignAndrei AlexandrescuTOC + select chapterssamples/Alexandrescu-ModernCppDesign-sample.pdf
  • O'Reilly Learning: subscription-based, includes full e-books for the vast majority of C++ books. Many universities/companies have institutional subscriptions. oreilly.com
  • Public Libraries: via the OverDrive/Libby app, borrow e-books for free with a library card. overdrive.com
  • University Libraries: most university libraries have e-book access to publishers such as O'Reilly, Springer, Packt, etc.
  • Leanpub: some books (such as Josuttis's C++17/20/23 Complete Guide series) are sold on Leanpub at reasonable prices. leanpub.com

The following books are universally recognized classics and authoritative works in C++, organized by topic. Purchase as needed.

Introduction Classics

TitleAuthorWhy Recommended
A Tour of C++ (3rd ed., C++20)Bjarne StroustrupAn overview from the creator of C++ to quickly build a global understanding
Programming: Principles and Practice Using C++ (3rd ed.)Bjarne StroustrupA systematic textbook for beginners
C++ Primer (5th ed.)Stanley B. Lippman et al.The most comprehensive introductory reference (C++11)
Head First C++David Griffiths & Dawn GriffithsA visually rich introductory book

Effective Series & Engineering Practice

TitleAuthorWhy Recommended
Effective C++ (3rd ed.)Scott Meyers55 classic tips — essential reading for C++ engineers
Effective Modern C++Scott Meyers42 best practices for C++11/14 — must-read
Effective STLScott Meyers50 tips for using STL
More Effective C++Scott Meyers35 advanced tips (exception safety, efficiency)
C++ Coding StandardsHerb Sutter & Andrei Alexandrescu101 coding guidelines
Exceptional C++Herb SutterProblem–solution deep dives into C++
More Exceptional C++Herb SutterSequel, covering exception safety and generics
Exceptional C++ StyleHerb SutterThird book, focused on engineering style
C++ GotchasStephen DewhurstCommon pitfalls and solutions

STL & Generic Programming

TitleAuthorWhy Recommended
The C++ Standard Library (2nd ed.)Nicolai M. JosuttisAuthoritative STL reference (C++11)
STL Tutorial and Reference GuideDavid R. Musser et al.Classic STL tutorial
The C++ Standard Template LibraryP. J. Plauger et al.STL implementation details
Generic Programming and the STLMatthew H. AusternGeneric programming theory and STL design
C++ STL Programmer's GuideMark NelsonPractical STL guide

Templates & Metaprogramming

TitleAuthorWhy Recommended
C++ Templates: The Complete Guide (2nd ed.)David Vandevoorde et al.The template bible, covering C++17
Modern C++ DesignAndrei AlexandrescuPolicy-driven design, a metaprogramming classic
C++ Template MetaprogrammingDavid Abrahams & Aleksey GurtovoyThe theory behind Boost.MPL
Advanced Metaprogramming in Classic C++Mario RussoSpringer publication, deep metaprogramming

Concurrency & Multithreading

TitleAuthorWhy Recommended
C++ Concurrency in Action (2nd ed.)Anthony WilliamsAuthoritative guide to multithreaded programming (C++17)
Pro TBBMichael Voss et al.Intel TBB parallel programming
The Art of Multiprocessor ProgrammingMaurice Herlihy & Nir ShavitTheoretical foundations of concurrent algorithms

Performance Optimization

TitleAuthorWhy Recommended
Optimized C++Kurt GuntherothSystematic approach to performance optimization
C++ High Performance (2nd ed.)Björn Andrist & Viktor SehrModern C++ performance optimization
Building Low Latency Applications with C++Sourav GhoshLow-latency system development (finance/HFT)
Agner Fog Optimization Manuals (free)Agner FogCPU microarchitecture and assembly optimization

Modern C++ Advanced (by Version)

TitleAuthorCoversWhy Recommended
Effective Modern C++Scott MeyersC++11/14Must-read
C++17 in DetailBartłomiej FilipekC++17In-depth feature analysis
C++20 in DetailBartłomiej FilipekC++20In-depth feature analysis
C++23 - The Complete GuideNicolai M. JosuttisC++23Authoritative reference
C++17 - The Complete GuideNicolai M. JosuttisC++17Authoritative reference
C++ Move SemanticsNicolai M. JosuttisC++11+Complete treatment of move semantics

Design & Architecture

TitleAuthorWhy Recommended
Design Patterns in Modern C++ (2nd ed.)Dmitri NesterukGoF patterns in modern C++
Large-Scale C++ Software DesignJohn LakosPhysical design for large projects (headers/linking)
API Design for C++Martin ReddyLibrary design practice
Practical C++ DesignAdnan AzizFrom programming to architecture
Head First Design PatternsEric Freeman et al.Design patterns introduction (Java, but concepts are universal)

Deep Dives & Internals

TitleAuthorWhy Recommended
Inside the C++ Object ModelStanley B. LippmanLow-level object model implementation (vtable/memory layout)
The C++ Programming Language (4th ed.)Bjarne StroustrupThe C++ encyclopedia (C++11)
C++ Under the HoodMathieu NayrollesCompiler internals

CMake & Build Systems

TitleAuthorWhy Recommended
CMake CookbookRadovan Bast & Roberto Di RemigioHands-on CMake recipes
Professional CMakeCraig ScottAuthoritative CMake guide
Modern CMake (free online)Multiple authorsmodern-cmake.github.io

Boost Libraries

TitleAuthorWhy Recommended
Boost C++ Libraries (free online)Boris Schälingtheboostcpplibraries.com
Boost CookbookAntony PolukhinPractical Boost library recipes

Online Resources

Authoritative References

ResourceURLDescription
cppreferenceen.cppreference.comThe most authoritative online reference
C++ Reference (isocpp)isocpp.orgISO C++ official website
WG21 Papersopen-std.org/jtc1/sc22/wg21Standards committee paper library
C++ Core Guidelinesisocpp.github.io/CppCoreGuidelinesCoding guidelines

Learning & Interactive

ResourceURLDescription
Learn C++learncpp.comSystematic online tutorial
C++ Insightscppinsights.ioView compiler-expanded code
Compiler Explorergodbolt.orgOnline compiler
CppQuizcppquiz.orgC++ language gotchas quiz

Blogs & In-Depth Articles

ResourceURLDescription
C++ Storiescppstories.comIn-depth articles by Bartłomiej Filipek
Herb Sutter's Blogherbsutter.comStandards committee chair's blog
Fluent C++fluentcpp.comExpressive C++ code
Modernes C++modernescpp.comRainer Grimm's C++ tutorials
Abseil C++ Tipsabseil.io/tipsGoogle's internal C++ best practices
SimplifyC++simplifycpp.orgC++ tutorials and free books

Compiler Documentation

ResourceURL
GCCgcc.gnu.org/onlinedocs
Clangclang.llvm.org/docs
MSVClearn.microsoft.com/en-us/cpp

Performance Optimization Resources

ResourceURLDescription
AwesomePerfCppgithub.com/fenbf/AwesomePerfCppC++ performance optimization resource list
Agner Fog Optimization Manualsagner.org/optimizeAuthoritative CPU microarchitecture reference (free)

Key Proposals & Papers

PaperNo.Topic
Move SemanticsN2118Original move semantics proposal
Rvalue ReferenceN1952Rvalue reference design
LambdaN2550Original lambda proposal
Memory ModelN1911Original memory model proposal
ConceptsP2095R0Final form of Concepts
ReflectionP2996R8C++26 reflection proposal
ContractsP2900R14C++26 contracts proposal

This reference library is continuously updated. If there are important omissions, please open an issue on GitHub.

Released under the MIT License