lang:cpp:concept
Ceci est une ancienne révision du document !
Les concepts servent à forcer des classes à respecter certaines contraintes ou à définir des interfaces.
https://omnigoat.github.io/2020/01/19/cpp20-concepts/ Archive du 19/01/2020 le 05/02/2020
Définitions des concepts
Contrainte sur un type :
template <typename T> concept integral = std::is_integral_v<T>;
Contrainte sur les fonctions :
// look, this concept requires two types template <typename X, typename Y> concept they_are_mathsy = requires(X x, Y y) { { x * y }; { x / y }; { x + y }; { x - y }; };
Application des concepts
template <typename T, typename U> requires integral<T> && they_are_mathsy<T, U> void log(T&& x, U y) { ... }
lang/cpp/concept.1580936283.txt.gz · Dernière modification : 2020/02/05 21:58 de root