Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 19/04/2010, à 14:37

Le Farfadet Spatial

Re : Une autre approche du C++ standard

Salut à tous !

rniamo a écrit :

moi j'utilise ça (plus ou moins copié collé adapté d'un lien que je n'ai pas gardé) :

Oui, je vais chercher une solution qui m'aille. Merci pour l'exemple.

mettre les sources en ligne quelquepart

Ce sera fait, lorsque j'aurais mis en place mon architecture de serveur (j'ai créé un un sujet à ce propos).

edit 3 : dans un partie "autre/outils" tu pourrais citer doxygen qui est sympa.

J'en parle déjà dans le texte et les commentaires dans les codes en sont inspirés. Je voudrais que le lecteur fasse bien la différence entre ce qui est le C++ standard et les outils qui tournent autour, du coup j'ai l'impression qu'il n'est pas judicieux de trop en parler. Qu'en pensez-vous (tous les intervenants sur ce sujet) ?

Je trouve aussi qu'il manque un schéma qui explique la compilation (cpp -> o -> bin"), est-ce voulu ?

Je pense l'introduire un peu après ce qui a déjà été rédigé dans le premier chapitre.

   À bientôt.

   Le Farfadet Spatial

Hors ligne

#52 Le 19/04/2010, à 14:50

helly

Re : Une autre approche du C++ standard

Par exemple :
page 2
page 8
Mais en même temps il y a pas  l'air de manquer de texte ...


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#53 Le 19/04/2010, à 15:10

Le Farfadet Spatial

Re : Une autre approche du C++ standard

Salut à tous !

helly a écrit :

Par exemple :
page 2
page 8
Mais en même temps il y a pas  l'air de manquer de texte ...

Il est tout à fait normal que ces pages soient blanches : chaque partie ou chapitre commence sur une page de droite, donc impaire. En conséquence, il peut y avoir des pages de gauche (paires) blanche.

   À bientôt.

   Le Farfadet Spatial

Hors ligne

#54 Le 19/04/2010, à 15:15

helly

Re : Une autre approche du C++ standard

Ok c'est logique , j'avais pas pensé au format papier .


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#55 Le 19/04/2010, à 15:19

grim7reaper

Re : Une autre approche du C++ standard

Le Farfadet Spatial a écrit :
rniamo a écrit :

edit 3 : dans un partie "autre/outils" tu pourrais citer doxygen qui est sympa.

J'en parle déjà dans le texte et les commentaires dans les codes en sont inspirés. Je voudrais que le lecteur fasse bien la différence entre ce qui est le C++ standard et les outils qui tournent autour, du coup j'ai l'impression qu'il n'est pas judicieux de trop en parler. Qu'en pensez-vous (tous les intervenants sur ce sujet) ?

Je pense qu'il peut avoir une place au même titre que les bibliothèques tierces, qui sont un plus certains mais ne sont pas incontournables (mis à part Boost bien sûr) et ne font pas non plus partie du C++ standard (je les vois comme un outil annexe). On peut très bien développer en C++ sans jamais utiliser ces bibliothèques (selon le domaine dans lequel on est), mais il est rare que l'on échappe à la rédaction d'une documentation.
C'est pourquoi je verrai bien une partie (relativement concise bien sûr, car ce n'est pas l'objet premier de cet ouvrage) sur Doxygen avec une présentation des commandes de bases par exemple.

Cela dit, il est vrai que Doxygen n'est qu'un outil annexe (comme un compilateur, un débogueur ou un profileur) et il n'a pas de lien direct avec le C++ donc sa présence est discutable. C'est toi l'auteur donc c'est à toi de juger, selon la manière dont tu conçois ton ouvrage, si sa présence est justifiée ou non.

En ce qui me concerne, je suis favorable à la présence d'une partie/chapitre/section/paragraphe sur Doxygen.

Hors ligne

#56 Le 19/04/2010, à 15:38

Luc Hermitte

Re : Une autre approche du C++ standard

