There are currently no items in your shopping cart.

User Panel

Forgot your password?.

PacktPub Complete Modern C++

Video Introducing this tutorial

Start Here:
Visual Studio 2015 Installation
Visual Studio 2017 Installation
Code::Blocks Installation
Cevelop Installation
XCode Installation on MacOS

Basic Language Facilities:
What is C++?
First C++ Program
The C++ Compilation Process
Primitive Types and Variables
Basic Input/Output
Functions Basics - Part I
Functions Basics - Part II
Overview of Debugging in Visual Studio
Uniform Initialization (C++11)
Reference Vs Pointer
The const Qualifier
const Qualifer and Compound Types
Automatic Type Inference (C++11)
Range-Based For Loop - I (C++11)
Range-Based For Loop - II (C++11)
Function Overloading
Default Function Arguments
Inline Functions
Function Pointers

Memory Management - Part I:
Dynamic Memory Allocation - Part I (malloc function)
Dynamic Memory Allocation - Part II (new operator)
Dynamic Memory Allocation - Part III (new[] operator)
Dynamic Memory Allocation - Part IV (2D arrays)

Classes & Objects:
Object Oriented Programming Basics
Constructor and Destructor
Non-static Data Member Initializers (C++11)
this Pointer
Constant Member Functions
Static Class Members
Copy Constructor - Part I
Copy Constructor - Part II
Delegating Constructors (C++11)
Default and Deleted Functions (C++11)
L-values, R-values and R-value References (C++11)
Move Semantics - Basics (C++11)
Move Semantics - Implementation (C++11)
Copy Elision
Move Semantics - std::move Function (C++11)

Operator Overloading:
Operator Overloading - Part I (Basics)
Operator Overloading - Part II (Assignment Operator)
Operator Overloading - Part III (Global Overloads)
Operator Overloading - Part IV (Friend Keyword)
Operator Overloading - Part V (Smart Pointer Basics)
Operator Overloading - Part VI (Smart Pointers in C++11)
Operator Overloading - Part VII (Rules)
Type Conversions - Part I (Basics)
Type Conversions - Part II (Primitive to User Type)
Type Conversions - Part III (User to Primitive Type)
Initialization Vs. Assignment and Member Initialization List

Memory Management - Part II:
Smart Pointers - I
Smart Pointers - II
Smart Pointers - III
Smart Pointers - IV
Smart Pointers - V
Smart Pointers - VI

More C++ Goodies:
Enums - Part I (Basics)
Enums - Part II (Scoped Enums C++11)
Strings - Part I (Raw Strings)
Strings - Part II (std::string)
Strings - Part III (String Streams)
Constant Expressions - constexpr (C++11)
std::initializer_list (C++11)
Dynamic Array (std::vector)
Union - I
Union - II

Object Oriented Programming:
Inheritance and Composition
Inheritance and Access Modifiers
Project - Part I (Beginning)
Project - Part II (Account and Savings Implementation)
Project - Part IV (Inheriting Constructors of C++11)
Project - Part V (Virtual Keyword)
Project - Part VI (Virtual Mechanism Internals)
Project - Part VII (Virtual Mechanism Walk-through and Virtual Destructor)
Project - Part VIII (override and final specifier in C++11)
Project - Part IX (Upcasting and Downcasting)
Project - Part X (RTTI Basics)
Project - Part XI (RTTI Operators)
Abstract Class
Multiple (Diamond) Inheritance

Exception Handling:
Exception Handling - Part I (Basics)
Exception Handling - Part II (Multiple Catch Blocks)
Exception Handling - Part III (Stack Unwinding)
Exception Handling - Part IV (Nested Exceptions)
Exception Handling - Part V (Constructor and Destructor)
Exception Handling - Part VI - (noexcept keyword in C++11)

File Input & Output:
Raw String Literals (C++11)
Introduction to Filesystem Library (C++17)
File IO - Part I (Basics)
File IO - Part II (Error Handling)
File IO - Part III (Copy Utility)
File IO - Part IV (Character IO and Seeking)
File IO - Part V (Binary IO)

Introduction to Templates
Template Argument Deduction and Instantiation
Explicit Specialization
Non-type Template Arguments
Perfect Forwarding - Part I (C++11)
Perfect Forwarding - Part II (C++11)
Variadic Templates - Part I (C++11)
Variadic Templates - Part II (C++11)
Class Templates
Class Template Explicit Specialization - Part I
Class Template Explicit Specialization - Part II
Class Template Partial Specialization
Typedef, Type Alias and Alias Templates (C++11)
Type Traits (C++11)
static_assert (C++11)

Lambda Expressions (C++11):
Callbacks Revisited - Function Pointers
Callbacks - Function Objects
Lambda Expressions
Lambda Expressions - Internals
Lambda Expressions Capture List - Part I
Lambda Expressions Capture List - Part II
Lambda Expressions Capture List - Part III
Generalized Lambda Capture

Standard Template Library:
std::array (C++11)
std::list and std::forward_list (C++11)
std::set and std::multiset
std::map and std::multimap
Unordered Containers (C++11)
std::hash (C++11)
Big O Notation and Performance of Containers
Algorithms - Part I
Algorithms - Part II

C++ Concurrency:
Concurrency Basics
Thread Creation (std::thread)
Passing Arguments To Threads
Thread Synchronization (std::mutex)
std::thread Functions and std::this_thread Namespace
Task Based Concurrency - Part I
Task Based Concurrency - Part II
Launch Policies
std::future Wait Functions
Using std::promise
Propagating Exceptions Across Threads

C++17 Core Language Features:
Deprecated and Removed Features
Feature Test Macros
If and switch With Initialization
inline Variables
Nested Namespaces
constexpr Lambda
Structured Bindings
Expression Evaluation Order
Mandatory Copy Elision - I
Mandatory Copy Elision - II

C++17 Template Features:
Compiled Time Argument Deduction (CTAD)
Folding Basics
Fold Expressions - Unary Folds
Fold Expressions - Binary Folds
Fold Expressions - Recap
Type Traits Suffixes
if constexpr - I
if constexpr - II

C++17 Standard Library Components:
std::optional - I
std::optional - II
std::optional - III
std::variant - I
std::variant - II
std::variant - III
std::string_view - I
std::string_view - II
Filesystem - path
Filesystem - directory_entry
Filesystem - Directory Functions
Filesystem - Permissions
Parallel Algorithms - I
Parallel Algorithms - II
Parallel Algorithms - III