This repository is a C++ guide designed which is designed to be easily opened using VS Code or Github. It contains extensive documentation, code examples, and best practices to help you become a proficient C++ programmer. The guide intends to be to the point so you can continue what really matters, programming.
Explore the examples
directory for interactive C++ code examples, easily executable inside a Docker DevContainer within Visual Studio Code. This setup ensures a consistent and streamlined coding environment, ideal for learning and experimentation.
The following index contains categories with topics that are ready for visibility or completed.
There is more content incoming so the categories will not be visible here until it is completed.
Want to see what topics are in todo? See the index per category.
- Tooling
- CMake
- Introduction
- Generators
- Targets
- TODO: CMakePresets
- Best Practices
- Sequence Containers
- Associative Containers
- Unordered Associative Containers
- Other
- String Literals
- IO Streams
- C Style Strings
- std::string
- Character Encoding
- std::string_view
- String Streams
- std::format
- printf
- File IO
- File Streams
- Classes vs Structs
- Constructors
- Destructors
- H and CPP Files
- Static
- Friend
- Nesting Classes
- Operator Overloading
- Object Relationships
- Inheritance
- Virtual Functions
- References
- Pointers
- Smart Pointers
- Using std::unique_ptr
- Using std::shared_ptr
- Using std::weak_ptr
- Smart Pointers In Functions
- Smart Pointers And Forward Declaration
- Shallow Copy vs Deep Copy
- Auto
- Casting
- Using constexpr
- Using constval
- Design patterns
- Templates
- Error handling
- CPP Reference
- This is more of a reference but contains examples and explanations that can serve as a learning resource.
- Link here
- Online C++ Compiler
- Link here
- C++ Core Guidelines
- Link here
- Google C++ Style Guide
- Link here.
- LearnCpp
- Devoted to teaching you how to program in C++. Whether you’ve had any prior programming experience or not, the tutorials on this site will walk you through all the steps to write, compile, and debug your C++ programs, all with plenty of examples.
- Link here
- GeeksforGeeks
- Link here
- Offers a variety of tutorials and exercises ranging from basic to advanced topics. TutorialsPoint: C++ Tutorial
- Software Architecture with C++, (Paid)
- Design modern systems using effective architecture concepts, design patterns, and techniques with C++20
- By Adrian Ostrowski & Piotr Gaczkowski, April 2021, 540 pages
- Link here.
- Professional C++, (Paid)
- Professional C++, 5th Edition raises the bar for advanced programming manuals. Complete with a comprehensive overview of the new capabilities of C++20, each feature of the newly updated programming language is explained in detail and with examples.
- By Marc Gregoire, Februari 2021, 1312 pages
- Link here.
- Modern CMake for C++ (2nd edition), (Paid)
- Write comprehensive, professional-standard CMake projects and ensure the quality and simplicity of your solutions
- By Rafal Świdziński, May 2024, 502 pages
- Link here.
- CMake Best Practices (2nd edition), (Paid)
- Write comprehensive, professional-standard CMake projects and ensure the quality and simplicity of your solutions
- By Dominik Berner & Mustafa Kemal Gilor, Aug 2024, 502 pages
- Link here.
- Advanced C and C++ Compiling (Paid)
- Learning how to write C/C++ code is only the first step. To be a serious programmer, you need to understand the structure and purpose of the binary files produced by the compiler: object files, static libraries, shared libraries, and, of course, executables.
- Link here
- Learning C++ (Free)
- Free unaffiliated eBook created from Stack Overflow contributors.
- Link here
- More C++ Idioms (Free)
- Link here.
- C++ Programming: Code patterns design (Free)
- Software design patterns are abstractions that help structure system designs.
- Link here.
- C++ Notes for Professionals book (Free)
- Link here.
- C++ Interview Questions and Answers (geeksforgeeks.org)
- Link here.