Perso je ne parlerai pas des outils tiers tels que doxygen ou même un compilateur. Je ne suis pas pour un tel couplage.
Il y a déjà bien assez à faire avec le langage. (en tout cas, bien avant doxygen, je parlerai de stlfilt : il est bien plus utile que doxygen qui est souvent employé comme cache-misère)

Hors ligne

#57 Le 19/04/2010, à 15:56

grim7reaper

Re : Une autre approche du C++ standard

À la page  18 (numéro de la page sur le PDF, pas dans le lecteur) tu utilises les fonctions atoi() et atof(). Je ne sais pas si en C++ ces fonctions sont différentes de celles de la stdlib du C (auquel cas, ce qui suit n'a aucune importance et tu peux laisser ton code tel quel) ou si ce sont exactement les mêmes.

En C, la série de fonctions  atof, atoi, atol, et atoll est dépréciées au profit de leurs équivalents strtod, strtol, strtoul, etc. La raison est que ces fonctions ne gère pas les erreurs de conversions. Pire encore, si elles ne peuvent pas représenter la valeur elles ont un comportement non défini par la norme (donc le compilateur fait ce qu'il veut : il peut aussi bien rebooter le PC qu'envoyer a vos contact des photos de vous dansant nu sur la table de la cantine du lycée tongue).

ISO/IEC 9899:1999 a écrit :

7.20.1 Numeric conversion functions
The functions atof, atoi, atol, and atoll need not affect the value of the integer
expression errno on an error. If the value of the result cannot be represented, the
behavior is undefined
.

Je ne sais pas ce qu'il en est pour la norme du C++, mais je préfère le signaler afin que ceux qui ont la norme C++ sous la main puissent vérifier de quoi il en retourne.

Hors ligne

#58 Le 19/04/2010, à 16:28

Le Farfadet Spatial

Re : Une autre approche du C++ standard

Salut à tous !

grim7reaper a écrit :

En C, la série de fonctions  atof, atoi, atol, et atoll est dépréciées au profit de leurs équivalents strtod, strtol, strtoul, etc.

Tu as parfaitement raison. Cependant, le Stroustrup dans son édition la plus récente ne parle que de « atof » et consorts.

   Bon, il est certainement préférable d'utiliser « strtod », je vais changer ça.

Luc Hermitte a écrit :

je parlerai de stlfilt

Peux-tu me donner plus de détail à son sujet -- pour le coup, je reconnais que je ne connais pas.

   À bientôt.

   Le Farfadet Spatial

Dernière modification par Le Farfadet Spatial (Le 19/04/2010, à 16:30)

Hors ligne

#59 Le 19/04/2010, à 16:52

Luc Hermitte

Re : Une autre approche du C++ standard

stlfilt est un script perl qui rend compréhensible les messages d'erreurs qui impliquent des types template de la bibliothèque standard.
Ainsi au lieu de lire "std::basic_string<char,std::char_traits<char>, std::allo.....>", on lit juste "std::string". C'est appréciable aussi bien par des débutants que par des gens qui compilent au travail.

doxygen, il faut déjà une certaine expérience (du développement) pour s'en servir de façon un minimum adéquate (savoir quoi documenter, jusqu'à quel détail, et comment l'organiser).

Hors ligne

#60 Le 05/07/2010, à 11:28

Le Farfadet Spatial

Re : Une autre approche du C++ standard

Salut à tous !

   Je voulais juste vous tenir au courant : j'ai avancé dans le document. Malheureusement, je ne peux pas vous transmettre la version actuelle : comme vous le savez, je suis en plein en train de préparer mon expatriation. Du coup, j'utilise pour l'instant la connexion Internet de mes parents, qui ne me donne pas l'accès au site sur lequel j'ai déposé les versions jusqu'à présent...

   Lorsque mon serveur sera opérationnel, je déposerais la nouvelle version, mais ça peut prendre un peu de temps...

   À bientôt.

   Le Farfadet Spatial

Hors ligne

#61 Le 06/07/2010, à 09:25

yannzbig

Re : Une autre approche du C++ standard

Bonjour à tous, et spécialement à toi Farfadet,

Bravo pour ton initiative.

Quelques remarques sur ton poly:

1) §1.8 et §1.9:
Pour aller dans le sens des remarques précédentes, je trouve que les exemples que tu donnes dans ces sections sont trop orientés maths. Exemples pertinents peut-être, mais rébarbatifs.
L'effet sur moi a été immédiat: je ne les ai pas lu..
AMHA, il faudrait illustrer ces sections par des exemples plus accessibles/faciles à lire. Les notations maths demandent des efforts supplémentaires à la plupart des lecteurs, ce qui ne facilite pas la compréhension.

