Professional C++: Advanced Techniques
Professional C++: Advanced Techniques
Summary:
"Professional C++: Advanced Techniques" is a practical guide for developers who have already mastered the basics of the language and want to move to the next level. The book does not retell the documentation but teaches you to think like an engineer of high-load systems: manage memory efficiently, design flexible architectures, and write code that is fast and reliable.
Who this book is for
- C/C++ developers with at least 1 year of experience who want to deepen their knowledge of templates and metaprogramming.
- Engineers transitioning from embedded systems to server-side development or game engines.
- Programmers preparing for interviews at major IT companies (Google, Yandex, JetBrains).
What you will learn
- Template Metaprogramming: SFINAE, type traits, constexpr computations, variadic templates, and C++20 concepts.
- Memory Management and RAII: smart pointers, allocators, object pools, and leak prevention.
- Multithreading and Asynchrony: std::thread, std::async, mutexes, lock-free structures, memory models.
- Performance Optimization: profiling, cache misses, move semantics, RVO and copy elision.
- Design: CRTP, policies, factories, pimpl idiom, unit testing with Google Test.
Edition features
- All examples are compatible with C++17/20 (GCC, Clang, MSVC).
- Real-world tasks: from optimizing a JSON parser to implementing a thread-safe queue.
- Comparisons with other languages (Rust, Go) for critical thinking.
- A chapter on tools: Valgrind, Perf, Sanitizers, CMake.
The book is structured on the principle "from problem to solution." Each chapter begins with a real-world task (performance bottleneck, code maintainability issue) and then examines the technique that solves it. At the end of the chapters, there are exercises for independent work.
"Professional C++" is not a reference book, but a navigator through complex topics. After reading it, you will be able to read the code of Boost, Qt, and Unreal Engine without fear, design libraries from scratch, and confidently pass technical interviews.