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 :

CppCon : Bjarne Stroustrup annonce le projet C++ Core Guidelines


Sujet :

C++

  1. #21
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Vous tapez vraiment vos espaces/tabulations quand vous codez ? Sans rire. Sous un outil vieux de pas loin de 30ans (et qui descend d'un autre encore plus vieux) mon indentation est automatique dans les langages type C. Au pire, je lui demande de réindenter des blocs quand j'ai refactorisé la structure du code.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  2. #22
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Je n'ai pas toujours un outil moderne sous la main. Et ce genre de problèmes rend les moments où je n'ai pas l'outil plus... "mémorables".
    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.

  3. #23
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Il y a des versions portables de vim qui fonctionnement sur des clés USB. :p
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #24
    Membre confirmé Avatar de athlon64
    Profil pro
    Inscrit en
    Février 2009
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 243
    Points : 547
    Points
    547
    Par défaut
    Bonjour,
    voici le lien youtube



    Citation Envoyé par born to code Voir le message
    Bonjour, je m'appelle benjamin e'tudiant a l'ecole superieure d'informatique salama(Lubumbashi-RDC), j'ai un faible pour le c++ ... Pourriez-vous me donner une liste detaille'e d'ouvrages qui m'aideront a devenir un expert confirme' senior en c++ ? Pour l'instant, j'ai lu seulement le livre de Mathieu Nebra(programmez avec le langage c++)
    Quand tu parles de "programmeur" je pense à un développeur qui aime bien coder. Mais tu sais la génération automatique de code a fait bien des progrès depuis.
    C++ est un langage qui ne fait pas abstraction du matériel, le matériel (ex: CPU, mémoire) a évolué de façon importante ces dernières années, il y a de nouveaux concepts qui sont apparus dans le langage pour exploiter au mieux les possibilités du matériel. De même que les contraintes liées aux réseaux de communications ont aussi évoluées. Tu peux bien savoir programmer, mais si tu continues de toujours programmer de la même manière au fil des années, ton code deviendra moins efficient. Il faut évoluer et apprendre continuellement pour pouvoir choisir les méthodes les plus adaptées pour ce que l'on veut faire.

    -Je pense que déjà tu devrais commencer par posséder une bonne base, c'est important, je ne connais pas le livre de Mathieu Nebra, mais s'il est inspiré de son cours en ligne, tu devrais tout comprendre (hormis les bibliothèques), ce sont les bases.
    -Un minimum de connaissance du hardware (l'architecture des processeurs et mémoires) et ensuite la connaissance des OS (linux, windows, mac). Par exemple ton jeu video Starcraft, s'il tourne sur une tablette ou sur un PC Windows ou sur un PC sous linux, le code sera sera différent !!! Et c'est l'une des spécificités des langages compilés et donc du C++. Tu comprends vite que pour devenir un expert tu devras te spécialiser.

    -Pour les livres, il n'existe pas un livre qui traite bien tout C++, il faut savoir quel point tu veux travailler, si tu précises les gens pourront t'aider.

    Citation Envoyé par born to code Voir le message
    et y a-t-il un risque de ne connaitre qu'un seul langage( je vous prie d'etre franc avec moi)? Mais aussi dans quels domaines un programmeur doit-il exceller?
    Tu peux être expert dans un langage mais si tu fais un parcours académique tu connaîtras forcement plusieurs langages ou du moins des notions. Ça peut être utile, avec C++ par exemple tu peux ajouter C#.net, et C , qui ont des points communs avec C++, un langage interprété comme Python qui est multi-plateforme, un langage web pour ne pas paraître idiot quand tu as des messages d’erreur sur ton site perso et bien évidemment un langage de gestion de Base de données.

    -Esprit de synthèse, capacité de rédaction, l'anglais, concernant les domaines, ça aide... Un code clair et lisible avec une documentation agréable à lire fait toujours plaisir. Avec l'anglais tu t'ouvres des champs plus vastes, rien que pour les ouvrages et vidéos disponibles dans cette langue.
    Tu peux t'amuser aussi à jeter un coup d’œil sur le code source des logiciels libres connus.

    Bonne chance.

  5. #25
    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
    Citation Envoyé par Luc Hermitte Voir le message
    Sinon, c'est une bonne initiative, bien qu'il y ait des trucs que je trouve bizarres dans l'histoire. Typiquement l'utilisation du non_nullable (ou un nom comme ça), alors qu'une référence (const ou non) fait très bien l'affaire.
    une référence ne se rebind pas (aka changer ce que ca référence), non_nullable si.

  6. #26
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Je retenais surtout pour les paramètres de fonctions. Une référence me paraissait amplement suffisant.
    Après avoir regardé la classe not_null, je vois que l'on ne peut pas y affecter directement o ou nullptr. Et aussi qu'elle fait de la DbC en lâchant un assert si elle reçoit un pointeur dont la valeur était nulle. En fin de je compte, je révise mon jugement et trouve la classe intéressante.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #27
    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
    Citation Envoyé par Luc Hermitte Voir le message
    Je retenais surtout pour les paramètres de fonctions. Une référence me paraissait amplement suffisant.
    Après avoir regardé la classe not_null, je vois que l'on ne peut pas y affecter directement o ou nullptr. Et aussi qu'elle fait de la DbC en lâchant un assert si elle reçoit un pointeur dont la valeur était nulle. En fin de je compte, je révise mon jugement et trouve la classe intéressante.
    la référence n'est qu'un raccourci syntaxique avec une sémantique précise. Au final ca se compile comme un pointeur.

    L'astuce que j'ai appris devant cette keynote lundi c'est le coup du nonnull(int) = delete qui empeche nonull(0). C'est très bête quand on y pense mais ca m'avait pas sauter au yeux.

    Ce mtin, keynotes de Eric Niebler sur ranges v3

  8. #28
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Certes, cela se compile pareil ici.

    L'intérêt est que dans f(T&), je pose implicitement comme précondition que l'objet reçu doit être une référence valide, et donc correspondre à un pointeur non null. Je dis à l'utilisateur : débrouilles toi pour que si tu passes un pointeur tu sois sûr qu'il soit non null. C'est la même chose avec not_null. Sauf que ce dernier fait de son côté un assert, chose que l'on n'a pas en prenant une référence.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  9. #29
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    Certes, cela se compile pareil ici.

    L'intérêt est que dans f(T&), je pose implicitement comme précondition que l'objet reçu doit être une référence valide, et donc correspondre à un pointeur non null. Je dis à l'utilisateur : débrouilles toi pour que si tu passes un pointeur tu sois sûr qu'il soit non null. C'est la même chose avec not_null. Sauf que ce dernier fait de son côté un assert, chose que l'on n'a pas en prenant une référence.
    Quel est l’intérêt ? Tu troques une vérification statique contre une vérification au run-time ?

    L’intérêt que je vois à not_null, c’est effectivement que l’adresse (l’objet pointé) peut changer : ça fait une sacré différence avec une référence.

    Sinon, le papier d’Herb Sutter sur les lifetimes est extrêmement intéressant. C’est typiquement le genre de vérifications statiques qu’il est très important de faire, mais qui pour moi étaient impossible en C++.

  10. #30
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    Quel est l'intérêt de not_null comparé à reference_wrapper qui se rebind ?

  11. #31
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    Quel est l’intérêt ? Tu troques une vérification statique contre une vérification au run-time ?

    L’intérêt que je vois à not_null, c’est effectivement que l’adresse (l’objet pointé) peut changer : ça fait une sacré différence avec une référence.

    Sinon, le papier d’Herb Sutter sur les lifetimes est extrêmement intéressant. C’est typiquement le genre de vérifications statiques qu’il est très important de faire, mais qui pour moi étaient impossible en C++.
    Il n'y a pas moins de vérification statique qu'avec une référence.
    Dans "void f(int&); ... int * p = nullptr; f(*p)", aucune vérification statique n'est faite par le compilateur.
    Avec les not_null, il y a une vérification de type assertion (de la DbC/PpC vérifiée en mode non Release). C'est un gros progrès.

    De plus, dans les intérêts de ces guidelines, c'est de permettre justement de faire de la vérification statique de code plus simplement -- avec les outils moins évoluées qui ne font pratiquement que du grep.

    Après, ne pas pouvoir rebinder des références ne m'a jamais trop gêné. C'est plus un petit bonus supplémentaire qu'un gros bonus comme dans le cas de l'assert en ce qui me concerne.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  12. #32
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 353
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 353
    Points : 1 417
    Points
    1 417
    Par défaut
    le "not_null" est indispensable pour des "char *", les references ne marchent pas dans ce cas

  13. #33
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Dans ce cas, il y a mieux : le string view
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  14. #34
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 353
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 353
    Points : 1 417
    Points
    1 417
    Par défaut
    "not_null" est alors utile pour du "legacy" code? et/ou de l'interaction avec du code C?
    moi j'ai du code avec des char * et cette class "not_null" serait pas mal pour ca, meme si string_view est aussi une option... laquelle option est la plus couteuse?

  15. #35
    Membre régulier
    Homme Profil pro
    Développeur .NET/C/C++
    Inscrit en
    Septembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET/C/C++
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 71
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    Sinon, c'est une bonne initiative, bien qu'il y ait des trucs que je trouve bizarres dans l'histoire. Typiquement l'utilisation du non_nullable (ou un nom comme ça), alors qu'une référence (const ou non) fait très bien l'affaire.
    J'ai eu la même reflexion de mon coté quand j'ai commencé à lire quelques extraits de ces guideline. Je trouve en effet étrange le fait que l'on ne parle pas du tout des références et que l'on introduit directement l'idée d'une classe not_null, alors que l'utilisation d'une référence reste la solution la plus simple à mon sens.
    Je ne dit pas que cette classe n'a pas d'intérêt en soi, juste que pour moi si l'utilisation d'une reférence convient (ce qui est généralement le cas), alors inutile de chercher plus loin.
    "Toujours en faire plus pour en faire moins"

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/11/2011, 16h30
  2. Réponses: 0
    Dernier message: 23/11/2011, 16h30
  3. annonce illustrateur + projet mmo
    Par lordy dans le forum Projets
    Réponses: 9
    Dernier message: 29/09/2009, 19h53
  4. Réponses: 7
    Dernier message: 15/03/2007, 22h20

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