When I see those kinds of forms, I put "Name = User, Company = None, my special "Catch email", and 800-555-5555 for an email. Here's the table of contents. It's your guess about actual real quality, but it's 123 pages and not "fake".
PREFACE ...11
Trademarks, etc. ...11
Program Entry Point ...11
Arguments and Parameters ...........................................................................................13
Syntax Highlighting ...13
Samples ...13
C++11 ...14
CHAPTER 1 TYPES ...15
Fundamental Types ...15
Enumerations ...16
std::wcout, std::wcerr, std::wcin .....................................................................................19
Classes and Structures .................................................................................................20
Unions ...21
typedef ...23
CHAPTER 2 NAMESPACES ...25
The Global Namespace .................................................................................................25
The Scope Resolution Operator ‘::’ ................................................................................26
Defining Namespaces ...................................................................................................26
The using namespace Directive.....................................................................................27
CHAPTER 3 FUNCTIONS AND CLASSES ..............................................................................28
Declaration vs. Definition ...............................................................................................28
Functions ...30
Simple Class ...31
Member Functions ...35
Inline Member Functions ...............................................................................................35
Protection Levels and Access Specifiers .......................................................................37
Inheritance ...38
Abstract Classes ...46
Precompiled Header Files .............................................................................................48
Forward Declarations ...49
CHAPTER 4 STORAGE DURATION .......................................................................................52
Overview ...52
Static Duration ...52
Automatic Duration ...52
Dynamic Duration ...53
Thread Duration ...53
Choosing the Right Storage Duration ............................................................................54
Storage Duration Sample ..............................................................................................54
CHAPTER 5 CONSTRUCTORS, DESTRUCTORS, AND OPERATORS .................................62
Overview ...62
5
Default Constructor...62
Default Arguments in Function Declarations ..................................................................63
Parameterized Constructors ..........................................................................................63
Conversion Constructors ...............................................................................................63
Initialization of Data and Base Classes ..........................................................................65
Delegating Constructor ..................................................................................................70
Copy Constructor ...71
Copy Assignment Operator ...........................................................................................72
Move Constructor ...72
std::move ...73
Move Assignment Operator ...........................................................................................73
Removing Copy or Move Semantics ..............................................................................73
Destructors and Virtual Destructors ...............................................................................73
Operator Overloading ...73
CHAPTER 6 RESOURCE ACQUISITION IS INITIALIZATION .................................................81
What Is RAII? ...81
How Does RAII Work? ...................................................................................................81
How Do I Use RAII? ...82
std::unique_ptr ...82
std::shared_ptr ...83
std::make_shared ...85
ComPtr in WRL for Metro-Style Apps ............................................................................85
Exceptions in C++ ...86
C++ Standard Library Exceptions ..................................................................................86
CHAPTER 7 POINTERS, REFERENCES, AND CONST-CORRECTNESS .............................93
Pointer Overview ...93
Const Pointer ...93
Pointer to Const ...93
Const Pointer to Const ..................................................................................................94
Const-correctness and Const Member Functions ..........................................................94
The * & and -> Operators ..............................................................................................94
L-values and R-values ...................................................................................................95
References ...95
Pointer and Reference Sample ......................................................................................95
Volatile ...98
CHAPTER 8 CASTING IN C++ .............................................................................................. 100
Overview ... 100
const_cast ... 100
static_cast ... 100
dynamic_cast ... 101
reinterpret_cast ... 101
C-style cast ... 101
Sample ... 101
CHAPTER 9 STRINGS ... 102
6
Introduction ... 102
char* Strings ... 102
wchar_t* Strings ... 102
std::string and std::wstring Strings ............................................................................... 102
std::wstringstream Strings ........................................................................................... 103
CHAPTER 10 C++ LANGUAGE USAGES AND IDIOMS ....................................................... 105
Overview ... 105
Incrementing and Decrementing .................................................................................. 105
Concerning Null – Use nullptr ...................................................................................... 106
Strange-Looking Boolean Equality Checks .................................................................. 107
throw() and noexcept(bool expression) ........................................................................ 107
Pimpl (Pointer to Implementation) ................................................................................ 109
CHAPTER 11 TEMPLATES ................................................................................................... 113
Overview ... 113
Template functions ... 113
Template classes ... 113
CHAPTER 12 LAMBDA EXPRESSIONS ............................................................................... 116
No-Capture Lambdas .................................................................................................. 116
Lambdas with Parameters ........................................................................................... 116
Specifying a Lambda’s Return Type ............................................................................ 116
Capturing Outside Variables ........................................................................................ 116
Lambdas in Class-Member Functions.......................................................................... 118
CHAPTER 13 C++ STANDARD LIBRARY ............................................................................ 119
Introduction ... 119
Iterators ... 119
Range-Based for Loops ............................................................................................... 119
std::vector and other containers................................................................................... 120
The <algorithm> header .............................................................................................. 120
The C Run-Time Library (CRT).................................................................................... 120
CHAPTER 14 VISUAL STUDIO AND C++ ............................................................................. 121
IntelliSense ... 121
Code snippets ... 121
Including libraries ... 121
Generating assembly code files ................................................................................... 121
Terrifying build errors ................................................................................................... 122