Something went wrong. Try again.
A Tour of C++ for experienced programmers, as if C++26 is the only version that ever existed.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132<!DOCTYPE HTML><html lang="en" class="light" dir="ltr"> <head> <!-- sidebar iframe generated using mdBook
This is a frame, and not included directly in the page, to control the total size of the book. The TOC contains an entry for each page, so if each page includes a copy of the TOC, the total size of the page becomes O(n**2).
The frame is only used as a fallback when JS is turned off. When it's on, the sidebar is instead added to the main page by `toc.js` instead. The JavaScript mode is better because, when running in a `file:///` URL, the iframed page would not be Same-Origin as the rest of the page, so the sidebar and the main page theme would fall out of sync. --> <meta charset="UTF-8"> <meta name="robots" content="noindex"> <!-- Custom HTML head --> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="theme-color" content="#ffffff"> <link rel="stylesheet" href="css/variables-8adf115d.css"> <link rel="stylesheet" href="css/general-e96d0476.css"> <link rel="stylesheet" href="css/chrome-d279d366.css"> <link rel="stylesheet" href="css/print-9e4910d8.css" media="print"> <!-- Fonts --> <link rel="stylesheet" href="fonts/fonts-9644e21d.css"> <!-- Custom theme stylesheets --> </head> <body class="sidebar-iframe-inner"> <ol class="chapter"><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="preface.html" target="_parent">Preface</a></span></li><li class="chapter-item expanded "><li class="part-title">Part I — The Language</li></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch01-toolchain.html" target="_parent"><strong aria-hidden="true">1.</strong> The compiler is a committee</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch02-values-functions.html" target="_parent"><strong aria-hidden="true">2.</strong> Values and functions</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch03-user-defined-types.html" target="_parent"><strong aria-hidden="true">3.</strong> User-defined types: structs, sums, and expectations</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch04-control-flow.html" target="_parent"><strong aria-hidden="true">4.</strong> Control flow, modernly</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch05-ownership-move-raii.html" target="_parent"><strong aria-hidden="true">5.</strong> Ownership, move, and RAII</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch06-smart-pointers.html" target="_parent"><strong aria-hidden="true">6.</strong> Smart pointers and owning views</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch07-lifetimes.html" target="_parent"><strong aria-hidden="true">7.</strong> Lifetimes, and the compiler that sees them</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch08-argument-passing.html" target="_parent"><strong aria-hidden="true">8.</strong> Passing arguments, returning values</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch09-errors-contracts.html" target="_parent"><strong aria-hidden="true">9.</strong> Errors: exceptions, expected, and contracts</a></span></li><li class="chapter-item expanded "><li class="part-title">Part II — The Standard Library</li></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch10-text.html" target="_parent"><strong aria-hidden="true">10.</strong> Text: strings, views, and formatting</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch11-containers.html" target="_parent"><strong aria-hidden="true">11.</strong> Containers</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch12-algorithms.html" target="_parent"><strong aria-hidden="true">12.</strong> Algorithms are the loops</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch13-ranges.html" target="_parent"><strong aria-hidden="true">13.</strong> Ranges and views</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch14-callables-type-erasure.html" target="_parent"><strong aria-hidden="true">14.</strong> Callables and type erasure</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch15-numerics.html" target="_parent"><strong aria-hidden="true">15.</strong> Numerics and multi-dimensional data</a></span></li><li class="chapter-item expanded "><li class="part-title">Part III — Generic and Compile-Time Programming</li></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch16-templates-functions.html" target="_parent"><strong aria-hidden="true">16.</strong> Templates I: functions that match</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch17-concepts.html" target="_parent"><strong aria-hidden="true">17.</strong> Concepts: the constraint language</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch18-compile-time.html" target="_parent"><strong aria-hidden="true">18.</strong> Compile-time C++</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch19-nttp.html" target="_parent"><strong aria-hidden="true">19.</strong> Values as template arguments</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch20-specialization.html" target="_parent"><strong aria-hidden="true">20.</strong> Specialization, overloading, customization points</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch21-legacy-tmp.html" target="_parent"><strong aria-hidden="true">21.</strong> Reading the old magic: SFINAE, type_traits, and friends</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch22-sql-capstone.html" target="_parent"><strong aria-hidden="true">22.</strong> Capstone: a constexpr SQL in C++26</a></span></li><li class="chapter-item expanded "><li class="part-title">Part IV — Systems</li></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch23-headers.html" target="_parent"><strong aria-hidden="true">23.</strong> Headers, #include, and organizing programs</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch24-modules.html" target="_parent"><strong aria-hidden="true">24.</strong> Modules, the standard's direction</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch25-concurrency-threads.html" target="_parent"><strong aria-hidden="true">25.</strong> Concurrency I: threads as values</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch26-concurrency-atomics.html" target="_parent"><strong aria-hidden="true">26.</strong> Concurrency II: atomics, and the shape of async</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch27-coroutines.html" target="_parent"><strong aria-hidden="true">27.</strong> Coroutines: suspension as first-class code</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch28-speaking-c.html" target="_parent"><strong aria-hidden="true">28.</strong> Speaking C</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="ch29-fast.html" target="_parent"><strong aria-hidden="true">29.</strong> Fast is a specification</a></span></li><li class="chapter-item expanded "><li class="part-title">Back matter</li></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="appendix-a.html" target="_parent"><strong aria-hidden="true">30.</strong> Appendix A: features and compilers</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="appendix-b.html" target="_parent"><strong aria-hidden="true">31.</strong> Appendix B: coming from other languages</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="appendix-c.html" target="_parent"><strong aria-hidden="true">32.</strong> Appendix C: Core Guidelines index</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="appendix-d.html" target="_parent"><strong aria-hidden="true">33.</strong> Appendix D: CMake</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="appendix-e.html" target="_parent"><strong aria-hidden="true">34.</strong> Appendix E: CTest</a></span></li><li class="chapter-item expanded "><span class="chapter-link-wrapper"><a href="appendix-f.html" target="_parent"><strong aria-hidden="true">35.</strong> Appendix F: ASan and UBSan</a></span></li></ol> </body></html>