Cantitate/Preț
Produs

Embracing Modern C++ Safely

Autor Alisdair Meredith, John Lakos, Rostislav Khlebnikov, Vittorio Romeo
en Limba Engleză Paperback – 8 feb 2022
Maximize Reward and Minimize Risk with Modern C++ Embracing Modern C++ Safely shows you how to make effective use of the new and enhanced language features of modern C++ without falling victim to their potential pitfalls. Based on their years of experience with large, mission-critical projects, four leading C++ authorities divide C++11/14 language features into three categories: Safe, Conditionally Safe, and Unsafe. Safe features offer compelling value, are easy to use productively, and are relatively difficult to misuse. Conditionally Safe features offer significant value but come with risks that require significant expertise and familiarity before use. Unsafe features have an especially poor risk/reward ratio, are easy to misuse, and are beneficial in only the most specialized circumstances. This book distills the C++ community's years of experience applying C++11 and C++14 features and will help you make effective and safe design decisions that reflect real-world, economic engineering tradeoffs in a large-scale, diverse software development environment. The book uses examples derived from real code bases to illustrate every finding objectively and to illuminate key issues. The authors identify the sound use cases, hidden pitfalls, and shortcomings of each language feature. After reading this book, you will
  • Understand what each C+11/14 feature does and where it works best
  • Recognize how to work around show-stopping pitfalls and annoying corner cases
  • Know which features demand additional training, experience, and peer review
  • Gain insights for preparing coding standards and style guides that suit your organization's needs
  • Be equipped to introduce modern C++ incrementally and judiciously into established code bases
Seasoned C++ developers, team leads, and technical managers who want to improve productivity, code quality, and maintainability will find the insights in this modular, meticulously organized reference indispensable. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Citește tot Restrânge

Preț: 27600 lei

Preț vechi: 34501 lei
-20% Nou

Puncte Express: 414

Preț estimativ în valută:
5282 5556$ 4373£

Carte disponibilă

Livrare economică 24 decembrie 24 - 07 ianuarie 25
Livrare express 10-14 decembrie pentru 7555 lei

Preluare comenzi: 021 569.72.76

Specificații

ISBN-13: 9780137380350
ISBN-10: 0137380356
Pagini: 1376
Dimensiuni: 188 x 232 x 50 mm
Greutate: 1.75 kg
Editura: Pearson Education (US)

Descriere

Maximize Reward and Minimize Risk with Modern C++ Embracing Modern C++ Safely shows you how to make effective use of the new and enhanced language features of modern C++ without falling victim to their potential pitfalls. Based on their years of experience with large, mission-critical projects, four leading C++ authorities divide C++11/14 language features into three categories: Safe, Conditionally Safe, and Unsafe. Safe features offer compelling value, are easy to use productively, and are relatively difficult to misuse. Conditionally Safe features offer significant value but come with risks that require significant expertise and familiarity before use. Unsafe features have an especially poor risk/reward ratio, are easy to misuse, and are beneficial in only the most specialized circumstances. This book distills the C++ community's years of experience applying C++11 and C++14 features and will help you make effective and safe design decisions that reflect real-world, economic engineering tradeoffs in a large-scale, diverse software development environment. The book uses examples derived from real code bases to illustrate every finding objectively and to illuminate key issues. The authors identify the sound use cases, hidden pitfalls, and shortcomings of each language feature. After reading this book, you will

 

  • Understand what each C+11/14 feature does and where it works best
  • Recognize how to work around show-stopping pitfalls and annoying corner cases
  • Know which features demand additional training, experience, and peer review
  • Gain insights for preparing coding standards and style guides that suit your organization's needs
  • Be equipped to introduce modern C++ incrementally and judiciously into established code bases

Seasoned C++ developers, team leads, and technical managers who want to improve productivity, code quality, and maintainability will find the insights in this modular, meticulously organized reference indispensable. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

 


Cuprins

Foreword by Shawn Edwards xiii Foreword by Andrei Alexandrescu xv Acknowledgments xix About the Authors xxv Chapter 0: Introduction 1 What Makes This Book Different 1 Scope for the First Edition 2 The EMC++S Guiding Principles 3 What Do We Mean by Safely? 4 A Safe Feature 5 A Conditionally Safe Feature 5 An Unsafe Feature 6 Modern C++ Feature Catalog 6 How to Use This Book 8 Chapter 1: Safe Features 11 1.1 C++11 11 Attribute Syntax | Generalized Attribute Support 12 Consecutive >s | Consecutive Right-Angle Brackets 21 decltype | Operator for Extracting Expression Types 25 Defaulted Functions | Using = default for Special Member Functions 33 Delegating Ctors | Constructors Calling Other Constructors 46 Deleted Functions | Using = delete for Arbitrary Functions 53 explicit Operators | Explicit Conversion Operators 61 Function static '11 | Thread-Safe Function-Scope static Variables 68 Local Types '11 | Local/Unnamed Types as Template Arguments 83 long long | The long long (64 bits) Integral Type 89 noreturn | The [[noreturn]] Attribute 95 nullptr | The Null-Pointer-Literal Keyword 99 override | The override Member-Function Specifier 104 Raw String Literals | Syntax for Unprocessed String Contents 108 static_assert | Compile-Time Assertions 115 Trailing Return | Trailing Function Return Types 124 Unicode Literals | Unicode String Literals 129 using Aliases | Type/Template Aliases (Extended typedef) 133 1.2 C++14 138 Aggregate Init '14 | Aggregates Having Default Member Initializers 138 Binary Literals | Binary Literals: The 0b Prefix 142 deprecated | The [[deprecated]] Attribute 147 Digit Separators | The Digit Separator (') 152 Variable Templates | Templated Variable Declarations/Definitions 157 Chapter 2: Conditionally Safe Features 167 2.1 C++11 167 alignas | The alignas Specifier 168 alignof | The alignof Operator 184 auto Variables | Variables of Automatically Deduced Type 195 Braced Init | Braced-Initialization Syntax: {} 215 constexpr Functions | Compile-Time Invocable Functions 257 constexpr Variables | Compile-Time Accessible Variables 302 Default Member Init | Default class/union Member Initializers 318 enum class | Strongly Typed, Scoped Enumerations 332 extern template | Explicit-Instantiation Declarations 353 Forwarding References | Forwarding References (T&&) 377 Generalized PODs '11 | Trivial and Standard-Layout Types 401 Inheriting Ctors | Inheriting Base-Class Constructors 535 initializer_list | List Initialization: std::initializer_list 553 Lambdas | Anonymous Function Objects (Closures) 573 noexcept Operator | Asking if an Expression Cannot throw 615 Opaque enums | Opaque Enumeration Declarations 660 Range for | Range-Based for Loops 679 Rvalue References | Move Semantics and Rvalue References (&&) 710 Underlying Type '11 | Explicit Enumeration Underlying Type 829 User-Defined Literals | User-Defined Literal Operators 835 Variadic Templates | Variable-Argument-Count Templates 873 2.2 C++14 958 constexpr Functions '14 | Relaxed Restrictions on constexpr Functions 959 Generic Lambdas | Lambdas Having a Templated Call Operator 968 Lambda Captures | Lambda-Capture Expressions 986 Chapter 3: Unsafe Features 997 3.1 C++11 997 carries_dependency | The [[carries_dependency]] Attribute 998 final | Prohibiting Overriding and Derivation 1007 friend '11 | Extended friend Declarations 1031 inline namespace | Transparently Nested Namespaces 1055 noexcept Specifier | The noexcept Function Specification 1085 Ref-Qualifiers | Reference-Qualified Member Functions 1153 union '11 | Unions Having Non-Trivial Members 1174 3.2 C++14 1182 auto Return | Function (auto) Return-Type Deduction 1182 decltype(auto) | Deducing Types Using decltype Semantics 1205 Afterword: Looking Back and Looking Forward 1215 Glossary 1217 Bibliography 1281 Index 1305