Outils d'utilisateurs

Outils du Site


callable

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

callable [2016/12/22 00:00]
winjerome N'oublie pas que std::less/greater sont des classes templates ;)
callable [2019/03/10 11:09] (Version actuelle)
alavida [Les fonctions génériques]
Ligne 3: Ligne 3:
  
  
-====== [Aller plus loin] Les fonctions comme données ======+====== [Aller plus loin] Manipuler une fonction dans une variable ======
  
 En première approche, une fonction peut être vue comme une boîte noire, qui peut prendre des informations (les arguments), réaliser une tâche et peut retourner un résultat. Les informations en entrée et sortie seront généralement des données plus ou moins complexes : des entiers, des réels, des chaînes, etc. En première approche, une fonction peut être vue comme une boîte noire, qui peut prendre des informations (les arguments), réaliser une tâche et peut retourner un résultat. Les informations en entrée et sortie seront généralement des données plus ou moins complexes : des entiers, des réels, des chaînes, etc.
Ligne 46: Ligne 46:
  
 <code cpp> <code cpp>
-std::sort(std::begin(v), std::end(v), std::greater<type>);+std::sort(std::begin(v), std::end(v), std::greater<type>{});
 </code> </code>
  
Ligne 198: Ligne 198:
  
 template<typename T, typename F> template<typename T, typename F>
-void invoke(T x, T y, F f) {+void invoke(F f, T x, T y) {
     std::cout << f(x, y) << std::endl;     std::cout << f(x, y) << std::endl;
 } }
Ligne 207: Ligne 207:
  
 int main() { int main() {
-    invoke(std::plus<int>(), 1, 3); 
     invoke(minus, 1, 3);     invoke(minus, 1, 3);
 +    invoke(std::plus<int>(), 1, 3);
     invoke([](int lhs, int rhs){ return lhs * rhs; }, 1, 3);     invoke([](int lhs, int rhs){ return lhs * rhs; }, 1, 3);
 } }
callable.1482361204.txt.gz · Dernière modification: 2016/12/22 00:00 par winjerome