Embracing Modern C++ Safely
Embracing Modern C++ Safely
Click to enlarge
Author(s): Khlebnikov, Rostislav
Lakos, John
Meredith, Alisdair
Romeo, Vittorio
ISBN No.: 9780137380350
Pages: 1,376
Year: 202202
Format: Trade Paper
Price: $ 78.21
Dispatch delay: Dispatched between 7 to 15 days
Status: Available

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.


To be able to view the table of contents for this publication then please subscribe by clicking the button below...
To be able to view the full description for this publication then please subscribe by clicking the button below...