0% found this document useful (0 votes)
4 views

cpp

The document outlines a comprehensive roadmap for learning C++, categorized into beginner, intermediate, and advanced topics. It includes essential concepts such as setting up the environment, basic operations, memory management, and advanced features like templates and multithreading. Additionally, it provides references to libraries and tools that can aid in the learning process.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

cpp

The document outlines a comprehensive roadmap for learning C++, categorized into beginner, intermediate, and advanced topics. It includes essential concepts such as setting up the environment, basic operations, memory management, and advanced features like templates and multithreading. Additionally, it provides references to libraries and tools that can aid in the learning process.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Beginner Topics / Start here Find the detailed version of this roadmap

Intermediate Topics / Pick Next along with other similar roadmaps

Advanced Topics / Pick Later


C++ roadmap.sh
Optional / Learn if you want

References

Salmer's C++ Roadmap

What is C++?

Introduction to Language Why use C++

C vs C++

Setting up your Environment Basic Operations


if else / switch / goto

for / while / do while loops


Installing C++ Arithmetic Operators

Code Editors / IDEs Logical Operators

Control Flow & Statements


Running your First Program Bitwise Operators

Pointers and References Data Types Functions

References Static Typing Operator Overloading

Memory Model Dynamic Typing Lambdas

Lifetime of Objects Static Polymorphism


RTTI
Function Overloading
Smart Pointers

Forward Declaration
weak_ptr

Headers / CPP Files Virtual Methods Virtual Tables


shared_ptr
Dynamic Polymorphism
Namespaces
unique_ptr
Scope Object Oriented Programming

Raw Pointers

New/Delete Operators Structuring Codebase Structures and Classes

Memory Leakage

Multiple Inheritance

Diamond Inheritance
Language Concepts Exception Handling

Rule of Zero, Five, Three

auto (Automatic Type Deduction) Exit Codes


Type Traits SFINAE
Type Casting Exceptions
Template Specialization
static_cast const_cast Access Violations

Full Template Specialization


dynamic_cast reinterpret_cast
Partial Template Specialization

Undefined Behavior (UB)


Variadic Templates
Standard Library + STL
Argument Dependent Lookup (ADL)

Name Mangling Macros


Iterators iostream Templates

Algorithms Date / Time


WinDBg GDB
Multithreading Containers
Debugging Symbols

Understanding Debugger Messages C++ 11 / 14

Debuggers Language Tools Standardds Idioms

Compiler Stages C++ 17 Non-Copyable / Non-Moveable


Compilers
Compilers and Features C++ 20 Erase-Remove

C/lang++ / LLVM Newest Copy and Swap Copy on Write


Intel C++
C++ 0x RAII Pimpl CRTP
MSVS C++

GCC
Licensing Libraries
MinGW

Library Inclusion Boost OpenCV

POCO Tensorflow
Build Systems Package Managers Working with Libraries
protobuf spdlog

gRPC pybind11
CMAKE vcpkg Spack

fmt opencl
Makefile Conan NuGet

gtest / gmock ranges_v3


Ninja
Qt Catch2

Orbit Profiler

Keep learning with following relevant tracks


PyTorch C++

Backend Roadmap
Frameworks

You might also like