Built with from Grav and Hugo
C’est l’heure du test ! N’oubliez pas que vous pouvez utiliser Godbolt pour compiler et tester des petits bouts de code. Bon courage à vous 🙂
1- Que faut-il écrire juste avant la définition d’une classe (ou fonction) pour en faire une classe (ou fonction) templatée ?
2- Pourquoi n’est-il pas toujours possible de placer l’implémentation des fonctions-membres d’une classe-template dans un .cpp distinct ?
3- Que signifie le mot-clef constexpr ? A quoi sert-il ?
constexpr
4- En sachant que l’on peut instancier AlphaRange avec AlphaRange<char, ‘A’, ‘C’>, quels peuvent-être les types de chacun des paramètres de template de AlphaRange ?
AlphaRange
AlphaRange<char, ‘A’, ‘C’>
5- std::min est une fonction-template. Quelle est la signature de la fonction générée lors de l’appel à std::min(4u, 9u) ?
std::min
std::min(4u, 9u)
6- Expliquez pourquoi l’instruction std::max(3, 4.3f) ne compile pas, en précisant le nom de la phase de compilation qui pose problème. Que pouvez-vous modifier dans cet appel pour régler le problème ?
std::max(3, 4.3f)
7- Ecrivez une fonction-template qui retourne le carré d’une valeur, peu importe son type.
8- Définissez une structure-template Point, contenant deux attributs x et y de même type. Vous ajouterez deux fonctions permettant de réaliser des additions et des soustractions de Point avec + et -.
Point
x
y
+
-