OVH Cloud OVH Cloud

namespace

27 réponses
Avatar
Guillaume Gourdin
Bonjour !

VC6 ne semble pas accepter les noms de namespace commençant par un chiffre.
Est-ce normal ou est-ce un bug ?

7 réponses

1 2 3
Avatar
kanze
Fabien LE LEZ wrote in message
news:...
On 11 Dec 2003 01:51:25 -0800, wrote:

Ce qui ne pose pas de problème particulier pour le compilateur : si
ça peut être une constante numérique, c'est une constante numérique
-- sinon, c'est un identificateur.


Mais certains compilos acceptent des extensions. Du coup, 153vx serait
considéré comme un identificateur par un compilo, et comme une
constante numérique de type "vx" par un autre.


Une extension suppose une exploitation d'un comportement indéfini. Un
compilateur qui n'émet pas de message d'erreur pour 123vx n'est pas
conforme. Évidemment, une fois le message d'erreur émis...

En attendant, je ne connais pas de compilateur qui a cette extension
particulière.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16


Avatar
kanze
"Alain Naigeon" wrote in message
news:<3fd8e88c$0$29082$...
a écrit dans le message news:

Fabien LE LEZ wrote in message
news:...
On Wed, 10 Dec 2003 12:16:03 +0100, Serge Paccalin
wrote:

Si on tolérait les identifiants commençant par un chiffre, 0xff
en serait un valide.


Idem avec 42ul.


Ce qui ne pose pas de problème particulier pour le compilateur : si
ça peut être une constante numérique, c'est une constante numérique
-- sinon, c'est un identificateur.


Il n'empêche, j'avais tout de même lu dans des bouquins pas trop
fantaisistes que ce principe de "pas de chiffre en tête d'un
identificateur" facilitait l'analyse.


Ça dépend de comment tu fais l'analyse. Si tu te sers de lex, il n'y a
aucune différence. Si tu l'écris à la main, ça facilite, effectivement.

La même chose vaut à l'envers. J'ai connu pas mal de langages où les
chiffres hexadécimal s'écrivaient « 1234H », avec un H à la fin. C'est
plus difficile à traiter si tu écris l'analyseur lexique à la main, mais
ce n'est pas la mer à boire non plus. Et avec lex... N'empêche que le C
n'a pas adopté cette notation on ne peut plus intuitive.

Depuis cette époque, il est clair que les écrivains de compilateurs
ont des problèmes bien plus difficiles à résoudre que celui-ci, de
toute façon.


Mais non, mais non. Export, c'est rien à côté :-).

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16




Avatar
Gabriel Dos Reis
writes:

| Fabien LE LEZ wrote in message
| news:...
| > On 11 Dec 2003 01:51:25 -0800, wrote:
|
| > >Ce qui ne pose pas de problème particulier pour le compilateur : si
| > >ça peut être une constante numérique, c'est une constante numérique
| > >-- sinon, c'est un identificateur.
|
| > Mais certains compilos acceptent des extensions. Du coup, 153vx serait
| > considéré comme un identificateur par un compilo, et comme une
| > constante numérique de type "vx" par un autre.
|
| Une extension suppose une exploitation d'un comportement indéfini.

Pas forcément.

Cela peut être n'importe quelle violation d'une règle diagnostiquable
de la norme ; il suffit que l'implémentation émette un diagnostic.

| Un
| compilateur qui n'émet pas de message d'erreur pour 123vx n'est pas
| conforme.

La norme ne définit pas ce qu'est un message d'erreur.

-- Gaby
Avatar
Alexis Guillaume
Logiquement un nom n'a pas de raison de commencer par un chiffre.
Connais-tu un seul nom de variable qui mériterait de commencer par un
chiffre ?


Hypothèse :
Peut-être que si de tels noms étaient possibles depuis toujours dans
d'autres langages que postscript, COBOL ou le shell-script tout
simplement, on aurait plein d'exemples où ce serait utile. À force
d'être habitué à cette limitation, on finit par la trouver absolument
naturelle, on est en quelque sorte formaté.

Nous programmeurs C++ sommes peut-être en train d'analyser les ombres
sur la paroi d'une caverne et nous ne voyons pas la lumière des noms de
variables qui commencent par un chiffre. ;o)

--
Alexis Guillaume
<http://cowsoft.free.fr> : ressources universitaires en vrac

"Il est minuit. La pluie fouette les vitres."

Avatar
Christophe de VIENNE
Alexis Guillaume wrote:

Nous programmeurs C++ sommes peut-être en train d'analyser les ombres
sur la paroi d'une caverne et nous ne voyons pas la lumière des noms de
variables qui commencent par un chiffre. ;o)



Programmeurs, brisez vos chaînes :-)



Christophe

Avatar
Serge Paccalin
Le jeudi 11 décembre 2003 à 10:47:29, Jean-Marc Molina a écrit dans
fr.comp.lang.c++ :

Logiquement un nom n'a pas de raison de commencer par un chiffre.
Connais-tu un seul nom de variable qui mériterait de commencer par un
chiffre ?


Oui, pourquoi pas ? Des noms en 1er, 2nd, 3e...

--
___________ 2003-12-12 22:28:29
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763

Avatar
Gabriel Dos Reis
"Jean-Marc Molina" writes:

| Logiquement un nom n'a pas de raison de commencer par un chiffre.

« Logiquement » selon quelle logique ?

| Connais-tu un seul nom de variable qui mériterait de commencer par un
| chiffre ?

WorldCompany::Abstract::Driver* 3d_driver = new ....

-- Gaby
1 2 3