- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
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
Andere Kunden interessierten sich auch für
- Michael CrawfordParcel Arrived Safely14,99 €
- Jack ClemonsSafely to Earth35,99 €
- Sarah SchofieldSafely Gathered In14,99 €
- Adrian GoldsworthySend Me Safely Back Again13,99 €
- Denise TiranUsing Natural Remedies Safely in Pregnancy and Childbirth37,99 €
- Rosa ParkCereal City Guide: Copenhagen17,99 €
- John Callow (UK University of Suffolk)Embracing the Darkness55,99 €
-
-
-
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.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Produktdetails
- Produktdetails
- Verlag: Pearson Education (US)
- Seitenzahl: 1376
- Erscheinungstermin: 9. Februar 2022
- Englisch
- Abmessung: 232mm x 188mm x 50mm
- Gewicht: 1798g
- ISBN-13: 9780137380350
- ISBN-10: 0137380356
- Artikelnr.: 60901583
- Verlag: Pearson Education (US)
- Seitenzahl: 1376
- Erscheinungstermin: 9. Februar 2022
- Englisch
- Abmessung: 232mm x 188mm x 50mm
- Gewicht: 1798g
- ISBN-13: 9780137380350
- ISBN-10: 0137380356
- Artikelnr.: 60901583
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.
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 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
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