2) §1.4
Bien que tu aies réaffirmé ton opinion sur le sujet, je trouve (comme Luc Hermitte) que le terme "variable immuable" décrit mieux les constantes allouées sur la pile.
Par ailleurs, je pense qu'une justification serait appropriée. En effet, il n'est pas évident de comprendre pourquoi il est important de disposer/utiliser ce genre de variable. Un débutant peut se dire "boarf, pourquoi s'embêter avec des const, il suffit juste de faire un peu gaffe".

3) Je trouve surprenant d'aborder la lib standard avant les classes. C'est inhabituel, mais j'attends de lire le contenu avant d'émettre une critique.

Il est tellement plus facile de critiquer que de faire les choses, alors bravo encore pour ton initiative.

Dernière modification par yannzbig (Le 06/07/2010, à 12:38)

#62 Le 06/07/2010, à 10:36

bejazzy

Re : Une autre approche du C++ standard

Bravo pour ce projet ! C'est une très bonne initiative.
Je compte le lire petit bout par petit bout. Je noterai mes remarques et t'en ferai part.

J'ai juste une suggestion en ce qui concerne la production du document PDF. Quand je lis un tel document sur un PC, j'apprécie quand j'ai des liens cliquables (tables des matières, adresses de site Internet, bibliographies, ...). Cela rend la navigation du document plus facile. Mais peut-être est-ce juste une volonté de ta part.

Je te conseille donc de rajouter:

\usepackage{hyperref}

Tu peux configurer ce paquet comme tu le souhaites: nom de l'auteur, couleur, .... Pour ma part, je n'aime pas les couleurs par défaut que LaTeX propose:

\usepackage{hyperref}
\hypersetup{
  pdfauthor={Ton Nom},
  colorlinks=false
}

Cela ne mettra aucune couleur. Tu peux aussi bien mettre celles que tu veux:

\usepackage{color}
\definecolor{TableofContentColor}{rgb}{0., 0.25, 0.4}

\usepackage{hyperref}
\hypersetup{
  pdfauthor={Ton Nom},
  colorlinks=true,
  linkcolor=TableofContentColor,
  urlcolor=blue}

par exemple. Ce paquet comporte aussi d'autres options: mots-clés du document, permettre au lecteur PDF d'avoir un menu pour la navigation, ...

Source: http://en.wikibooks.org/wiki/LaTeX/Hyperlinks

Bon courage et à bientôt.

Dernière modification par bejazzy (Le 06/07/2010, à 10:38)


Dell Inspiron 1525 - #!CrunchBang Linux 10 Statler Xfce --- #! FR

Hors ligne

#63 Le 06/07/2010, à 17:15

Le Farfadet Spatial

Re : Une autre approche du C++ standard

Salut à tous !

bejazzy a écrit :

Bravo pour ce projet ! C'est une très bonne initiative.

Merci.

   Cela dit, ce n'est encore que le début et je suis loin de la fin.

Je noterai mes remarques et t'en ferai part.

Surtout, n'hésite pas : c'est pour cela que j'en ai parlé si tôt dans la phase de production du document.

