Skip to content

Latest commit

 

History

History
50 lines (40 loc) · 2.61 KB

File metadata and controls

50 lines (40 loc) · 2.61 KB

CPP Lab Docs

Every folder below src/ is a group in the lab's menu. The README in each folder explains the topic, and the examples next to it show it in code. Run any example with ./build/bin/cpp_lab_project --run <id>, or browse them with the interactive menu.


1. Core (C++ language and standard library)

  1. Basics: control flow, initialization, operators, const/constexpr
  2. Data types: fundamental types, pointers, references, enums, structs, unions, conversions
  3. Classes: constructors, destructors, Rule of 3/5/0, relationships, friends, virtual
  4. Functions: function pointers, lambdas, std::function, operator overloading
  5. Templates: function and class templates, specialization, concepts, CRTP
  6. Linkage: internal/external linkage, sharing global constants
  7. Smart pointers: unique_ptr, shared_ptr, weak_ptr
  8. Strings: C strings, std::string, string_view, formatting
  9. Containers: sequence, associative, unordered, adapters
  10. Exceptions: try/catch/throw, noexcept
  11. File handling: streams, files, filesystem, formatting
  12. Date and time: <ctime> and <chrono>
  13. Concurrency: threads, mutexes, condition variables, futures
  14. Utilities: optional, algorithms, regex, type traits, variadics

2. Design Patterns

  1. Behavioral
  2. Structural
  3. Creational
  4. C++ idioms: pImpl, type erasure

3. Architecture Patterns

  1. MVC/MVVM (GTK4 applications)

4. Other

  1. Controller (PID)
  2. Socket
  3. dlopen plugin demo
  4. Embedded bare-metal ARM
  5. Google Test