Skip to content

jpstayfocus/Advanced-cpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

Advanced-cpp

C++ is a high-level general-purpose programming language released in 1985 designed with systems programming and embedded systems in mind. Its main highlights are performance, efficiency, and flexibility of use. In this course, we will achieve an in-depth understanding of the language, from basic types and functions to more advanced topics such as template metaprogramming and concurrency.

Textbook: A tour of C++, 3rd edition by Bjarne Stroustrup. Covers the following topics:

  1. Basics: programs, functions, types, variables, arithmetic, scope and lifetime, constants, pointers, arrays and references, tests, mapping to hardware

  2. User-defined types: structs, classes, enums, unions

  3. Modularity: separate compilation, namespaces, function arguments and return variables

  4. Error handling: exceptions, invariants, error-handling alternatives, assertions

  5. Classes: concrete and abstract types, virtual functions, class hierarchies

  6. Essential operations: copy and move, resource management, operator overloading, conventional operations, user-defined literals

  7. Templates: parameterized types, parameterized operations, template mechanisms

  8. Generic programming: concepts, generic programming, variadic templates, template compilation

  9. Library overview: standard library components and organization

  10. Strings and regular expressions: strings, string views, regular expressions

  11. Input and output: I/O state, I/O of user-defined types, output formatting, streams, file system

  12. Containers: vector, list, forward_list, map, unordered_map, allocators

  13. Algorithms: iterators, predicates, parallel algorithms

  14. Ranges: views, generators, pipelines

  15. Pointers and containers: pointers, containers, alternatives

  16. Utilities: Time, function adaption, type functions, move() and forward(), bit manipulation

  17. Numerics: mathematical functions, numerical algorithms, complex numbers, random numbers, vector arithmetic, numeric limits, type aliases, mathematical constants

  18. Concurrency: tasks and threads, sharing data, waiting for events, communicating tasks, coroutines

Releases

No releases published

Packages

 
 
 

Languages