Je vois pas trop comment il le pourrait, faudrait savoir le nombre d'itérateur a la compilation. De plus si il y as un appel a une fonction pour chaque éléments, ca ne va pas allez plus rapideEnvoyé par poukill
Mais le concept a l'air intéressant.
Je vois pas trop comment il le pourrait, faudrait savoir le nombre d'itérateur a la compilation. De plus si il y as un appel a une fonction pour chaque éléments, ca ne va pas allez plus rapideEnvoyé par poukill
Mais le concept a l'air intéressant.
Non non, il remplace juste "foreach(....)" par une boucle for, mais sans développer la boucle.
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++
Le guide pour bien débuter en C++ - Cours et tutoriels pour apprendre C++
En faite, aprés recherche, il s'avert qu'il y as plusieurs bonne raison d'utiliser ces fonctions
- boucle écrit sous forme optimisé (utilise la méthode de parcoure la plus rapide pour chaque contenaire)
- évite des erreurs
- ....
Mais ce qui me gêne et que du coup c'est qu'a chaque iteration une fonction est appelé![]()
Du coup j'ai l'impression que l'on gagne en pref d'un coté et que l'on perd de l'autre...
Ou alors l'appel d'un foncteur est négligeable (car l'interface de la fonction appelé est assez simple) par rapport au temps que l'on peut gagné par ces fonctions ?
L'appel d'une fonction coûte un temps très très très négligeable!
Et à côté de ça, ça t'aide pour maintenir ton code, car tu n'as pas à modifier du code à 15000 endroits mais juste à modifier le code de ta fonction.
Ne te pose pas de questions, utilise des foncteurs. Ne t'inquiètes pas des performances, car tu ne dois même pas te poser la question tellement c'est négligeable.
Ou bien n'utilise plus de fonctions du tout, ni de classes, et arrache toi les cheveux![]()
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++
Le guide pour bien débuter en C++ - Cours et tutoriels pour apprendre C++
Si le foncteur est écrit correctement, tout est inliné et ça ne fait aucune différence par rapport à une écriture directe.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
faut donc utiliser utiliser des foncteur inline?Envoyé par Laurent Gomila
(dsl si cette question semble bête)
En général, le compilo optimise en inlinant, pour peu que le code soit assez bien écrit pour être inliné.
Mon blog anglais - Mes articles et critiques de livres - FAQ C++0x, avec liste des nouveautés - Conseils sur le C++ - La meilleure FAQ du monde - Avant de créer des classes que vous réutiliserez, regardez si ça n'existe pas déjà - Le site du comité de normalisation du C++
Le guide pour bien débuter en C++ - Cours et tutoriels pour apprendre C++
En général oui, un foncteur est toujours écrit le plus simplement possible et en un bloc. C'est plus une fonction avec, si besoin, un contexte autour, que véritablement une classe.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
J'utilise BOOST_FOREACH qui se rapproche plus du For Each In de VB.Net que je connais bien.
Je le trouve plus pratique que celui de la STL mais est-il aussi performant ?
Partager