This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
in204:tds:sujets:td3:part2 [2020/09/30 06:46] bmonsuez |
in204:tds:sujets:td3:part2 [2022/11/18 10:49] (current) |
||
---|---|---|---|
Line 44: | Line 44: | ||
<hidden Correction> | <hidden Correction> | ||
- | <nodisp 2> | ||
Supposons d'abord que nous souhaitons appelé la fonction ''generic::populate_with_randoms'' en lui passant un tableau de type ''std::string'' avec le code suivant : | Supposons d'abord que nous souhaitons appelé la fonction ''generic::populate_with_randoms'' en lui passant un tableau de type ''std::string'' avec le code suivant : | ||
Line 86: | Line 85: | ||
} | } | ||
</code> | </code> | ||
- | </nodisp> | ||
</hidden> | </hidden> | ||
===== Question n°2 ===== | ===== Question n°2 ===== | ||
Line 110: | Line 108: | ||
<hidden Correction> | <hidden Correction> | ||
- | <nodisp 2> | ||
La classe ''greater_test'' teste si ''aValue > anotherValue'' et retourne ''true'' si la condition est vérifiée et ''false'' si cette condition n'est pas vérifiée. | La classe ''greater_test'' teste si ''aValue > anotherValue'' et retourne ''true'' si la condition est vérifiée et ''false'' si cette condition n'est pas vérifiée. | ||
Line 135: | Line 132: | ||
} | } | ||
</code> | </code> | ||
- | </nodisp> | + | |
</hidden> | </hidden> | ||
Line 146: | Line 143: | ||
<hidden Correction> | <hidden Correction> | ||
- | <nodisp 2> | ||
Nous ajoutons à la liste des paramètres de types de la fonction, un paramètre supplémentaire ''sortTraits'' qui correspond au type d'une classe qui doit exposer une méthode statique permettant de tester si une valeur est plus grande qu'une autre valeur pour des valeurs de types ''T'' et ayant pour nom ''is_greater''. | Nous ajoutons à la liste des paramètres de types de la fonction, un paramètre supplémentaire ''sortTraits'' qui correspond au type d'une classe qui doit exposer une méthode statique permettant de tester si une valeur est plus grande qu'une autre valeur pour des valeurs de types ''T'' et ayant pour nom ''is_greater''. | ||
Line 182: | Line 178: | ||
} | } | ||
</code> | </code> | ||
- | </nodisp> | ||
</hidden> | </hidden> | ||
Line 190: | Line 185: | ||
<hidden Correction> | <hidden Correction> | ||
- | <nodisp 2> | ||
Il suffit de dupliquer la classe ''greater_traits'' et de remplacer l'opérateur ''>'' par l'opérateur ''<''. | Il suffit de dupliquer la classe ''greater_traits'' et de remplacer l'opérateur ''>'' par l'opérateur ''<''. | ||
Line 205: | Line 199: | ||
}; | }; | ||
</code> | </code> | ||
- | </nodisp> | ||
</hidden> | </hidden> | ||
Line 233: | Line 226: | ||
<hidden Compléments> | <hidden Compléments> | ||
- | <nodisp 2> | ||
Nous avons vu comment paramètrer la fonction ''simple_sort'' par un opérateur de comparaison. Cependant, l'opérateur de comparaison est un opérateur qui expose une méthode ''statique''. Nous ne pouvons pas choisir un opérateur de conversion dynamique, ie. dont nous pouvons au moment de l'exécution décider de l'ordre, si c'est un tri ascendant ou descendant. Nous pourrions imagine une telle classe. | Nous avons vu comment paramètrer la fonction ''simple_sort'' par un opérateur de comparaison. Cependant, l'opérateur de comparaison est un opérateur qui expose une méthode ''statique''. Nous ne pouvons pas choisir un opérateur de conversion dynamique, ie. dont nous pouvons au moment de l'exécution décider de l'ordre, si c'est un tri ascendant ou descendant. Nous pourrions imagine une telle classe. | ||
Line 389: | Line 381: | ||
</code> | </code> | ||
- | </nodisp> | + | |
</hidden> | </hidden> | ||