Generated by DeepSeek V3.2| A Tour of C++ | |
|---|---|
| Name | A Tour of C++ |
| Author | Bjarne Stroustrup |
| Language | English |
| Subject | C++ |
| Genre | Computer programming |
| Publisher | Addison-Wesley |
| Pub date | 2013 (1st ed.), 2018 (2nd ed.), 2022 (3rd ed.) |
| Pages | ~320 |
| Isbn | 978-0-13-681648-5 (3rd ed.) |
A Tour of C++ is a concise, authoritative guide to the modern C++ programming language, written by its creator, Bjarne Stroustrup. Published by Addison-Wesley, the book distills the essential elements of the language and its Standard Library for experienced programmers. It serves as a fast-paced introduction to contemporary C++ idioms, covering features from C++11 through C++20. The work is widely regarded as a successor to Stroustrup's classic, The C++ Programming Language, for readers seeking a more streamlined overview.
The book is structured as a rapid traversal of the C++ landscape, emphasizing practical usage over exhaustive detail. Stroustrup designed it to be accessible to programmers familiar with languages like C, Java, or Python. Each chapter introduces a major area of the language, supported by code examples that illustrate modern best practices. The text is closely aligned with the evolving ISO C++ standard, ensuring its technical accuracy and relevance. Its publication history spans key milestones in the language's development, with editions corresponding to C++14, C++17, and C++20.
The tour begins with fundamental constructs, detailing improvements in type safety with auto and decltype. It covers modern initialization using uniform initialization syntax and std::initializer_list. The treatment of object-oriented programming discusses class design, access modifiers, and the nuances of copy constructors and move semantics. Critical discussions on resource management introduce RAII and smart pointers like std::unique_ptr and std::shared_ptr. The book also explains compile-time programming with constexpr, templates, and concepts, which are major additions from the C++20 standard ratified by the ISO.
A significant portion is dedicated to the C++ Standard Library, showcasing its vast utility. The container types, such as std::vector, std::map, and std::unordered_set, are presented alongside their iterators and algorithms from the STL. The text highlights modern library additions like std::string_view, std::optional, and std::variant. Concurrency support is explained through components like std::thread, std::async, and std::mutex, reflecting the language's evolution for multi-core architectures. Input/output operations using iostream and formatting utilities, including those from C++20's std::format, are also covered.
Stroustrup emphasizes how modern C++ supports multiple paradigms. The book illustrates generic programming with templates and metaprogramming, functional programming with lambda expressions and std::function, and object-oriented design with inheritance and virtual functions. It advocates for a style prioritizing resource safety, zero-overhead abstractions, and efficient use of the Standard Library. Techniques like range-based for loop, structured binding, and coroutines (in C++20) are presented as tools for writing clearer, more maintainable code.
The narrative is intrinsically linked to the standardization efforts of the ISO C++ Committee (WG21). Each edition updates the tour to reflect the latest ratified ISO/IEC 14882 standard. The book traces the transformative impact of C++11, often called "Modern C++," and the incremental additions in C++14 and C++17. It introduces major features from C++20, such as modules, concepts, and ranges, discussing their role in simplifying large-scale software development. This focus ensures the guide remains a current snapshot of the language's direction.
The final sections contextualize C++ within the broader software ecosystem. It notes the language's enduring role in performance-critical domains like game engines (e.g., Unreal Engine), financial systems at institutions like JPMorgan Chase, and operating systems such as Microsoft Windows. The book acknowledges influential organizations that drive its use, including Google, Meta, and NASA. It also touches on the supporting tools, like compilers (GCC, Clang, MSVC), build systems (CMake), and the vibrant community surrounding events like CppCon and Meeting C++.
Category:Computer programming books Category:C++ Category:Works by Bjarne Stroustrup