Elite C++ Mechanics
SFINAE, Template Metaprogramming, Memory Models, Strict Aliasing, and Deep Language Quirks.
1
SFINAE (Substitution Failure Is Not An Error)
Hard
2
Placement New
Hard
3
Strict Aliasing Rule Violation
Hard
4
Vector Reallocation Invalidating Iterators
Medium
5
Constexpr if (C++17)
Medium
6
Reference Collapsing Rules
Hard
7
Virtual Table Pointer Size
Medium
8
Exception Specifications (noexcept)
Easy
9
Template Metaprogramming (Factorial)
Medium
10
Pointers to Members
Hard
11
Sequence Points and Undefined Behavior
Medium
12
Currying with std::bind
Medium
13
Data Padding and Alignment
Hard
14
Bit Fields
Hard
15
Covariant Return Types
Medium
16
Move semantics on returning local objects
Hard
17
Multiple Inheritance Ambiguity
Medium
18
std::launder
Hard
19
Default Member Initializers vs Member Initializer List
Easy
20
Destructor of Temporary Objects
Medium
21
Template Template Parameters
Hard
22
Exception catching order
Medium
23
sizeof with side effects
Medium
24
Volatile keyword
Easy
25
Trailing Return Types
Medium