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 :

GoingNative 2013 - Sean Parent - C++ Seasoning


Sujet :

C++

  1. #21
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Les IDs eux-mêmes peuvent être fortement typés, bien que ce ne soit pas pratique à faire en C++ (quoi que, n'y avait-il pas un truc pour rendre ça plus facile dans C++11 ou C++14?)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  2. #22
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Les IDs eux-mêmes peuvent être fortement typés, bien que ce ne soit pas pratique à faire en C++ (quoi que, n'y avait-il pas un truc pour rendre ça plus facile dans C++11 ou C++14?)
    C'est une raison de plus, tu ne crois pas

    Pour répondre à ta question, tu penses sans doute au user-defined literals
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #23
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Citation Envoyé par koala01 Voir le message
    C'est une raison de plus, tu ne crois pas
    Oui, tout à fait.
    Pour répondre à ta question, tu penses sans doute au user-defined literals
    C'est ça, mais apparemment ça ne fait pas ce que je voulais, donc le moyen le plus simple de fortement typer un identifiant sera probablement un CRTP:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    template< class T > Identifier
    {
    	int id;
    	//(explicit constructor from int, comparison operator overrides);
    };
     
    class PersonId : public Identifier<PersonId> {};
    class MagazineId : public Identifier<MagazineId> {};
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #24
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Et, du coup, on en revient à l'un de mes dadas qui en fait régulièrement sursauter plus d'un : chaque concept qui apparait dans l'analyse technique / fonctionnelle mérite amplement d'apparaitre, sous la forme d'un type particulier ou d'une fonction, dans le code final
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #25
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 301
    Par défaut
    Merci pour vos précisions, je vois un peu mieux l'approche. J’essaierai de l'utiliser sur un projet de test pour voir ce que ça donne (j'ai, jusqu'à maintenant, toujours travaillé avec l'approche pointeur).

  6. #26
    Invité de passage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1
    Par défaut
    Citation Envoyé par CedricMocquillon Voir le message
    J'ai personnellement du mal à voir comment ça peut être compatible si on a des objets à sémantique d'entité qui sont référencés par d'autres (type association UML) : il faut bien un lien entre la personne et ses magasines (on aura un truc comme un vector<Magazine*> ou vector<std::shared_ptr<Magazine>>). Je vois pas comment on peut s'en passer à moins de ne pas travailler avec des objets à sémantique d'entité (ce qui est peut être le cas de Sean Parent)
    Apologies for using English - my high school French is rusty. To be precise, what I said was that a "raw pointer" is a pointer with implied ownership. What you describe is a general relationship - which is a different use of a pointer. I wanted to clarify because that misunderstanding seems to have derailed this thread.

  7. #27
    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
    Par défaut
    @seanparent: I'm really happy to see you here, and please feel free to speak english ; though I will have to translate your answers so that people here whose english is rusty () can clearly understand you . (if you need some translation from french to english, feel free to ask also )

    Citation Envoyé par seanparent
    Apologies for using English - my high school French is rusty. To be precise, what I said was that a "raw pointer" is a pointer with implied ownership. What you describe is a general relationship - which is a different use of a pointer. I wanted to clarify because that misunderstanding seems to have derailed this thread.
    Citation Envoyé par traduction
    Je m'excuse pour l'utilisation de l'anglais - mon français datant du lycée est un peu rouillé. Pour être précis, ce que j'ai dit est qu'un "pointeur brut" est un pointeur avec responsabilité implicite. Ce que vous décrivez est une relation de type générale - ce qui est un usage différent d'un pointeur. Je souhaitais le clarifier car il semble que cette incompréhension ait dérouté ce thread.

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/02/2014, 13h36
  2. Réponses: 9
    Dernier message: 15/09/2013, 08h51
  3. Réponses: 3
    Dernier message: 08/09/2013, 18h55
  4. Conception d'une classe parente
    Par VincentB dans le forum Langage
    Réponses: 9
    Dernier message: 24/06/2003, 17h28
  5. DLL, affichage et parent...
    Par KRis dans le forum Composants VCL
    Réponses: 6
    Dernier message: 13/12/2002, 17h01

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