Professional C++: Advanced Techniques
Professional C++: Advanced Techniques
Summary:
The book "Professional C++: Advanced Techniques" is intended for developers who already write confidently in C++ but want to reach the next level. If you are familiar with the basics of the language but feel you are not using its full potential, this edition is for you. The author, Artem Sokolov, a senior engineer with 10 years of experience, shares techniques rarely found in textbooks for beginners.
The book is structured as a series of deep dives into key topics of modern C++ (C++17/20 standards). Each chapter contains not only theory but also practical examples ready for use in real projects.
What you will learn:
- Templates and Metaprogramming — from variadic templates to SFINAE and concepts. Learn to write generic libraries that work at compile time.
- Move Semantics and Perfect Forwarding — understand rvalue references, std::move, and std::forward to avoid unnecessary copies and performance leaks.
- Multithreading and Synchronization — threads, mutexes, lock-free structures, std::async, and parallel algorithms. Master writing safe concurrent code.
- Optimization and Profiling — how to use perf, Valgrind, sanitizers, as well as manual optimization techniques: cache locality, memory manipulation, inlining.
- Advanced Design Patterns — CRTP, Pimpl, Type Erasure, Policy-based design. Learn how these patterns are implemented specifically in C++.
- Working with System Resources — memory management (custom allocators), working with files, network sockets, and asynchronous I/O.
Who this book is for:
- Developers transitioning from Java/Python to C++ who want to master its depth.
- Engineers working on high-load systems, games, financial applications, or embedded software.
- Senior students and postgraduates studying systems programming.
The book is not overloaded with academic abstractions — each section is backed by real-world tasks: from implementing your own smart pointer to writing a mini web server. You will gain not just knowledge but tools for daily work. After reading, you will be able to read and understand code from STL, Boost, and modern C++ libraries, as well as confidently participate in code reviews at a senior developer level.
This edition is suitable both for self-study and for use as a desktop reference on advanced C++ capabilities.