OVH Cloud OVH Cloud

Je me lance, message de F. Glassborow

6 réponses
Avatar
Michel Michaud
Comme personne ne l'a fait, je recopie ici un message de Francis
Glassborow sur comp.lang.c++.moderated qui est destiné aux
utilisateurs francophones de son livre « You can do it », traduit
en français. J'en fais une traduction rapide et je le reposte dans
quelques minutes en français :

--------------------------------------------------------------------
'You Can Do It!' has just been published in French as 'Je me lance!',
not this is not an advertising pitch but an appeal for your help.

Quite sensibly the translators have augmented my library by adding
functions named in French that delegate to the English equivalent. That
makes life easier for the target reader and is consistent with the
pedagogical philosophy of the original book.

However the person responsible for adding code to the header files has
made a beginner's error; he has failed to qualify the delegating
definitions as inline. All is well as long as the reader is only using
single source code files but as soon as the reader gets to Chapter 3
s/he is exposed to multiple source code files which include one of the
badly modified header files. The result is redefinition errors at link
time and a complete collapse of confidence for the reader who may spend
many hours trying to discover what they have done wrong. And the typical
reader has no hope of finding the fix for themselves with the result
that the essential bond of trust between authors and readers has been
broken.

Fortunately an early reader alerted me to the fact that there was a
problem by emailing me about his struggle to get code to work.

Many readers of this newsgroup are the kind of people who are consulted
when problems arise and a good number of them have French as their first
language. If you are one of the latter and also subscribe to one or more
French language programming newsgroups I would be most grateful if you
could alert people on those groups to both the problem and the
availability of the corrected files at

http://www.spellen.org/youcandoit/french/

Now a little piece of C++ code that I use myself for detecting potential
problems with redefinition errors:

File 1

#include "x.h"
#include <iostream>

int foo();

int main(){
std::cout << foo();
}

In file 2

#include "x.h"

int foo(){ return 1;}

Replace x.h with the header you want to test and try to create an
executable. If all works then you do not have redefinition problems
(though there may be many others:-).

A pity the translators did not use such a simple test :-(

--
Francis Glassborow ACCU
Author of 'You Can Do It!' see http://www.spellen.org/youcandoit
For project ideas and contributions:
http://www.spellen.org/youcandoit/projects

6 réponses

Avatar
Michel Michaud
Voici une traduction rapide d'un message de Francis Glassborow sur
comp.lang.c++.moderated qui est destiné aux utilisateurs francophones
de son livre « You can do it », traduit en français.

--------------------------------------------------------------------
« You Can Do It! » vient d'être publié en français sous le titre
« Je me lance ! ». Ceci n'est pas une annonce pour en mousser la
vente, mais plutôt une demande d'aide.

Les traducteurs ont augmenté ma bibliothèque en ajoutant des fonctions
portant des noms en français qui appellent les équivalents en anglais.
Ceci rend la tâche plus facile pour les lecteurs francophones et est
dans l'esprit pédagogique du livre original.

Cependant la personne responsable d'ajouter le code dans les fichiers
d'en-tête a commis un erreur de débutant : il a oublié de qualifier
les fonctions en inline. Tout semble correct tant que le lecteur
utilise seulement un fichier source, mais dès qu'il utilise plusieurs
fichiers sources au chapitre 3, il peut être confronté au problème
des définitions multiples à l'édition des liens. Il risque de perdre
confiance en ses moyens en gaspillant plusieurs heures à essayer de
découvrir ce qui ne va pas. Le lecteur typique pourra même perdre son
lien de confiance envers l'auteur en étant incapable de trouver
l'erreur.

Heureusement j'ai été averti rapidement par un lecteur.

Je serais très reconnaissant envers ceux qui pourraient lancer un
avertissement dans les forums francophones en indiquant que les
fichiers corrigés sont disponibles ici :

http://www.spellen.org/youcandoit/french/

Voici un petit bout de code C++ permettant de détecter les
problèmes de redéfinitions :

Fichier 1

#include "x.h"
#include <iostream>

int foo();

int main(){
std::cout << foo();
}

Fichier 2

#include "x.h"

int foo(){ return 1;}

Remplacez x.h par l'en-tête que vous désirez tester et essayez de
créer un exécutable. Si tout fonctionne bien, vous n'avez pas de
problème de redéfinition (mais il pourrait y avoir d'autres
problèmes :-).

Il est malheureux que les traducteurs n'aient pas utilisé un test
de ce genre :-(

--
Francis Glassborow ACCU
Author of 'You Can Do It!' see http://www.spellen.org/youcandoit
For project ideas and contributions:
http://www.spellen.org/youcandoit/projects
Avatar
Michel Michaud
J'ai corrigé et envoyé la traduction à Francis en lui indiquant que
nous serons heureux de fournir l'information si d'autres lecteurs
posent des questions sur son livre ici...

Est-ce que quelqu'un ici a au moins la version anglaise ?

--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Avatar
Gabriel Dos Reis
"Michel Michaud" writes:

| Comme personne ne l'a fait, je recopie ici un message de Francis
| Glassborow sur comp.lang.c++.moderated qui est destiné aux
| utilisateurs francophones de son livre « You can do it », traduit
| en français. J'en fais une traduction rapide et je le reposte dans
| quelques minutes en français :

Il me l'a demandé -- la traduction devrait apparaître sur son site.

Merci pour le message et la traduction.

-- Gaby
Avatar
Gabriel Dos Reis
"Michel Michaud" writes:

| J'ai corrigé et envoyé la traduction à Francis en lui indiquant que
| nous serons heureux de fournir l'information si d'autres lecteurs
| posent des questions sur son livre ici...
|
| Est-ce que quelqu'un ici a au moins la version anglaise ?

Pas directement. Bjarne a un exemplaire que j'ai parcouru.

-- Gaby
Avatar
Michel Michaud
Dans le message ,
"Michel Michaud" writes:

J'ai corrigé et envoyé la traduction à Francis en lui indiquant que
nous serons heureux de fournir l'information si d'autres lecteurs
posent des questions sur son livre ici...

Est-ce que quelqu'un ici a au moins la version anglaise ?


Pas directement. Bjarne a un exemplaire que j'ai parcouru.


Je vais probablement commandé les deux versions... Est-ce que tu
as une première impression à nous faire partager ?

--
Michel Michaud
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/


Avatar
Gabriel Dos Reis
"Michel Michaud" writes:

| Dans le message ,
| > "Michel Michaud" writes:
| >
| >> J'ai corrigé et envoyé la traduction à Francis en lui indiquant que
| >> nous serons heureux de fournir l'information si d'autres lecteurs
| >> posent des questions sur son livre ici...
| >>
| >> Est-ce que quelqu'un ici a au moins la version anglaise ?
| >
| > Pas directement. Bjarne a un exemplaire que j'ai parcouru.
|
| Je vais probablement commandé les deux versions... Est-ce que tu
| as une première impression à nous faire partager ?

Oui, mais pas tout de suite là.

-- Gaby