Quand je lis un tel document sur un PC, j'apprécie quand j'ai des liens cliquables (tables des matières, adresses de site Internet, bibliographies, ...). Cela rend la navigation du document plus facile. Mais peut-être est-ce juste une volonté de ta part.

J'avais dès le départ l'intention de mettre des hyperliens, c'est fait depuis quelque temps. J'ai fait d'autres modifications concernant la mise en page, j'ai encore à faire. En ce moment, j'essaye d'avancer dans Tikz pour pouvoir faire de bons schémas et expliciter l'algorithme de calcul de puissance, mais j'ai encore du mal. Pour avoir l'impression d'avancer, j'ai vaguement commencé le tout début de la section concernant les variables (je vais beaucoup plus développer). Depuis que j'utilise XeLaTeX, j'ai des problèmes avec les citations en début de chapitre.

   J'ai déposé la version actuelle à cette adresse :

      http://dl.free.fr/fPHCQrlCz

   Gardez en tête que ce n'est pas du tout une version définitive.

   À bientôt.

   Le Farfadet Spatial

Hors ligne

#64 Le 06/07/2010, à 17:42

Luc Hermitte

Re : Une autre approche du C++ standard

yannzbig a écrit :

3) Je trouve surprenant d'aborder la lib standard avant les classes. C'est inhabituel, mais j'attends de lire le contenu avant d'émettre une critique.

C'est malheureusement inhabituel. Car c'est pourtant un énorme progrès. Cf les livres qui rompent avec l'approche historique (AC++, je me lance).

Hors ligne

#65 Le 07/07/2010, à 03:57

Le Farfadet Spatial

Re : Une autre approche du C++ standard

Salut à tous !

   Flûte, j'ai sauté le message de Yannzbig !

yannzbig a écrit :

Bravo pour ton initiative.

Merci.

1) §1.8 et §1.9:
Pour aller dans le sens des remarques précédentes, je trouve que les exemples que tu donnes dans ces sections sont trop orientés maths. Exemples pertinents peut-être, mais rébarbatifs.
L'effet sur moi a été immédiat: je ne les ai pas lu..
AMHA, il faudrait illustrer ces sections par des exemples plus accessibles/faciles à lire. Les notations maths demandent des efforts supplémentaires à la plupart des lecteurs, ce qui ne facilite pas la compréhension.

Personnellement, sans provocation, c'est le code qui me rebute : dès qu'il y en a, je parcours en diagonale. Comme quoi, ça dépend surtout du vécu. Parce que lorsque l'on considère les choses froidement, du code ou des mathématiques, dans tous les cas il s'agit d'un formalisme, ce n'est ni plus ni moins rébarbatif.

   Cela dit, il y a un message derrière cette présentation : c'est pour bien signifier que la notion de fonction en informatique est exactement la même (vraiment exactement la même) qu'en mathématiques, c'est-à-dire qu'elle est connue depuis la seconde. L'objectif étant bel et bien de se baser sur de l'acquis.

   Cela dit, je me pose en faux quant à l'idée selon laquelle il est plus facile de cacher le fond des choses et de l'exprimer de manière confuse. Mieux vaut poser clairement les choses une bonne fois.

   Toutefois, à la relecture, j'ai trouvé en effet que cela méritait quelques explications de plus.

2) §1.4
Bien que tu aies réaffirmé ton opinion sur le sujet, je trouve (comme Luc Hermitte) que le terme "variable immuable" décrit mieux les constantes allouées sur la pile.

Le fait qu'elle soit allouée sur la pile est un problème de compilation, c'est intéressant, mais pas dans une première approche du langage. Surtout qu'en fonction du compilateur, pour peu qu'il soit bon, la constante ne sera pas nécessairement déclarée sur la pile, par exemple celle-ci :

const int trois = 3;

Non, je n'utiliserais pas le terme de « variable immuable », qui irait à l'encontre du fait qu'il me semble important de parler le moins possible des variables. Surtout que tout cela se base sur des histoires de compilation, qui ne correspondent pas aux objectifs de ce document.

