Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover Page
Title Page
Copyright Page
About the Author
Brief Contents
Contents in Detail
FOREWORD by Peter Bindels
ACKNOWLEDGMENTS
INTRODUCTION
About This Book
Who Should Read This Book?
What’s in This Book?
AN OVERTURE TO C PROGRAMMERS
Upgrading to Super C
C++ Themes
Relax and Enjoy Your Shoes
PART I THE C++ CORE LANGUAGE
1 UP AND RUNNING
The Structure of a Basic C++ Program
The Compiler Tool Chain
Bootstrapping C++
Debugging
Summary
2 TYPES
Fundamental Types
Arrays
User-Defined Types
Fully Featured C++ Classes
Summary
3 REFERENCE TYPES
Pointers
References
Usage of Pointers and References
auto Type Deduction
Summary
4 THE OBJECT LIFE CYCLE
An Object’s Storage Duration
Tracing the Object Life Cycle
Exceptions
A SimpleString Class
Copy Semantics
Move Semantics
Summary
5 RUNTIME POLYMORPHISM
Polymorphism
A Motivating Example
Defining Interfaces
Updating the Bank Logger
Summary
6 COMPILE-TIME POLYMORPHISM
Templates
Declaring Templates
Named Conversion Functions
mean: A Template Function Example
SimpleUniquePointer: A Template Class Example
Type Checking in Templates
Concepts
static_assert: The Preconcepts Stopgap
Non-Type Template Parameters
Variadic Templates
Advanced Template Topics
Template Source Code Organization
Polymorphism at Runtime vs. Compile Time
Summary
7 EXPRESSIONS
Operators
User-Defined Literals
Type Conversions
Constant Expressions
Volatile Expressions
Summary
8 STATEMENTS
Expression Statements
Compound Statements
Declaration Statements
Selection Statements
Iteration Statements
Jump Statements
Summary
9 FUNCTIONS
Function Declarations
auto Return Types
auto and Function Templates
Overload Resolution
Variadic Functions
Variadic Templates
Function Pointers
The Function-Call Operator
A Counting Example
Lambda Expressions
std::function
The main Function and the Command Line
Summary
PART II C++ LIBRARIES AND FRAMEWORKS
10 TESTING
Unit Tests
An Extended Example: Taking a Brake
Unit-Testing and Mocking Frameworks
Mocking Frameworks
Summary
11 SMART POINTERS
Smart Pointers
Smart Pointer Ownership
Scoped Pointers
Unique Pointers
Shared Pointers
Weak Pointers
Intrusive Pointers
Summary of Smart Pointer Options
Allocators
Summary
12 UTILITIES
Data Structures
Date and Time
Numerics
Summary
13 CONTAINERS
Sequence Containers
Associative Containers
Graphs and Property Trees
The Boost Graph Library
Boost Property Trees
Initializer Lists
Summary
14 ITERATORS
Iterator Categories
Auxiliary Iterator Functions
Additional Iterator Adapters
Summary
15 STRINGS
std::string
String View
Regular Expressions
Boost String Algorithms
Boost Tokenizer
Localizations
Summary
16 STREAMS
Streams
Summary
17 FILESYSTEMS
Filesystem Concepts
std::filesystem::path
Files and Directories
Directory Iterators
fstream Interoperation
Summary
18 ALGORITHMS
Algorithmic Complexity
Execution Policies
Non-Modifying Sequence Operations
Mutating Sequence Operations
Sorting and Related Operations
Binary Search
Partitioning Algorithms
Merging Algorithms
Extreme-Value Algorithms
Numeric Operations
Boost Algorithm
19 CONCURRENCY AND PARALLELISM
Concurrent Programming
Parallel Algorithms
Summary
20 NETWORK PROGRAMMING WITH BOOST ASIO
The Boost Asio Programming Model
Network Programming with Asio
Multithreading Boost Asio
Summary
21 WRITING APPLICATIONS
Program Support
Boost ProgramOptions
Special Topics in Compilation
Summary
INDEX
← Prev
Back
Next →
← Prev
Back
Next →