89 votes

Ce qui serait ' std : ; ' faire en c ++ ?

J’ai récemment modification du code et trouvé un bogue existant sur une seule ligne dans une fonction :

Copiez le code suivant compile et toujours a travaillé comme prévu.

La définition de la chaîne fonctionne car ce fichier est , de sorte que le n’était pas nécessaire en premier lieu.

La question est, pourquoi est `` compilation et ce, si quoi que ce soit, est-ce fait ?

90voto

K-ballo Points 44794

C’est une étiquette, utilisable comme une cible pour les .

Comme @Adam Rosenfield dans un commentaire, c’est un nom d’étiquette juridique.

C ++03 §6.1 / 1 :

Les étiquettes ont leur propre espace de noms et n’interfèrent pas avec d’autres identificateurs.

32voto

Fred Larson Points 27404

C’est une étiquette, suivie d’une instruction vide, suivie de la déclaration d’une chaîne `` .

12voto

Rahul Tripathi Points 1

Ses une étiquette qui est suivie de la chaîne

8voto

Polymorphism Points 194
(expression)std: (end of expression); (another expression)string x = y;

1voto

Ali Points 18740

Le compilateur vous indique ce qui se passe :

Les gcc et clang donnent un avertissement assez clair :

Le prendre loin de cette histoire : toujours compiler votre code avec des avertissements activés (par exemple `` ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X