Les smart pointers sont là en c/c++ pour éviter d'avoir à faire (et donc d'oublier) les delete, pas besoin d'aller faire du java et autres langages à garbage collector si tu ne les aime pas. En plus, l'avantage des smart pointers sur les garbage collector, c'est que tu garde une certaine maitrise du moment où seront liberés les pointeurs (=> meilleur gestion mémoire et gain de performance si tu le fais quand il faut).
Pour ce qui est de la POO en C, si je me rappelle bien, c'est ce que faisaient les tous premiers compilateurs c++, précompiler le langage C++ en C et ensuite, passer le résultat dans un compilateur C.
Comme toutes les version a venir, beaucoup de petites choses mais rien de révolutionnaire. Il y aura entre autre :
- support de nouvelle technologies "HTML 5" avec notamment le retour de Websockets.
- une fenêtre pour régler les autorisations par site web mieux organisée
- beaucoup de corrections de bug
- améliorations de performance(notamment le démarrage à froid)
- améliorations de la gestion mémoire
- ...
C'est vrai, seulement, le seul smart pointer actuellement dans la stl (auto_ptr) est quelques peu léger. Bon, je sais qu'il y à BOOST et TR1 pour ça, mais leur utilisation dépends de la politique de l'entreprise je suppose.
Je voulais simplement dire que le java permet de s'affranchir entièrement de la gestion mémoire. Après, il faut aimer perdre une partie du contrôle sur son programme...
Bon, ok, mea culpa, je sais, c'est pas bien de risquer de faire partir un troll (c'est d'ailleurs pour ça que je m'arrête la, même si je pense que j'ai déjà été trop loin)
Les smart pointers sont très loin d'éviter tous le problèmes : les auto_ptr sont une blague, les shared_ptr s'ils sont meilleurs ne détectent pas le cas le plus problématique : les références circulaires.Envoyé par nirgal76
Donc non en C++, comme en C ou même Java, il faut toujours réfléchir a la mémoire, même si c'est plus simple avec un GC : il suffit de ne pas garder de références inutiles.
Il n'y a pas les weak_ptr (associés aux shared_ptr) dans boost pour s'affranchir des problèmes de références circulaires ?
je parle au conditionnel car je n'ai jamais eu à me préoccuper de references circulaires. Si le code est bien architecturé, ça doit rarement arriver (j'ai bien dit rarement, pas jamais).
Mais bon, même si ça règle ce problème, je suis d'accord avec toi, il faut toujours réfléchir à la mémoire, c'est bien pour ça que j'aime le C++, ça me permet de garder un contrôle total sur ce que je fais. Si l'on est rigoureux, ce n'est pas un langage plus dangereux qu'un autre, c'est même l'inverse (quand tu tombe pas sur des bugs du compilo (comme celui de BCB 2010 que j'utilise au boulot). Mais bon, on s'éloigne du sujet de la news
En effet, mais ça veut dire qu'il faut que tu aies réfléchis au problème pour utiliser les weak_ptr au bon endroit. On en revient donc au fait que non, ce n'est pas tout automatique et qu'il faut bien penser à ce que l'on fait.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager