Basic c++

#pf11">The classic first C++ program
#pf12">The C++ compilation model
#pf14">Keywords and identifiers with special meaning
#pf15">Data types and type conversion
#pf16">Fundamental types
#pf17">Compound types
#pf19">Type definition
#pf1a">CV-qualification
#pf1b">Pointers
#pf1c">References
#pf1d">Pointers and dynamic memory handling
#pf1e">Aggregates and initializer lists
#pf20">Implicit type conversion
#pf21">Explicit type conversion
#pf22">Declarations and definitions
#pf24">Storage duration and object lifetime
#pf25">Expressions and operators
#pf27">Value categorization
#pf28">Statements
#pf2c">Functions and parameter passing
#pf2e">Strings
#pf2f">Tuples

Streams and I/O

#pf30">Streams
#pf31">Stream class hierarchy
#pf32">Using the streams library
#pf33">Formatted I/O
#pf34">Reading and writing standard streams
#pf35">Member functions for handling stream state
#pf36">Throw exceptions on stream state changes
#pf37">Stream manipulators for input
#pf38">Member functions for unformatted input
#pf39">Formatted output flags
#pf3c">Member functions for unformatted output
#pf3d">File streams
#pf3e">File mode flags
#pf3f">String streams

Classes and single class design

#pf41">Classes - introduction
#pf42">Class members
#pf45">Creating and operating on class objects
#pf46">Definition of member functions
#pf47">Special member functions
#pf48">Constructors
#pf49">Using constructors
#pf4a">Member initializers
#pf4b">Destructor
#pf4c">The this pointer
#pf4d">Default constructor
#pf4e">Type converting constructor
#pf4f">Copy constructor
#pf50">Copy assignment operator
#pf51">Copy assignment operator - straightforward implementation
#pf52">Copy assignment operator - elegant version (using the "create temporary and swap" idiom)
#pf53">Move semantics
#pf54">Move constructor
#pf55">Move assignment operator
#pf56">Rules for move constructor and move assignment operator generation
#pf56">Style recommendations for declaring special member functions
#pf58">Utility function std::move()
#pf59">Ref-qualifiers for non-static member functions
#pf5a">Situations where special member functions are used
#pf5b">Delegating constructors
#pf5c">Restricting and controlling object creation
#pf5e">Type conversion functions
#pf5f">Static members
#pf63">Some recommendations for single class design

Derived classes and polymorphism

#pf65">Derived classes
#pf67">An example on an abstract base class - Person
#pf6d">Subclass Employee
#pf73">Subclass Manager
#pf79">Subclass Consultant
#pf7b">The using declaration in class scope
#pf7d">Inheritance and special member functions
#pf7e">The NVI pattern - Non-Virtual Interface
#pf81">Initialization and destruction of objects of derived type
#pf82">Using Person-Employee-Manager-Consultant
#pf83">Dynamic type checking and dynamic type conversion
#pf84">Dynamic type control using typeid expressions
#pf85">Dynamic type conversion using dynamic_cast
#pf86">Virtual base classes - class lattice - subobject lattice
#pf87">Initialization and destruction of derived class objects with virtual base classes
#pf88">An example of real use of virtual base classes
#pf89">Comments on derived class design

Namespaces

#pf8b">Namespaces
#pf8c">Namespace member definitions
#pf8d">Using directive
#pf8e">Using declaration
#pf8f">Unnamed namespaces
#pf90">Inline namespaces
#pf91">The Interface Principle and Argument Dependent Lookup (ADL)
#pf92">Namespace recommendations

Preprocessor

#pf93">Preprocessor

Templates

#pf96">Templates
#pf97">Function templates
#pf98">Function template instantiation
#pf99">Explicit function template specialization
#pf9b">Function templates and overload resolution
#pf9c">Non-type template parameters
#pf9d">Function templates, auto and decltype
#pf9e">Class templates
#pfa1">Class template instantiation and specialization
#pfa2">Default template parameter arguments
#pfa3">Separate definitions for members of a class template
#pfa4">Variadic templates
#pfa6">Variadic emplace functions
#pfa7">Template parameter overview
#pfab">Type equivalence
#pfac">Member templates
#pfad">Alias templates
#pfae">Dependent names
#pfaf">SFINAE - Substitution Failure Is Not An Error
#pfb1">Utility function std::move()
#pfb4">Perfect forwarding
#pfb5">Utility function std::forward()
#pfb6">Policy design
#pfba">Meta programming and type traits
#pfbb">Type classification traits
#pfbe">Example use of type traits

Standard library

#pfc5">Standard library overview
#pfc6">Standard library content
#pfc7">C++1y Standard Library
#pfc9">Example: containers - iterators - algorithms - function objects - streams

Containers and iterators

#pfcb">Standard Containers Library
#pfce">Container member types
#pfcf">Container iterators
#pfd3">Sequence containers
#pfda">Sequence adaptors
#pfdd">std::initializer_list
#pfdf">Utility class pair
#pfe0">Associative containers
#pfe6">Unordered associative containers
#pfee">Some comments on containers library design

Algorithms

#pfef">Standard Algorithms Library
#pff1">Notes on standard algorithms design
#pff8">reference_wrapper
#pff9">Non-modifying sequence operations
#pffb">Mutating sequence operations
#pffe">Sorting and related operations
#pf100">Set algorithms
#pf101">Heap algorithms
#pf102">Minimum and maximum operations
#pf103">Lexicographical comparison
#pf104">Permutation generators
#pf105">Numeric algorithms

Function objects and lambdas

#pf106">Function objects (functor) and lambda expressions
#pf108">Defining function object class types
#pf109">Using function objects
#pf10a">Function objects with state
#pf10b">Standard library function object classes
#pf10e">Lambda expressions
#pf110">Non-generic lambda expressions and closure types
#pf111">Generic lambda expressions (C++14)
#pf112">Generic lambda expressions and closure types (C++14)
#pf113">Generic lambda expressions for function parameter packs (C++14)
#pf114">Function call syntax
#pf116">Callable objects
#pf119">Function call wrappers
#pf11a">Negators
#pf11c">Utility function std::bind
#pf11d">Utility function std::mem_fn
#pf11e">Template std::function
#pf122">Summing up: Containers - Iterators - Algorithms - Function objects