Par ailleurs, je pense qu'une justification serait appropriée. En effet, il n'est pas évident de comprendre pourquoi il est important de disposer/utiliser ce genre de variable. Un débutant peut se dire "boarf, pourquoi s'embêter avec des const, il suffit juste de faire un peu gaffe".

Attention, tu réagis à partir de ce que tu connais de C++. À ce stade de la lecture, le lecteur qui découvre C++ avec ce document ne sait toujours pas qu'il existe des variables, c'est d'ailleurs parfaitement volontaire. Il y aura bien une discussion là-dessus (qui consistera pour l'essentiel à dire d'éviter autant que possible les variables), mais dans la section concernant les variables.

3) Je trouve surprenant d'aborder la lib standard avant les classes. C'est inhabituel, mais j'attends de lire le contenu avant d'émettre une critique.

Comme l'a fait remarquer Luc HERMITTE, c'est une erreur de présenter les classes avant la bibliothèque standard.

Il est tellement plus facile de critiquer que de faire les choses, alors bravo encore pour ton initiative.

Si j'ai commencé à présenter ce document si tôt, c'est bien pour obtenir des retours rapidement, donc merci à toi.

   La version après le travail de cette nuit se trouve à cette adresse :

      http://dl.free.fr/getfile.pl?file=/4uRrG5TY

   À bientôt.

   Le Farfadet Spatial

Dernière modification par Le Farfadet Spatial (Le 07/07/2010, à 04:00)

Hors ligne

#66 Le 07/07/2010, à 07:23

omc

Re : Une autre approche du C++ standard

Luc Hermitte a écrit :

l'approche historique (AC++, je me lance).

AC++ ??
Qu'est-ce donc ?

Hors ligne

#67 Le 07/07/2010, à 08:49

yannzbig

Re : Une autre approche du C++ standard

Bonjour à tous,

1) §1.9: Vu que tu donnes la complexité O(n) du premier calcul de puissance et que tu prétends pouvoir faire mieux, autant pour rester cohérent donner la complexité du deuxième algo, utilisant l'expression (x^n = x^(|n/2|) * x^(|n/2|) * x^(n mod 2)).

2) §1.10 (p.25):

...chaine de caractères. Son utilisation...

A+ et bon courage au Farfadet

#68 Le 07/07/2010, à 08:55

Luc Hermitte

Re : Une autre approche du C++ standard

AC++ == Accelerated C++ de Koenig & Moo, publié chez Addisson-Wesley (comme la majorité des bons ouvrages de C++)

Sinon, il y a-t-il un moyen d'avoir des diffs sur les docs? (cela permet la lecture incrémentale et une à fond à la fin)

Hors ligne

#69 Le 07/07/2010, à 08:59

yannzbig

Re : Une autre approche du C++ standard

Complément,

§5.2, au début de la p.36:

...fait appel...
...message d'erreur, demandant ...

Au même endroit il y a une incohérence car tu utilises successivement:

...quant bien même leur nom est identique...
...quant bien même leurs noms sont identiques...

en faisant allusion aux mêmes choses.

Bon courage

#70 Le 07/07/2010, à 13:14

Le Farfadet Spatial

Re : Une autre approche du C++ standard

Salut à tous !

omc a écrit :

AC++ ??

Bon, Luc HERMITTE a déjà indiqué à quel ouvrage cet acronyme fait référence, je voulais juste dire que c'est un des incontournables concernant C++.

yannzbig a écrit :

Vu que tu donnes la complexité O(n) du premier calcul de puissance et que tu prétends pouvoir faire mieux

Je ne prétends pas faire mieux, je fais mieux : O(log n).

   Depuis le départ, j'ai bien l'intention de donner la complexité de cet algorithme, mais pour le détailler clairement, j'ai besoin de faire un schéma. Pour qu'il soit propre, je me lance dans TikZ, mais je ne maîtrise pas encore cet outil, raison pour laquelle ce n'est pas encore intégré dans le document.

   Merci pour les corrections, je les propage.

