> For the complete documentation index, see [llms.txt](https://cours-cpp.gitbook.io/resources/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cours-cpp.gitbook.io/resources/abstractions.md).

# Abstractions

[L'orienté objet](/resources/abstractions/loriente-objet.md) va couvrir :

* La syntaxe de l'orienté objet
* L'héritage
* Les tables virtuelles
* L'upcasting et le downcasting
* Les 'Run-Time Type Information'
* Le mot-clé *friend*

[Les templates (1/2)](/resources/abstractions/les-templates-1-2.md) va aborder :

* Le duck typing
* La spécialisation de templates
* L'utilisation des traits
* Les concepts
* Les *variadic templates*
* Le mot-clé *constexpr*
* La comparaison des templates aux interfaces

[Les move & smart pointers](/resources/abstractions/les-move-semantics.md) va parler :

* Des opérations de *move* (le constructeur et l'assignement)
* Des *rvalue references*
* Des catégories des expressions (*glvalues*, *lvalues*, *xvalues*, *rvalues* et *prvalues*)
* Des *smart pointers* (`std::unique_ptr`, `std::shared_ptr` et `std::weak_ptr`)          &#x20;
* Des *forwarding references*

[Les exceptions](/resources/abstractions/les-exceptions.md) va expliquer :

* Le *Stack Unwinding*
* Les garanties possibles d'une fonction
* Le mot-clé *noexcept*
* La hiérarchie standard des exceptions
* Les avantages et inconvénients face aux codes d'erreur

[Les lambdas & opérateurs](/resources/abstractions/les-lambdas-and-operateurs.md) va passer en revue :

* Les *function objects*
* `std::function<Ret(Args...)>`
* Les opérateurs `new` et `delete`
* D'autres opérateurs

[Le multithreading](/resources/abstractions/la-concurrence.md) va présenter :

* Les threads et `std::thread`
* `std::mutex` et les locks
* `std::condition_variable`
* `std::future` et `std::promise`
* `std::async` et `std::packaged_task`
* Les opérations atomiques
* Les garanties *lock-free* et *wait-free*

[Les templates (2/2)](/resources/abstractions/les-templates-2-2.md) va évoquer :

* La Template Meta-Programmation
* Substitution Failure Is Not An Error
* `std::void_t`, `std::enable_if`, `is_detected`
* Les fold expressions
