Explore the latest language and library features of C++20 such as modules, coroutines, concepts, and ranges
Shed new light on the core concepts in C++ programming, including functions, algorithms, threading, and concurrency, through practical self-contained recipes
Leverage C++ features like smart pointers, move semantics, constexpr, and more for increased robustness and performance
Description
C++ has come a long way to be one of the most widely used general-purpose languages that is fast, efficient, and high-performance at its core.
The updated second edition of Modern C++ Programming Cookbook addresses the latest features of C++20, such as modules, concepts, coroutines, and the many additions to the standard library, including ranges and text formatting. The book is organized in the form of practical recipes covering a wide range of problems faced by modern developers.
The book also delves into the details of all the core concepts in modern C++ programming, such as functions and classes, iterators and algorithms, streams and the file system, threading and concurrency, smart pointers and move semantics, and many others. It goes into the performance aspects of programming in depth, teaching developers how to write fast and lean code with the help of best practices.
Furthermore, the book explores useful patterns and delves into the implementation of many idioms, including pimpl, named parameter, and attorney-client, teaching techniques such as avoiding repetition with the factory pattern. There is also a chapter dedicated to unit testing, where you are introduced to three of the most widely used libraries for C++: Boost.Test, Google Test, and Catch2.
By the end of the book, you will be able to effectively leverage the features and techniques of C++11/14/17/20 programming to enhance the performance, scalability, and efficiency of your applications.
Who is this book for?
The book is designed for entry- or medium-level C++ programmers who have a basic knowledge of C++ and want to master the language and become prolific modern C++ developers. Experienced C++ programmers can leverage this book to strengthen their command of C++ and find a good reference to many language and library features of C++11/14/17/20.
What you will learn
Understand the new C++20 language and library features and the problems they solve
Become skilled at using the standard support for threading and concurrency for daily tasks
Leverage the standard library and work with containers, algorithms, and iterators
Solve text searching and replacement problems using regular expressions
Work with different types of strings and learn the various aspects of compilation
Take advantage of the file system library to work with files and directories
Implement various useful patterns and idioms
Explore the widely used testing frameworks for C++
I have been using C++ for over 3 decades and feel that keeping up with the constantly evolving language is challenging. The author Marius Bancila has done a thorough job of using a Cookbook approach to illustrate the various new capabilities of C++11, C++14, C++17 , C++20 and where these are useful in writing day today C++ code. The book is a great must have desk reference for C++ programmers
Amazon Verified review
Wuping XinFeb 01, 2021
5
Let's face it - Bjarne Stroustrup is the great creator of C++ who gave it the big bang in the beginning, but probably he is not a great writer, not for his couple of voluminous books.Marius Bancila proves himself a great writer for C++ books. This one, titled as a cookbook, is actually a serious one - by serious, I meant there is no folky jokes, or those laborious "head-start" lines of words just to make things lighter yet tedious. This is a well-written, concise (but not meager), to-the-point, and yet you must take the time to "chew" before coming to realize how "tasteful" it is. For different features of the the modern C++, he provides good references to the evolution and when they were adopted or merged into the language. He also provides well-articulated explanation of different language features from C++/11 to C++/20. With 700 pages, it is a cookbook style, but more than a cookbook.Not a book for beginners - you have to have at least some intermediate level C++ experience to fully appreciate the book. Neither a book for those who are used to the "lighter" writing styles. It is a cookbook but carries the gravity of a textbook that you need to "chew" again and again, while each time you can surely be getting something new out of it.I love this book. Period.
Amazon Verified review
Ryan RileyOct 20, 2020
5
The format of the book along with the code examples allows you to understand and start implementingnew concepts in your program immediately.Provides those little details that really matter. Like telling you the header file you need, or that a function that is being used comes from a name space, or what the symbols ?!= are actually doingMakes a great reference. Saves time because you can just look in the book instead reading those 5 to 10 pages that your google search returned.
Amazon Verified review
vishal kaushikJun 13, 2021
5
I was given the privilege to review this book by one of my friend and ai would like to admit this is one of the best book I have come across recently on modern C++.This book is definitely not for beginners but if you have few years of experience with modern c++ and trying to learn to best utilize the c++ modern features , you will start loving this book after reading first chapter two chapters itself.I love the recipes given in this book to explain modern c++ concepts like pimpl and named parameters and attorney client with factory pattern. These are just few examples but the book contains really good recipes to utilize modern language features.I really appreciate the author to also include testing frameworks like google test and boost test since unit testing your code is another important factor in any language.I would highly recommend this book to users who are looking to learn and implement modern c++ features in their projects , i am sure this book will tremendously help in that.
Marius Bancila is a software engineer with two decades of experience in developing solutions for line of business applications and more. He is the author of The Modern C++ Challenge and Template Metaprogramming with C++. He works as a software architect and is focused on Microsoft technologies, mainly developing desktop applications with C++ and C#. He is passionate about sharing his technical expertise with others and, for that reason, he has been recognized as a Microsoft MVP for C++ and later developer technologies since 2006. Marius lives in Romania and is active in various online communities.
A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content
How can I cancel my subscription?
To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.
What are credits?
Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.
What happens if an Early Access Course is cancelled?
Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.
Where can I send feedback about an Early Access title?
If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team.
Can I download the code files for Early Access titles?
We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.
When we publish the book, the code files will also be available to download from the Packt website.
How accurate is the publication date?
The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.
How will I know when new chapters are ready?
We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.
I am a Packt subscriber, do I get Early Access?
Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.
How is Early Access delivered?
Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.
How do I buy Early Access content?
Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.
What is Early Access?
Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.