Luc Hermitte a écrit :

il y a-t-il un moyen d'avoir des diffs sur les docs?

Ce sera plus simple lorsque j'aurais monté le dépôt Mercurial du document, en attendant je vais essayer de penser à indiquer où se trouve les modifications que j'ai apportées.

   À bientôt.

   Le Farfadet Spatial

Hors ligne

#71 Le 09/07/2010, à 14:07

mydjey

Re : Une autre approche du C++ standard

Le Farfadet Spatial je lis souvent sur ce forum tes (intéressant) commentaires sur la programmation, et je me demandais  :

N'as tu jamais pensé à proposer le cours que tu es en train d'écrire sur le  C++ au Site du Zéro ?

Hors ligne

#72 Le 09/07/2010, à 14:21

Le Farfadet Spatial

Re : Une autre approche du C++ standard

Salut à tous !

mydjey a écrit :

N'as tu jamais pensé à proposer le cours que tu es en train d'écrire sur le  C++ au Site du Zéro ?

C'est-à-dire que le Site du zéro a déjà un cours sur le C++ (même si je ne le trouve pas très bon). De toute façon, pour les documents dont la taille devient importante, je ne suis pas un grand amateur des sites Internet, je préfère le support papier.

   Donc, pour répondre à ta question : non. En vérité, je ne sais même pas si cela pourrait les intéresser.

   À bientôt.

   Le Farfadet Spatial

Hors ligne

#73 Le 09/07/2010, à 16:21

Luc Hermitte

Re : Une autre approche du C++ standard

En cela, dvpz a une longue tradition d'hébergement de quelques cours trouvés sur le net.

Hors ligne

#74 Le 09/07/2010, à 16:35

mydjey

Re : Une autre approche du C++ standard

Le Farfadet Spatial a écrit :

C'est-à-dire que le Site du zéro a déjà un cours sur le C++ (même si je ne le trouve pas très bon). De toute façon, pour les documents dont la taille devient importante, je ne suis pas un grand amateur des sites Internet, je préfère le support papier.

   Donc, pour répondre à ta question : non. En vérité, je ne sais même pas si cela pourrait les intéresser.

Justement l'intérêt de ton cours serait de présenter les choses avec une méthode différente de celle du cours qui s'y trouve déjà. Ça ne peux que apporter un plus aux visiteurs du site. Je pense pas qu'il soit fermé sur le fait de mettre un cours "en doublon" pour peu que l'approche soit radicalement différente.
Et pour la version papier c'est bien mais un code source en noir et blanc y'as rien de plus incompréhensible, surtout pour un débutant.

Enfin je dis ça je dis rien.
Bonne motivation à toi pour la fin de ton cours. wink

Hors ligne

#75 Le 09/07/2010, à 17:55

Le Farfadet Spatial

Re : Une autre approche du C++ standard

Salut à tous !

mydjey a écrit :

Je pense pas qu'il soit fermé sur le fait de mettre un cours "en doublon" pour peu que l'approche soit radicalement différente.

Il faut voir aussi que je ne voudrais pas avoir l'air de cautionner l'approche proposée par le site du zéro, quand en réalité je la récuse : il y a d'autres approches que la mienne qui sont bonnes, peut-être un jour en trouverais-je une meilleure, mais celle du Site du zéro, je la trouve juste mauvaise…

   Cela dit, je reconnais qu'il y a eu un gros effort de fournit.

   Developpez.com, pourquoi pas, mais je ne suis pas certain qu'ils soient preneurs non plus, il y a déjà pas mal de choses concernant C++ sur ce site.

Et pour la version papier c'est bien mais un code source en noir et blanc y'as rien de plus incompréhensible, surtout pour un débutant.

Est-ce que tu trouves réellement les codes dans mon document difficilement lisibles ? Si oui, pourquoi ?

   À bientôt.

   Le Farfadet Spatial

Hors ligne