Skip to content

CipherCook/CPP_Roadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

CPP_Roadmap

Learning by Doing : C++


  • Background
    • Input and Output
    • Strings
    • string_view
    • std::format
    • UTF-8 basics
    • Parsing techniques
    • File handling with RAII
    • Core Concepts
      • Const correctness
      • Value semantics
      • Initialization lists
      • Pass-by-value vs reference
      • Error handling
      • Exceptions basics
    • Idioms
      • Named Constructor
      • Named Parameter
      • Safe bool
      • nullptr
      • Interface Class
      • Non-member Non-friend Function
      • Resource Return
  • Compilation
    • Translation units
    • ODR (One Definition Rule)
    • Header/source separation
    • Include guards vs pragma once
    • CMake basics
    • CMake targets
    • Interface libraries
    • Static libraries
    • Dynamic libraries
    • Linker errors and debugging
    • ABI basics
    • Build small multi-target project
  • STL + Containers + Algorithms
    • vector
    • deque
    • list
    • map
    • unordered_map
    • set
    • Iterators
    • STL algorithms
    • Iterator invalidation
    • Complexity analysis
    • Cache locality
    • Implement vector
    • Implement iterator for vector
    • Implement hash map
    • Idioms
      • Iterator Pair
      • Erase-Remove
      • Copy-and-swap
      • Clear-and-minimize
      • Shrink-to-fit
      • Generic Container Idioms
      • Non-throwing swap
      • Temporary Proxy
      • Copy-on-write
      • Thread-safe Copy-on-write
      • Small Object Optimization
  • RAII + Move Semantics + Smart Pointers
    • RAII
    • Ownership models
    • Move semantics
    • lvalues and rvalues
    • Perfect forwarding basics
    • Copy elision
    • unique_ptr implementation
    • shared_ptr implementation
    • weak_ptr implementation
    • scope_guard implementation
    • Thread-safe queue
    • Idioms
      • Rule of 3/5/0
      • Resource Acquisition Is Initialization (RAII)
      • Scope Guard
      • Smart Pointer
      • Execute-Around Pointer
      • Intrusive reference counting (Counted Body)
      • Non-copyable Mixin
      • Checked delete
      • Move Constructor
      • Attach by Initialization
      • Base-from-Member
      • Requiring or Prohibiting Heap-based Objects
  • Runtime Polymorphism + Design
    • Virtual dispatch
    • Composition vs inheritance
    • Interfaces
    • Dynamic polymorphism
    • std::variant
    • visitation
    • Plugin architecture
    • Event system
    • Command system
    • Idioms
      • Non-Virtual Interface (NVI)
      • Virtual Constructor
      • Virtual Friend Function
      • Covariant Return Types
      • Type Erasure
      • Polymorphic Value Types
      • Polymorphic Exception
      • Acyclic Visitor Pattern
      • Attorney-Client
      • Capability Query
      • Calling Virtuals During Initialization
      • Final Class
  • Templates
    • Variadic templates
    • Fold expressions
    • constexpr
    • Concepts
    • SFINAE
    • CRTP
    • Type traits
    • Perfect forwarding
    • Compile-time programming
    • Generic logger
    • Serialization framework
    • ECS sparse set
    • Idioms
      • Curiously Recurring Template Pattern (CRTP)
      • Substitution Failure Is Not An Error (SFINAE)
      • enable_if
      • Traits
      • Tag Dispatching
      • Expression-template
      • Metafunction
      • Int-To-Type
      • Type Selection
      • Type Generator
      • Policy Clone
      • Policy-based Design
      • Barton-Nackman trick
      • Empty Base Optimization (EBO)
      • Coercion by Member Template
      • Parameterized Base Class
      • Member Detector
      • Return Type Resolver
      • Function Object
      • Type Safe Enum
      • Algebraic Hierarchy
      • Hierarchy Generation
      • Recursive Type Composition
      • Named Template Parameters
      • The result_of technique
  • Ranges
    • views
    • lazy evaluation
    • projections
    • pipelines
    • sentinels
    • custom view implementation
    • lazy filter implementation
    • Idioms
      • Pipe composition
      • Functional-style transformations
      • Projection idiom
      • Temporary Base Class
  • Allocators + Memory Resources
    • PMR resources
    • allocator model
    • monotonic allocator
    • pool allocator
    • arena allocator
    • linear allocator implementation
    • stack allocator
    • allocator-aware vector
    • ECS memory pool
    • Concepts
      • Fragmentation
      • Alignment
      • Cache-aware allocation
      • False sharing
      • NUMA basics
    • Idioms
      • Free Function Allocators
      • Object Generator
      • Computational Constructor
      • Concrete Data Type
  • Concurrency + Atomicity
    • mutexes
    • condition variables
    • atomics
    • futures and promises
    • acquire and release semantics
    • lock-free basics
    • thread pool implementation
    • lock-free queue
    • concurrent hash map
    • Concepts
      • ABA problem
      • False sharing
      • Cache coherence
      • Memory ordering
      • Wait-free vs lock-free
    • Idioms
      • Scoped Locking
      • Thread-Safe Interface
      • Double buffering
      • Producer-consumer
      • Active object pattern
  • Advanced / Misc
    • Coroutines
    • Modules
    • Networking
    • Reflection proposals
    • constexpr allocation
    • SIMD basics
    • Benchmarking
    • Profiling
    • Idioms
      • Type Erasure deep dive
      • Fast Pimpl deep dive
      • Expression templates deep dive
      • Small Buffer Optimization
      • Fake Vtable
      • Function Poisoning
      • Export Guard Macro
      • Deprecate and Delete
  • Idioms
    • Include Guard Macro
    • Inline Guard Macro
    • Pimpl (Handle Body, Compilation Firewall)
    • Fast Pimpl
    • Thin Template
    • Runtime Static Initialization Order Idiom
    • Construct On First Use
    • Nifty Counter (Schwarz Counter)
  • Projects
    • CLI text processor
    • JSON parser
    • Smart pointer library
    • ECS framework
    • HTTP server
    • Thread pool
    • Plugin system
    • Game engine subsystem
    • Trading-style message bus

About

Learning by Doing : C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors