Personnellement je trouve l'énoncé pas très clair (mais c'est peut-être moi qui est un peu obtus ;) ) et j'ai donc bien du mal à estimer la pertinence de ta solution. De ce que je crois comprendre j'aurai implémenté une simple fabrique en lui ajoutant le support d'un cache (effectivement membre statique, pas le choix si on veut qu'il soit partagé).
Par contre j'ai une petite remarque de style : de nombreuses règles concernent les identificateurs qui commencent par un _. On peut en trouver certaines ici (ou directement dans la norme bien sûr), et ce n'est pas exhaustif, les problèmes de mangling ne sont pas mentionnés. En bref, dans certaines conventions d'appel (cdecl de mémoire) certains compilos vont rajouter un _ devant l'identificateur exporté ; cependant on croise parfois des librairies qui n'en ont pas, ce qui implique que des collisions sont possibles.
Pour ma part je considère que soit on connaît la norme sur les first underscores sur le bout des doigts (ainsi que toute son équipe), soit on les abandonne. J'écrivais également les membres de classe ainsi à une certaine époque, mais j'ai changé de méthode : autant se passer de cette complexité, l'avantage en C++ c'est qu'on peut choisir sur quoi on va s'user le cerveau ;)
# .
Posté par guppy . En réponse au journal Tirez-vous une bûche, qu'on cause C++ et singletons. Évalué à 7.
Personnellement je trouve l'énoncé pas très clair (mais c'est peut-être moi qui est un peu obtus ;) ) et j'ai donc bien du mal à estimer la pertinence de ta solution. De ce que je crois comprendre j'aurai implémenté une simple fabrique en lui ajoutant le support d'un cache (effectivement membre statique, pas le choix si on veut qu'il soit partagé).
Par contre j'ai une petite remarque de style : de nombreuses règles concernent les identificateurs qui commencent par un
_. On peut en trouver certaines ici (ou directement dans la norme bien sûr), et ce n'est pas exhaustif, les problèmes de mangling ne sont pas mentionnés. En bref, dans certaines conventions d'appel (cdecl de mémoire) certains compilos vont rajouter un_devant l'identificateur exporté ; cependant on croise parfois des librairies qui n'en ont pas, ce qui implique que des collisions sont possibles.Pour ma part je considère que soit on connaît la norme sur les first underscores sur le bout des doigts (ainsi que toute son équipe), soit on les abandonne. J'écrivais également les membres de classe ainsi à une certaine époque, mais j'ai changé de méthode : autant se passer de cette complexité, l'avantage en C++ c'est qu'on peut choisir sur quoi on va s'user le cerveau ;)