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

Boost C++ Discussion :

Property Map : à quoi ça sert ?


Sujet :

Boost C++

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut Property Map : à quoi ça sert ?
    Bonjour,

    Je me penche aujourd'hui sur Boost.Property Map. Et j'ai beau relire la doc, je ne vois pas quel st l'intérêt de ce bouzin.

    Si on prend l'exemple qui y est fourni (faire une recherche sur main()), je ne vois pas ce que ça apporte par rapport à un map tout simple.

    J'ai consulté le laïus de Matthieu Brucher, mais ça tient plutôt de la doc de référence.

    Quelqu'un pourrait-il partir d'un exemple le plus simple possible illustrant le besoin de cette bibliothèque ?

    Merci.

  2. #2
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    Je ne l'ai jamais utilisé, mais :

    C'est une abstraction du concept de table associative. std::map en est une implémentation, mais la doc en montre d'autre : l'identité, une fonction.

    Ainsi cette bibliothèque définit des fonctions libres et template qui permette de manipuler ces tables. Elle propose aussi quelques classes qui adaptent certaines implémentations de table associative à la définition du concept.

    En gros ça te permet d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    template<class PropertyMap>
    void do_on(PropertyMap& p)
    {
       //Manipulation de p avec les fonctions définis dans Boost.PropertyMap
    }
    Sans te soucier d'avec quoi ceci sera utiliser : une std::map, une fonction (*).

    Ceci dit, si tu ne vois pas le besoin, c'est peut-être parce que tu n'en as pas besoin ?

    PS: Une fonction est proche d'une map dans le sens où m[x] et foo(x) conviennent tout les deux pour dire : "j'associe à x tel valeur".

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Cela reste assez obscur. Mais à la lumière de tes explications, je vais relire la doc. Peut-être y verrai-je plus clair.

    Citation Envoyé par Flob90 Voir le message
    Ceci dit, si tu ne vois pas le besoin, c'est peut-être parce que tu n'en as pas besoin ?
    Ou peut-être que j'en ai besoin sans le savoir.
    Je ne le saurai que lorsque j'aurai compris cette bibliothque.

    En fait, je suis en train de revoir rapidement chaque bibliothèque et ce qu'elles offrent, afin d'être sûr d'y penser le jour où se présentera un besoin dont la solution peut être dans Boost.

  4. #4
    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 : 49
    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
    Points : 16 213
    Points
    16 213
    Par défaut
    Dit autrement, si un jour tu as envie d'écrire une bibliothèque ultra générique, pour laquelle tu as besoin de la notion d'association entre deux valeurs, mais pour laquelle tu veux laisser le choix à l'utilisateur de la manière dont il implémente cette association, alors property_map te permettra d'abstraire l'utilisation de cette association.
    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.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    C'est bien dit, ma foi.

    C'est ce que j'avais fini par comprendre suite aux explications de Flob90 et à une relecture de la doc.

    Je me demande si beaucoup de personnes ont utilisé cette bibliothèque...

    Merci à tous deux, en tout cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fichier properties à quoi ça sert?
    Par sami117 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 10/11/2009, 12h00
  2. Réponses: 5
    Dernier message: 25/11/2008, 15h22
  3. SPI_GETPOWEROFFACTIVE à quoi ca sert??
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/11/2005, 13h51
  4. [Collections] L'interface "Iterator" à quoi ça sert
    Par Samanta dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 07/04/2005, 17h51
  5. [VB6] [TWIPS] A quoi ça sert ?!
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 18/09/2003, 09h04

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