OVH Cloud OVH Cloud

indentation switch

25 réponses
Avatar
Yalbrieux
Bonsoir,

Pour une question de lisibilité, j'ai l'habitude d'écrire les séquences
switch ainsi :

switch(..) {
case ... : {
... ;
break ;
}
...
}

(L'éditeur n'est évidemment pas d'accord avec cette indentation)

Qu'en pensez-vous ?
Yves

5 réponses

1 2 3
Avatar
Michel Michaud
Dans news:,
« Single entry, Single exit. » En fait, qu'on entre dans chaque
bloc d'en haut, et qu'on sort systèmatiquement d'en bas.


Donc seulement des do-while ? :-)

Il ne faut pas tout confondre. SESO : un point d'entrée, un
point de sortie. C'est tout... Heureusement !

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

Avatar
James Kanze
drkm writes:

|> > Je n'avais pas remarqué qu'ils avaient le même nom. En effet, avec
|> > le même nom, le code est illégal. Avec des noms différents, il
|> > n'est légal que si les types ont des constructeurs triviaux.

|> Ok. On ne peut donc jamais avoir deux objets du même nom dans la
|> même portée. Donc les deux switch suivants sont illégaux, le premier
|> car deux objets ont le même nom, le second car le constructeur n'est
|> pas trivial :

|> switch ( ... ) {
|> case ... :
|> int i ;
|> break ;
|> case ... :
|> int i ;
|> break ;
|> }

|> class Integer {
|> public:
|> Integer( int i = 0 )
|> : myInt( i ) {
|> }
|> private:
|> int myInt ;
|> } ;

|> switch ( ... ) {
|> case ... :
|> Integer i1 ;
|> break ;
|> case ... :
|> Integer i2 ;
|> break ;
|> }

Tout à fait.

|> C'est bien ça ? C'est bien les diagnostiques que donne GCC 3.3.1,
|> en tout cas.

J'imagine qu'il y a peu de compilateurs qui s'y trompe aujourd'hui:-).

|> Et pour préciser mon premier article, c'est bien parce que les
|> deux objets portaient le même nom que je l'ai posté.

Alors, j'ai raté l'intention. Je n'ai vu que le fait qu'il y avait deux
variable d'un type défini par l'utilisateur.

C'est le problème avec les initialisateurs qui a amené la quasi-totale
des règles de programmation à insister sur les {}. Ça, et le fait qu'il
y avait des compilateurs qui avait des problèmes avec des temporaires.

--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Avatar
James Kanze
"Michel Michaud" writes:

|> Dans news:,
|> > « Single entry, Single exit. » En fait, qu'on entre dans chaque
|> > bloc d'en haut, et qu'on sort systèmatiquement d'en bas.

|> Donc seulement des do-while ? :-)

L'entrée, c'est toujours par le haut. La sortie, en revanche, c'est
effectivement plus souvent par le haut que par le bas:-).

--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Avatar
Loïc Joly
wrote:


Note aussi que j'utilise un style rigueureusement SESO ; il n'y aura
donc jamais de break dans les {}.


Tu utilises donc toujours la version nothrow de new ? Et jamais
std::vector::at ?

--
Loïc

Avatar
kanze
Loïc Joly wrote in message
news:<cgv41l$v6h$...
wrote:

Note aussi que j'utilise un style rigueureusement SESO ; il n'y aura
donc jamais de break dans les {}.


Tu utilises donc toujours la version nothrow de new ? Et jamais
std::vector::at ?


Jamais std::vector::at (d'autant plus qu'il manque dans g++ 2.95.2). Et
dans la plupart des applications, j'installe un new_handler qui avorte.

Mais c'est vrai que j'ai resisté longtemps aux exceptions. Après tout,
ce n'est que des goto (et non local, en plus) déguisés. Même
aujourd'hui, je ne les utilise que comme un espèce de abort() d'un
sous-système -- pour que je lève une exception, il faut que l'erreur
soit fatale. (Il y a quelques exceptions dans les constructeurs, à cause
de la manque d'autres possibilités de rapporter l'erreur.)

--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


1 2 3