IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Référence invalide, comment ça marche ?


Sujet :

C++

  1. #41
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    C'est pas indispensable, mais c'est super super pratique pour gérer les fuites mémoire, c'est pour ça que des pointeurs intelligents ont été rajouté dans TR1. C'est sûr, ce sont des objets, mais presque comme des pointeurs normaux, mais pas tout à fait

  2. #42
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut
    Oui, c'est très très pratique dans certains cas.

    J'ai fait ma propre implémentation car je trouvais (à l'époque, y'a 5-6 ans) celle de boost mal faite. Je sais pas comment elle est aujoourd'hui.
    Mais personnellement je ne les ai quasiment jamais utilisés.

    C'est vrai que c'est un trou/oubli dans la STL, et je comprends pas pourquoi les créateurs (Stroustrup?) n'y ont pas pensé. L'auto_ptr est tout juste bon pour convertir vite fait bien fait du C en C++, et autoriser ainsi les exceptions.

    La STL (et le C++) vise la disparition totale des pointeurs. Tout pointeur est un bug potentiel si une exception est jettée avant sa désallocation (vrai également pour toute resource: mémoire, fichier...).
    Et donc TOUT pointeur non encapsulé est à proscrire, et tout pointeur est à éviter.

  3. #43
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    A l'époque de la norme, je pense que tout simplement, la notion de pointeur intelligents n'était pas si évidente. Il ne faut pas oublier qu'elle a été décidée globalement en 96, et qu'à l'époque, par exemple, les gens commençaient juste à jouer avec les exceptions voir ce qu'on pourrait en tirer.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #44
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    En fait, plusieurs s'y étaient attaqués et avaient proposé leur version, mais elles n'étaient pas assez robustes - voir les commentaires de Meyers à ce sujet dans Effective C++ et de Alexandrescu dans Modern C++ Design -. Maintenant qu'une autre version est dans TR1 - shared_ptr et weak_ptr -, on peut se faire plaisir.
    En revanche, ce qui est dommage c'est qu'entre les différentes classes, tout n'est pas identique - plus ou moins de typedef et de fonctions externes -

Discussions similaires

  1. ToAsciiEx, comment cela marche ?
    Par mikyfpc dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/02/2004, 21h39
  2. [MFC] list box : comment ça marche
    Par runn2 dans le forum MFC
    Réponses: 4
    Dernier message: 28/01/2004, 12h36
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 19h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 00h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 12h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo