In Embracing Modern C++ Safely, John Lakos and Vittorio Romeo analyze each core language feature of GÇ£Modern C++GÇ¥ (introduced by C++11 and C++14), illuminating exactly what developers and teams must know to succeed. Lakos and Romeo present extensive real-life code examples; thoroughly describe pitfalls that arise when engineers with diverse experience use these features together, and illuminate issues that repeatedly occur in real-world application development. Drawing on their extensive C++ experience, they focus on major features of C++ 14 and C++ 11 that have been around long enough to…mehr
In Embracing Modern C++ Safely, John Lakos and Vittorio Romeo analyze each core language feature of GÇ£Modern C++GÇ¥ (introduced by C++11 and C++14), illuminating exactly what developers and teams must know to succeed. Lakos and Romeo present extensive real-life code examples; thoroughly describe pitfalls that arise when engineers with diverse experience use these features together, and illuminate issues that repeatedly occur in real-world application development. Drawing on their extensive C++ experience, they focus on major features of C++ 14 and C++ 11 that have been around long enough to be thoroughly evaluated. You will learn which GÇ£modernGÇ¥ features are safe under almost all circumstances; which carry a real risk of misuse and suboptimal results if programmers are improperly educated and trained; and which are generally GÇ£unsafe,GÇ¥ and should be used rarely if at all. If you are ready to safely make the most of Modern C++, the in-depth, hands-on insights from this guide will help you improve your productivity and build far more robust software.Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Dr. John Lakos is a senior architect and mentor for software development at Bloomberg LP, where he created the BDE team (c. 2001), which maintains Bloomberg's open-source foundation libraries for C++ development worldwide. He is the author of Large-Scale C++ Software Design and Large-Scale C++ Volume I: Process and Architecture (both from Addison-Wesley), and is an active voting member of the C++ Standards Committee. Vittorio Romeo is a senior software engineer at Bloomberg, building mission-critical C++ middleware and training colleagues on modern C++. He is also the creator of many open-source C++ libraries and games. Dr. Rostislav Khlebnikov is a team lead and senior software engineer in Bloomberg's BDE team, where he directs the development of high-performance C++ foundation software. Alisdair Meredith is a senior software engineer in Bloomberg's BDE team and a long-standing member of the C++ Standards Committee, where he was the Chair of its Library Working Group between 2010 and 2015.
Inhaltsangabe
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 >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
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 >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
Es gelten unsere Allgemeinen Geschäftsbedingungen: www.buecher.de/agb
Impressum
www.buecher.de ist ein Internetauftritt der buecher.de internetstores GmbH
Geschäftsführung: Monica Sawhney | Roland Kölbl | Günter Hilger
Sitz der Gesellschaft: Batheyer Straße 115 - 117, 58099 Hagen
Postanschrift: Bürgermeister-Wegele-Str. 12, 86167 Augsburg
Amtsgericht Hagen HRB 13257
Steuernummer: 321/5800/1497