OVH Cloud OVH Cloud

Type int par defaut... Ca me gonfle

15 réponses
Avatar
Dominique Vaufreydaz
Bonjour,

aujourd'hui, mauvais copier coller (probleme entre la chaise et le clavier... bref)
et je me retrouve avec une fonction qui devrait retourner void mais que c'est
pas marqué. Le compilo, lui, considere que du coup c'est int et rale parceque
je retourne rien et j'en passe...

BRef, je comprends pas comment il peut y avoir un trou aussi enorme
dans la norme : ne rien mettre = int... C'est d'ailleurs aussi vrai pour
une variable inconnue qui prendra defacto, le type int...

Ca faisait longtemps que ca m'etais pas arrivé ca, et perso, je croyais
dur comme fer que c'etait lie au C mais qu'en C++ on pouvait pas
ne pas mettre de type...

Bref, une question pour les pro de la norme et ma culture générale :
- mon compilo (VC) ne respecte pas la norme ?
- la norme autorise-t-elle une syntaxe a trou ?

En plus, c'est pas coherent avec les parametres d'une fonction.
Si on mets rien, il considere pas qu'on veut apsser un int !

Merci de vos lumieres. Doms.

5 réponses

1 2
Avatar
James Kanze
Dominique Vaufreydaz wrote:

[...]
Si tu ne lui dis pas à quelle norme il doit se conformer,
comment peut-il le savoir ? Il y en a tellement:-).


Disons que j'aurais eu tendance a croire qu'il
pendrait ca par defaut.


C'est une triste réalité qu'aucun compilateur prend la
conformance à une norme comme défaut. Avec g++, il faut
-std=c++98, avec Sun CC -g, et avec VC++, au moins trois ou
quatres options (/GR, /EHs et encore une pour la gestion des
pointeurs aux membres. Et sans doute d'autres aussi.)

--
James Kanze (Gabi Software) email:
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
Alain Gaillard wrote:

Qu'est-ce que vous racontez là ?


Qu'un compilateur qui accepte l'int implicit n'est pas conforme.


LOL :-)
"Qu'est-ce que vous racontez là ? est une façon de parler qui
veut dire : "Ce que vous dites est un tantinet bizarre". :-)


Je sais. Et j'ai répété donc ce que j'avais dit, parce que je ne
vois pas ce qu'il y a de bizarre à dire qu'un compilateur qui
accepte l'int implicit n'est pas conforme.

--
James Kanze (Gabi Software) email:
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
Alain Gaillard

Je sais. Et j'ai répété donc ce que j'avais dit, parce que je ne
vois pas ce qu'il y a de bizarre à dire qu'un compilateur qui
accepte l'int implicit n'est pas conforme.


James, tu prends toujours tout au premier degré comme ça ?
Sans doute, sinon tu ne te serais pas sentit obligé de répéter, ni avant
ni ici.

Bon je vais essayer d'être bien clair:
Il m'a paru curieux autant qu'étrange que le posteur initial nous
raconte que VC supporte l'implicit int, car VC 2005 ne le supporte pas.
Il est vrai que le posteur initial n'avait pas précisé de quel
compilateur il s'agissait.

Quant à toi, il m'a paru curieux autant qu'étrange que tu nous racontes
que l'implicit int n'avait jamais été supporté. Je te cite:

"Ça a été vrai pour les tous premiers C. Il y a très longtemps.
Je crois que ça n'a jamais été vrai pour le C++, et C lui-même
l'a abandonné il y a déjà un moment."

Mais comme je l'ai dit dans un autre post, l'implicit int a bel et bien
existé en C++. D'ou ma phrase amusée: "Qu'est-ce que vous racontez là ?"

--
Alain

Avatar
James Kanze
Alain Gaillard wrote:

Je sais. Et j'ai répété donc ce que j'avais dit, parce que
je ne vois pas ce qu'il y a de bizarre à dire qu'un
compilateur qui accepte l'int implicit n'est pas conforme.


James, tu prends toujours tout au premier degré comme ça ?


En fait, j'avais l'impression que tu me prenais au prenais
degré:-).

Sans doute, sinon tu ne te serais pas sentit obligé de
répéter, ni avant ni ici.


Je ne m'en sens pas obligé, mais parfois ça m'amuse.

Bon je vais essayer d'être bien clair:

Il m'a paru curieux autant qu'étrange que le posteur initial
nous raconte que VC supporte l'implicit int, car VC 2005 ne le
supporte pas. Il est vrai que le posteur initial n'avait pas
précisé de quel compilateur il s'agissait.

Quant à toi, il m'a paru curieux autant qu'étrange que tu nous
racontes que l'implicit int n'avait jamais été supporté.


Comme quoi il y aussi des choses que je ne connais pas, et où je
me trompes. Parce qu'effectivement, j'avais crû que Stroustrup
avait banni l'implicit int au même temps qu'il avait introduit
les prototypes de fonctions. J'ai donc appris quelque chose.
(L'utilisation de l'implicit int avait été banni de mon code,
même en C, bien avant. Mais comme tu as dit, c'est une autre
histoire, ça.)

--
James Kanze (Gabi Software) email:
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
Alain Gaillard


Je ne m'en sens pas obligé, mais parfois ça m'amuse.


Ah bon ?

Comme quoi il y aussi des choses que je ne connais pas, et où je
me trompes.


Ce sont des choses qui arrivent à tout le monde.
C++ n'est pas le langage le plus facile... :-S


(L'utilisation de l'implicit int avait été banni de mon code,
même en C, bien avant. Mais comme tu as dit, c'est une autre
histoire, ça.)


:-)

--
Alain

1 2