This book is a combination of the following two books :
Advanced C++ FAQs: Volume 1 : Fundamentals
Advanced C++ FAQs: Volume 2 : Generic Programming
Advanced C++ FAQs: Volume 1 : Fundamentals This book is not an introduction to C++. It assumes that the reader is aware of the basics of C++98 and C++03 and is keen to expand her horizon to latest and greatest in the present and future of C++, including C++11 and C++1y(aka C++14). It contains selected fundamental problems with detailed solutions to all of these which will help the reader to hone her skills to solve a particular problem.
Advanced C++ FAQs: Volume 2 : Generic Programming This book is sequel to the first volume Advanced C++ FAQs : Volume 1 : Fundamentals. It contains selected generic programming problems with detailed solutions.
Algorithms
1.1 Efficient Insertion in Vector 1.2 reverse algorithm for forward iterators ... 1.4 swapping unequal sections 1.5 rotate algorithm ... 1.9 Avoid Raw Loops ... 1.13 better algorithm than std::rotate ... 1.16 reverse algorithm dispatch 1.17 Efficient Algorithm for reverse ... 1.21 is partitioned algorithm 1.22 Bisection Algorithm ... 1.25 advance and next 1.26 custom iota ...
Utilities
2.1 std::move is rvalue cast 2.2 std::move if noexcept 2.3 std::forward ... 2.6 is same
Templates
3.1 alias template 3.2 template parameter pack 3.3 override virtual and template ...
Classes
Namespaces
Type Specifiers
Constant Expression
C++14
... 8.4 auto return type in function declaration ... 8.6 return type deduction for lambdas 8.7 decltype(auto) ... 8.9 explicit instantiation and auto 8.10 return type deduction and virtual ... 8.12 generalized lambda capture 8.13 generic lambda and product vector ...
Miscellaneous
More C++14
10.1 variable templates ... 10.5 static data member template ... 10.7 default argument and specialization of variable template 10.8 lambda and variable template ... 10.15 auto variable template and generic lambda 10.16 constexpr member functions and implicit const 10.17 constexpr constructor and initialization ... 10.23 deprecated attribute 10.24 Member initializers and aggregate class ... 10.31 Type Transformation Aliases ... 10.33 make unique as perfect forwarding guy ... 10.37 make unique and default initialization 10.38 make unique and array T[n] ... 10.43 Extend make unique : T[N] 10.44 allocate unique 10.45 Compile-time integer sequences ... 10.47 std::index sequence 10.48 Custom Sequence : Addition ... 10.55 sfinae and represent type of function 10.56 metafunction : check presence of type member 10.57 std::common type and sfinae
Foundation
11.1 private cast 11.2 Value Type Deduction Framework ... 11.5 Template Alias and Rebind Template 11.6 Template Alias and Non Deducible Context ... 11.8 Template Alias and Specialization ... 11.13 std::copy backward ... 11.18 iota n : iota for writing n items 11.19 Reverse iota ... 11.24 Preventing Name Hijacking ... 11.29 Move Constructor and unique pointer 11.30 Find First Null Pointer in a Container 11.31 Average of variable number of arguments .... 11.33 Exchange Utility 11.34 Addressing Tuple By Type 11.35 Quoted manipulators 11.36 Null Iterator