Автор: James Raynard
Издательство: Independently published
Год: 2023
Страниц: 882
Язык: английский
Формат: pdf
Размер: 10.1 MB
Are you an experienced C++ programmer, but you have not used the language for several years? You may have heard that there have been many changes to C++ over the last decade or so, but you have not had time to keep up with them. Besides, your C++ skills may have gone a little rusty due to lack of use, and perhaps there were one or two things you never quite grasped the first time round.
I was in the same situation a few years ago. I managed to teach myself from various books, websites and videos, but it would have been so much easier if there had been one single place where I could have gone to update my C++ knowledge. To help out other people in a similar situation, I created an online course on Udemy, Update to Modern C++, in which I set out to provide everything I wish I had known at that time. This course proved very successful, and I have now decided to publish it as a book. The source code for the examples is available for download from my Github.
This book is intended for programmers who have at least an Intermediate knowledge of C++ and have a good working knowledge of features like STL and virtual functions. For the chapters on threads, you will need to have some basic knowledge of multithreading concepts (in any language.)
Programming in traditional C++ typically involves using low-level features such as arrays, pointers and loops, as well as some higher-level abstractions, like objects and inheritance. Programmers are expected to do their own memory management. Programming this way requires a great deal of care, to prevent programs being affected by fatal errors, such as memory access violations or buffer over-runs. C++ programmers became increasingly dissatisfied with having to do all their own memory management; their users because became increasingly dissatisfied with programs which kept crashing.
At the start of the 21st century, discussions started about a more "modern" C++. This would have better abstractions, support for a functional style of programming, and it would do as much of the program's work at compile-time as possible. The first result of this approach was the 2011 C++ standard. This was a substantial revision, with many new features and improvements. As Bjarne Stroustrup said, "It feels like a new language".
This was continued in subsequent standards. C++14 corrected some errors and omissions, and added a few "nice to have" features. C++17 was intended to be a major revision to the language, but all the important features had to be postponed until 2020 due to lack of time. C++20 contains almost all the new features which were planned for C++17. However, at the time of writing, it is not fully supported by all compilers.
Скачать Update to Modern C++: Refresh your knowledge of C++ and bring your skills up to date!