Evidemment, sans type Block comme en Smalltalk/Ruby/IO/Lisaac, t'es obligé de passer par un pointeur de fonction
Pourquoi un pointeur de fonction ? En C, je veux bien, mais en C++ on utilisera plutot un objet pour ca.
Quand tu écris la fonction d'intersection, tu connais pas E, tu connais pas F, et ça marche dans tout les cas
Moui. J'ai bien l'impression que j'ecrirais ceci pour le predicate d'intersection:
template < typename E, typename F >
bool compare( E e, F f ) { return e == f ; }
Je ne connais ni E, ni F, et ca marche dans tous les cas ou l'operateur de comparaison == est defini. Dans les autres, le compilateur va couiner, et c'est tres bien ainsi.
pas en C++ parce que si ta fonction fait n'importe quoi... ça plante, et le compilateur vérifie pas
Ah. Et dans les langage que tu cites, une fonction qui fait n'importe quoi, ca ne plante pas, et le compilateur verifie ? Pour toutes les valeurs de n'importe quoi, meme les grandes ?
[^] # Re: C++ : RAII et programmation générique
Posté par shbrol . En réponse à la dépêche Sortie de GCC 4.3. Évalué à 3.
Pourquoi un pointeur de fonction ? En C, je veux bien, mais en C++ on utilisera plutot un objet pour ca.
Quand tu écris la fonction d'intersection, tu connais pas E, tu connais pas F, et ça marche dans tout les cas
Moui. J'ai bien l'impression que j'ecrirais ceci pour le predicate d'intersection:
template < typename E, typename F >
bool compare( E e, F f ) { return e == f ; }
Je ne connais ni E, ni F, et ca marche dans tous les cas ou l'operateur de comparaison == est defini. Dans les autres, le compilateur va couiner, et c'est tres bien ainsi.
pas en C++ parce que si ta fonction fait n'importe quoi... ça plante, et le compilateur vérifie pas
Ah. Et dans les langage que tu cites, une fonction qui fait n'importe quoi, ca ne plante pas, et le compilateur verifie ? Pour toutes les valeurs de n'importe quoi, meme les grandes ?