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

Normalisation C++ Discussion :

2017 : un quinquennat pour une nouvelle version du C++ ?


Sujet :

Normalisation C++

  1. #21
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par barmic Voir le message
    Je ne pense pas que ce soit envisageable simplement parce que ça entraine d'énormes refonte dans le langage.

    Pour ceux qui n'ont pas compris de quoi il s'agit les pointeurs de classe ça permet, par exemple de passer une classe en paramètre d'une méthode et celle-ci peut entre autre instancier des objets de cette classe.

    C'est à mon avis pas faisable à cause du fait que les classes templates sont du code généré et c'est un problème qui, en C++, s'adresse avec les templates justement.
    De loin je dirais que ca n'a aucun interet parcequ'on peut deja faire la meme chose en C++.

    D'abord, via les template on peut avoir le type en question. Si on veut des infos au runtime on peut utiliser type_index pour identifier le type. Si tu veux faire une manip specifique avec le type, genere un lambda qui le manipule et mets le dans une map.
    Enfin bref, ya trop de moyens de se passer de "pointeurs de classe".

    Et j'imagine que ca sera encore plus simple si les gros chantiers cote reflexion (qui sont a priori necessaires pour rendre le networking attractif) sont mis en place. Par contre apparement ca va pas etre pour tout de suite...

  2. #22
    Membre expert

    Avatar de germinolegrand
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2010
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Points : 3 892
    Points
    3 892
    Par défaut
    Très clairement pour moi File System, Networking et Ranges sont les seuls à m'intéresser.

    Les modules ça a l'air cool comme ça, mais ça rajoute un truc à apprendre parce que c'est pas comme si ça remplaçait les #include. Bon, ça accélère la compilation sans affecter les performances du résultat je crois, donc je suis pas contre. Mais ça ne m'intéresse pas plus que ça, si ça y est pourquoi pas si ça y est pas je m'en passe fort bien.

    Pour le reste je suis pas contre mais je n'en ai pas besoin.

    Passons donc à ce qui m'intéresse .

    Le File System, ça y'en a besoin. Clairement. La gestion des fichiers en C++ c'est une boucherie. (Si au passage ils pouvaient améliorer les stream je serais pas contre mais je rêve pas faudrait une modification du langage pour ça).

    Le Networking : de la standardisation là dessus ça peut pas faire de mal, c'est le foutoir pardonnez moi l'expression.

    Pour les ranges, je m'intéresse à la question parce que je travaille bien plus souvent sur des conteneurs complets que sur une partie (voire toujours, sauf si l'algo est vraiment tordu/optimisé à mort). De plus, il faudrait qu'il soit simple de fournir des ranges dans l'interface d'une classe, chose qui n'est pas vraiment agréable avec les itérateurs.

  3. #23
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par germinolegrand Voir le message
    Les modules ça a l'air cool comme ça, mais ça rajoute un truc à apprendre parce que c'est pas comme si ça remplaçait les #include. Bon, ça accélère la compilation sans affecter les performances du résultat je crois, donc je suis pas contre. Mais ça ne m'intéresse pas plus que ça, si ça y est pourquoi pas si ça y est pas je m'en passe fort bien.
    Je sais pas pour toi mais perso le probleme N1 du C++ en pratique c'est bien la lenteur de la compilation, meme apres avoir fais en sorte de minimiser les degats.

    L'autre truc c'est qu'q priori les module vont justement retirer la necessite de comprendre pas mal de trucs lies aux headers (si ils vont par la solution sans headers mais c'est pas clair ou on en est...)

  4. #24
    Débutant
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Points : 176
    Points
    176
    Par défaut
    avec les modules il n'y aurait plus de définition séparée de l'implementation ?

  5. #25
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par guillaume07 Voir le message
    avec les modules il n'y aurait plus de définition séparée de l'implementation ?
    Si, ca n'impacte pas le code lui meme, juste comment il est encapsule.
    Actuellement il y a deux grandes lignes pour les modules et ce qui est pas clair c'est ou on en est aujourd'hui (ya rien dans la derniere liste de papiers).
    La premiere direction c'est simplement de faire en sorte que les fichiers generes par le compilateur a partir de la compilation du module, soient lisible par un humain, ce qui fait qu'en gros on aura plus besoin de headers puisque ces fichiers ne contiendraient que les interfaces publiques (et inline) du code du module en question. Mais cela est tellement radical que l'autre direction plus "pragmatique" mais peut etre pas incompatible serait de garder les headers et de s'en servir aussi dans le systeme de modules, mais de virer les commandes #include.

    Enfin bref, on a trop peu d'info depuis la fin de l'annee derniere sur l'avancee de cette feature malheureusement.

  6. #26
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Si, ca n'impacte pas le code lui meme, juste comment il est encapsule.
    Ouaip, en fait pour moi les modules ça n'aurrait d'intérest que si ça permet de se passer complètement des headers. D'autre langages l'on fait et franchement ça allège vraiment les choses.

  7. #27
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Citation Envoyé par zartc Voir le message
    Ouaip, en fait pour moi les modules ça n'aurrait d'intérest que si ça permet de se passer complètement des headers. D'autre langages l'on fait et franchement ça allège vraiment les choses.
    Pour rappel, la séparation du code dans un fichier header et un fichier d'implémentation n'est pas une obligation. Cela se justifie surtout pour une question de design. Donc si tu veux pas séparer ton code, ne le fais pas (mais c'est moins propre)

  8. #28
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2007
    Messages : 373
    Points : 764
    Points
    764
    Par défaut
    Je me demandais s'il serait réalisable d'ajouter un overload de l'opérateur '.', de façon à rendre transparente l'utilisation de certains wrappers comme reference_wrapper<T> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct test {
        void foo() {}
    };
     
    test t;
     
    // Norme actuelle
    std::reference_wrapper<test> trw(t);
    trw.foo(); // error
    trw.get().foo(); // ok
    Ou alors, puisque c'est l'idée sous-jacente, supporter de manière transparente les conteneurs de références d'une manière ou d'une autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    std::vector<test&> v;
    test t1, t2;
    v.push_back(t2);
    v.push_back(t1);
     
    for (auto& t : v) {
        t.foo();
    }
     
    // Une implémentation possible actuellement (pseudo code) :
    using std::vector<T&> = std::vector<std::reference_wrapper<T>>
    // Seul inconvénient :
    for (auto& t : v) {
        t.foo(); // error: 'auto' = std::reference_wrapper<T>
        t.get().foo(); // ok
    }
     
    v[0].foo(); // error
    v[0].get().foo(); // ok
    Dans le fond, c'est comme un conteneur de pointeurs si ce n'est que
    1. on a la "garantie" de ne pas avoir de nullptr dans le conteneur (sauf si on veut être mauvais : v.push_back(*(test*)nullptr);, c'est donc une garantie sémantique plutôt que technique),
    2. on bénéficie de la notation "objet" plutôt que "pointeur", ce qui peut être plus simple pour les débutants (et un caractère de moins à taper, c'est toujours ça de pris pour tout le monde).

  9. #29
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Kalith Voir le message
    Je me demandais s'il serait réalisable d'ajouter un overload de l'opérateur '.',
    Ça fait partie des choses régulièrement suggérées pour lesquelles personne n'a à ma connaissance déjà fourni une proposition complète. Dans le même genre il y a des propositions de rendre interchangeable x.f(a,b,c) et f(x,a,b,c).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  10. #30
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Enfin bref, on a trop peu d'info depuis la fin de l'annee derniere sur l'avancee de cette feature malheureusement.
    Pour info il y a quelques jours un gros pavé de doc décrivant l'implémentation (toujours en travaux) des modules dans clang a été commité :
    http://llvm.org/svn/llvm-project/cfe...cs/Modules.rst
    Il n'y a rien de définitif bien sur, mais ça donne une bonne idée de ce qui va être proposé au comité pour l'approche numéro 2 ("headers remain the truth")

    Citation Envoyé par Jean-Marc.Bourguet
    Ça fait partie des choses régulièrement suggérées pour lesquelles personne n'a à ma connaissance déjà fourni une proposition complète. Dans le même genre il y a des propositions de rendre interchangeable x.f(a,b,c) et f(x,a,b,c).
    Il me semble que cette feature est disponible en D depuis quelques temps maintenant, du coup je me demande quel est l'opinion des programmeurs D à ce sujet ?

  11. #31
    Membre habitué
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Points : 176
    Points
    176
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Dans le même genre il y a des propositions de rendre interchangeable x.f(a,b,c) et f(x,a,b,c).
    Alors ça je n'y avais jamais pensé ... mais qu'est-ce que ça serait bien !
    Plus de réflexions interminable sur le fait de choisir si tel fonctionnalité doit passer par une fonction membre ou par une fonction libre

    Tu as un exemple de mailing avec cette proposition ?
    Tu as une page d'explication de cette fonctionnalité en D ?

  12. #32
    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
    J'ai entendu des gens en parler, mais je n'ai pas mémoire de propositions (je n'ai pas encore lu le mailing de Bristol). Il y a des oppositions à ça aussi, car ça risque d'accroitre encore plus les conflits et collisions. Quand on fait a.f(), on sait très bien où chercher f, ce qui n'est pas le cas quand on fait f(a), et pose plein de problèmes.
    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.

  13. #33
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par Arzar Voir le message
    Pour info il y a quelques jours un gros pavé de doc décrivant l'implémentation (toujours en travaux) des modules dans clang a été commité :
    http://llvm.org/svn/llvm-project/cfe...cs/Modules.rst
    Il n'y a rien de définitif bien sur, mais ça donne une bonne idée de ce qui va être proposé au comité pour l'approche numéro 2 ("headers remain the truth")
    Ah! Merci pour l'info!

  14. #34
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    J'ai entendu des gens en parler, mais je n'ai pas mémoire de propositions (je n'ai pas encore lu le mailing de Bristol). Il y a des oppositions à ça aussi, car ça risque d'accroitre encore plus les conflits et collisions. Quand on fait a.f(), on sait très bien où chercher f, ce qui n'est pas le cas quand on fait f(a), et pose plein de problèmes.
    C'est dans le même genre d'idées en l'air depuis longtemps que je n'ai jamais vues concrétisées.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  15. #35
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Février 2013
    Messages : 70
    Points : 146
    Points
    146
    Par défaut
    Un équivalent d'AWT ou de Swing qui rendrait C++ portable sur tous les OS graphiques serait le bienvenue.

    Il suffirait de reprendre la devise de Lazarus: write ounce, compile anywhere. Un équivalent C++ serait très utile par ce que point de vue langage, Lazarus est faible. Par exemple, ses arbres AVL contiennent des pointeurs sans type (void * en C++) ce qui n'offre aucune sécurité de type.

  16. #36
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    bof bof SWING++, les gui franchement c'est le sloppery sloep infame: impossible a cocneptualiser et a mettre dans des composants generiques propres et sans API dementes. Y a regulierement des propal sur boost par exemple, et c'est le drame a chaque fois.

    Pour operator. y a un N-paper mais je trouve plus le numero. Y a quelqu'un qui a un talk sur un imple clang a C++Now je crois aussi

  17. #37
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    +1 pour ne pas avoir de gui dans la norme, tout au moins pas avant des années. Il y a trop de gros frameworks graphiques qui ont une API complètement différentes pour arriver à normaliser quoi que ce soit. Il vaut mieux que le comité se concentre sur d'autres choses.
    Et en plus, C++ est portable sans interface graphique. Et il existe des frameworks pour les interfaces graphiques portables. Il faudra bien finir par comprendre que la philosophie du C++ n'est pas de normaliser tout dans le langage et la bibliothèque standard, contrairement à d'autres langages. Le C++ a un écosystème très important, utilisez le

  18. #38
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par Joel F Voir le message
    bof bof SWING++, les gui franchement c'est le sloppery sloep infame: impossible a cocneptualiser et a mettre dans des composants generiques propres et sans API dementes. Y a regulierement des propal sur boost par exemple, et c'est le drame a chaque fois.
    En fait en se penchant sur les raisons purement lies a la psychologie humaine, on se rends compte qu'on peut pas faire un systeme generique pour representer graphiquement des informations. Au mieu on peut dire quelles sont les informations a representer et quelles actions on peut faire avec (en gros ce qu'on a avec le code...). Des qu'on touche a l'aspect, le seul moyen d'etre precis c'est d'avoir un language separe, comme XAML ou meme HTML ou quelque chose dans ce genre.

    Du coup effectivement ca risque pas d'arriver de si tot d'avoir un systeme de GUI. Je pense qu'on risque d'avoir plus de changes de se retrouver avec une lib gerant DOM (yavait une proposition l'annee derniere) et une specialisation pour HTML ensuite.

    Ou alors peut etre que microsoft arriverai a faire passer son XAML ou un equivalent.

    Enfin bref, les GUI c'est la merde.

    Surtout quand on pense que aujourd'hui, les interfaces ne sont plus seuleemtn graphiques. Au final il faudrait faire une abstraction input/output, ce qui serait utile pour maper des donnees et fonctions avec une implementation d'interface homme/machine particuliere, le mapping se faisant via une bibliotheque standard, que de proposer une bibilotheque precise pour gerer tout ca.
    Enfin c'est mon point de vue.

  19. #39
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Avant, je me disais aussi que le C++ devrait avoir son AWT ou Swing, avec le temps j'ai compris que ça ne servirait à rien.
    Au début en Java on avait AWT, on est passé à Swing pour avoir des composants plus léger, puis aujourd'hui le standard c'est JavaFX.
    Rendre AWT ou Swing standard ça ne sert à rien car ce sont des outils qui évoluent avec le temps.
    Le C++ a déjà Qt, et c'est très bien comme c'est.

    Perso j'aimerais bien avoir Module, Networking et FileSystem en C++, et j'aimerais que ce soit des API simples et intuitif à manipuler.
    Par contre j'ai vu la spec de Module et ça m'inquiète un peu avec les "export", j'aimerais bien que ce soit aussi simple qu'en C# avec l'utilisation des namespace.

    Java => package/import
    C# => namespace/using
    C++ => namespace/import ?
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  20. #40
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2007
    Messages : 373
    Points : 764
    Points
    764
    Par défaut
    Citation Envoyé par Joel F Voir le message
    Pour operator. y a un N-paper mais je trouve plus le numero. Y a quelqu'un qui a un talk sur un imple clang a C++Now je crois aussi
    J'ai pu trouver celui-ci (N1671) mais il date de 2004.

Discussions similaires

  1. Microsoft publie une nouvelle version de son ERP pour PME/PMI
    Par Siguillaume dans le forum Actualités
    Réponses: 0
    Dernier message: 03/06/2015, 18h06
  2. Réponses: 3
    Dernier message: 10/06/2010, 00h04
  3. Réponses: 4
    Dernier message: 24/09/2009, 19h39
  4. [D5] Détection d'une nouvelle version à distance
    Par delphi5user dans le forum Web & réseau
    Réponses: 6
    Dernier message: 25/01/2006, 15h26
  5. déclarer une nouvelle version de Tomcat
    Par keopsk dans le forum JBuilder
    Réponses: 9
    Dernier message: 02/07/2004, 22h28

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