This wiki book describes the C++ programming language.
The goal of this writing, and what will hopefully distinguish it from other resources, is that it should be comprehensive and organized:
- Comprehensive: The goal is to cover all topics of C++. It should discuss both basic concepts (what is a variable?) and advanced concepts (e.g., template-metaprogramming). Modern aspects of the language (e.g., move semantics) are included alongside traditional ones. This book is about the language proper, excluding most libraries with the exception of the Standard Libraries and occasional references to important platform considerations.
- Organized: An effort is being made to list more basic and fundamental concepts before others, to aid a student who is linearly reading the book from beginning to ending. At the same time, the topics are given a hierarchical structure, so the book is also useful to a more experienced engineer who needs to lookup a specific issue.
Attention is being given to limit the amount of writing in this book, with the understanding that too much detail in one publication can easily scare away potential readers. Instead, this book aims to give the reader a clear initial introduction to each topic that is being discussed. And then, at the end of nearly every section of this book, will be an external link that readers can follow if they want to supplement their learning with additional details. It's important to the goals of this writing for those supplemental links to be a video (easy to digest for casual readers), in the public domain, and they must be precisely about that very specific topic that section of this book was discussing.
Contributions to this book are welcomed (as always with wikibooks). A set of conventions and structures are in mind for the formatting of this book, so please use the discussion area to talk about them with the book's existing authors, prior to making any significant planned changes to the published pages.
Thank you for reading this wiki book!