# Timeline of C++ (1)
<!-- .slide: data-background="#ccc" -->

* <!-- .element: class="fragment fade-in" --> C++98:
    * <!-- .element: class="fragment fade-in" --> Templates
    * <!-- .element: class="fragment fade-in" --> I/O streams
    * <!-- .element: class="fragment fade-in" --> String
    * <!-- .element: class="fragment fade-in" --> STL containers, iterators, algorithms
* <!-- .element: class="fragment fade-in" --> C++11:
    * <!-- .element: class="fragment fade-in" --> Smart pointers
    * <!-- .element: class="fragment fade-in" --> Move semantic
    * <!-- .element: class="fragment fade-in" --> Lambda expressions
    * <!-- .element: class="fragment fade-in" --> Unified initialization
    * <!-- .element: class="fragment fade-in" --> Auto deduction
    * <!-- .element: class="fragment fade-in" --> Constexpr
    * <!-- .element: class="fragment fade-in" --> Multithreading and new model of memory
    * <!-- .element: class="fragment fade-in" --> Regular expressions
    * <!-- .element: class="fragment fade-in" --> Hash tables
___
<!-- .slide: data-background="#ccc" --><!-- .slide: data-background="#ccc" -->

## Timeline of C++ (2)

* <!-- .element: class="fragment fade-in" --> C++14:
    * <!-- .element: class="fragment fade-in" --> Generic lambda
    * <!-- .element: class="fragment fade-in" --> Reader-write lock
* <!-- .element: class="fragment fade-in" --> C++17:
    * <!-- .element: class="fragment fade-in" --> Parallel algorithms
    * <!-- .element: class="fragment fade-in" --> Filesystem library
    * <!-- .element: class="fragment fade-in" --> Fold expression
    * <!-- .element: class="fragment fade-in" --> constexpr if 
    * <!-- .element: class="fragment fade-in" --> Structural binding
    * <!-- .element: class="fragment fade-in" --> any/ optional/ variant
* <!-- .element: class="fragment fade-in" --> C++20:
    * <!-- .element: class="fragment fade-in" --> Modules
    * <!-- .element: class="fragment fade-in" --> Concepts
    * <!-- .element: class="fragment fade-in" --> Ranges
    * <!-- .element: class="fragment fade-in" --> Coroutines
    * <!-- .element: class="fragment fade-in" --> Other small features :)