C++ Track Summary

story, bites and repositories of C++ code

"C++ is a general-purpose programming language with a bias towards systems programming that is a better C; supports data abstraction, object-oriented programming, and generic programming."
- Bjarne Stroustrup, creator of C++

Figure 1. C++ demo code

1. What is C++?

C++ is a general-purpose, multi-paradigm language that compiles to native code and delivers performance comparable only to C and hand-tuned assembly - with no garbage collector. Resources are managed through RAII (Resource Acquisition Is Initialization): constructors acquire resources and destructors release them deterministically when objects leave scope. Three defining characteristics: C++ is used everywhere performance matters: operating systems, game engines, databases, browsers, compilers, embedded systems, and high-frequency trading. It was created by Bjarne Stroustrup and first standardised in 1998 (C++98). Major revisions shipped in 2011, 2014, 2017, 2020, and 2023, each adding significant modern features while preserving backward compatibility.

2. Track Contents

The C++ track offers three complementary learning pathways plus supporting reference material.
Pathway Description Entry Point
C++ Story A comprehensive narrative covering C++ from first principles through advanced topics. Chapters: Prologue, Models, Data, Operations, Classes, Class Relationships, Templates, Template Metaprogramming, Libraries, and Streams. Best for readers who want a complete, linear progression. Prologue
C++ Bites Focused pages each covering a single language feature or concept. Pages form an ordered sequence but also work as stand-alone references. The Pages menu lets you jump directly to any topic. Introduction
Repositories Documented C++ code repositories illustrating real programs - thread pools, blocking queues, socket communication, text search, logging, XML processing, and more. Each page discusses the design and links to the GitHub source. Repositories
Other Resources Glossary, References page, and downloadable pdf files. CppModels.pdf
Templates.pdf
STL.pdf

3. Key Language Concepts

The track covers the areas below, roughly from foundational to advanced.

Types and Value Semantics

C++ is built around value types: objects hold their data directly and assignment produces independent copies. Understanding the object model is the first step to writing correct C++. Pages: Data, Bites: Data, Models.

Classes and Object-Oriented Programming

C++ classes are the primary mechanism for encapsulation, abstraction, and code reuse. Pages: Classes, Class Relationships, Bites: Objects.

Templates and Generic Programming

Templates let you write type-parameterised code that is instantiated at compile time, with no runtime overhead. They are the foundation of the entire STL. Pages: Templates, Template Metaprogramming, Bites: Generics.

Standard Template Library (STL)

The STL provides generic containers, iterator abstractions, and algorithms that compose uniformly across all containers. Pages: Library: STL, Bites: Iterators, STL Containers.

Memory Management and Smart Pointers

C++ gives the programmer full control over memory. Modern C++ channels that control through smart pointers and RAII rather than raw new/delete. Pages: Models, Libraries.

Concurrency

C++11 added a portable threading library to the standard. C++20 extended it with coroutines and enhanced synchronisation primitives. Pages: Operations, Processes & Threads, Thread Pool.

4. Getting Started

Recommended first steps for someone new to C++:
  1. Install a compiler tool chain. On Windows, install Visual Studio Community (free) with the "Desktop development with C++" workload - provides MSVC, the debugger, and CMake integration. On Linux/macOS, gcc or clang are available through the system package manager.
  2. Install VS Code with the C/C++ and CMake Tools extensions for inline diagnostics, code completion, and integrated debugging.
  3. Read C++ Bites: Introduction for an overview of what distinguishes C++ from managed languages and what the track covers.
  4. Work through Bites: Hello C++ to confirm your environment, then try the Compiler Explorer for quick online experiments without a local install.
  5. Follow the C++ Bites sequence page by page, or read the C++ Story in parallel for deeper narrative context.

5. References

Resource Description
cppreference.com The authoritative reference for every keyword, type, and library function in standard C++.
isocpp.org Official C++ foundation site — news, guidelines, FAQ, and links to the ISO standard.
C++ Core Guidelines Rules for writing modern, safe C++, maintained by Bjarne Stroustrup and Herb Sutter.
Compiler Explorer Browser-based tool for writing C++ and seeing generated assembly across multiple compilers.
learncpp.com Free, comprehensive tutorial series covering C++ from beginner to advanced level.
Track References page Curated list of additional blogs, videos, and books from this site.
CppModels.pdf Slide deck covering C++ object and memory models.
Templates.pdf Slide deck covering C++ template programming in depth.
STL.pdf Slide deck covering the Standard Template Library containers and algorithms.
Stack Overflow C++ Large Q&A archive — an excellent first stop when debugging unfamiliar behaviour.