J'ai essayé de chercher, mais je n'ai pas vu une question similaire (que ce soit ma terminologie de recherche était incorrecte - si c'est le cas, n'hésitez pas à fermer).
Je suis un fervent utilisateur de SO, et je remarque qu'il y a beaucoup de références au standard C ++ dans les discussions et les réponses - et je dois admettre que je n'ai jamais lu ce document particulier, le langage me fait mal aux yeux ... Donc , la question est, un développeur C ++ peut-il vraiment coder pour vivre sans jamais avoir lu ce document? Est-ce vraiment important pour nous, simples mortels qui ne sont pas dans le métier d'écrire des compilateurs?
Réponses:
Non - vous pouvez très bien vous en passer sans ça
Cependant, vous aurez une compréhension beaucoup plus profonde si vous prenez le temps de l'apprendre. Suivez peut-être les références de ces questions qui vous dérangent et apprenez un petit morceau à la fois.
la source
Si vous voulez discuter de la sémantique et du standard du langage, le standard est très important. (Je ne veux pas dire cela de manière totalement péjorative.) Si vous voulez simplement faire le travail dans la langue (vs sur la langue), alors c'est beaucoup moins le cas.
La norme peut faire une référence décente à la bibliothèque standard (pas tellement pour la langue elle-même) une fois que vous vous y sentez un peu à l'aise, mais j'hésite à recommander qu'elle soit utilisée de cette façon. La plupart des gens semblent faire mieux avec d'autres matériaux. Cela dit, je me tourne le plus souvent vers la norme lorsque j'ai besoin de rechercher quelque chose sur stdlib.
Cependant, la lecture des ébauches et des documents du comité est un moyen de se tenir au courant de C ++ 0x - en fait, l'un des rares moyens actuellement.
Pour SO et d'autres forums, j'hésite à citer la norme, sauf lorsqu'il semble que l'affiche en bénéficierait clairement et définitivement - peut-être qu'ils l'ont demandé ou que je pense qu'ils l'attendent implicitement. Dans la plupart des cas, et en particulier avec les programmeurs débutants en C ++, le citer ne semble généralement pas beaucoup aider.
la source
Vous devriez l'avoir disponible pour référence mais je pense que personne d'autre que ses auteurs n'a lu le tout ... s'ils l'ont fait (ils travaillent en groupes se concentrant sur des domaines, donc j'en doute un peu).
La raison pour laquelle vous devriez l'avoir à disposition est que, parfois, une question sur l'exactitude du code ne peut être répondue qu'en se référant à la norme.
la source
Il est probablement plus important que vous sachiez où se trouve la norme et que vous sachiez quand chercher.
Si rien d'autre, vous devez vérifier périodiquement pour vous assurer que vous adhérez à la dernière version et que votre code ne dérive pas.
la source
Dans une grande équipe, vous devriez généralement avoir une personne (mais généralement pas plus) qui connaît la norme au moins raisonnablement bien, afin qu'elle puisse faire des choses comme régler des arguments / questions sur des choses comme la conformité d'un code particulier aux exigences de la norme.
En réalité, cependant, ces réponses doivent être tempérées par le jugement et l'expérience. La norme (actuelle) dit qu'il
export
s'agit d'un mot-clé et indique ce qu'il fait. En réalité, cela ne fonctionne tout simplement pas de cette façon avec la plupart des compilateurs. De même, dans de nombreux cas, si trois personnes sont en désaccord sur un code particulier et ce que la norme pourrait en dire, cela peut être un signe que le code peut avoir besoin d'être réécrit pour être plus simple.Dans le même temps, la plupart des équipes travailleront la plupart du temps sur une seule plate-forme, et avoir une norme (et une personne qui la connaît au moins raisonnablement) pour vérifier que ce que vous faites n'est pas trop étroitement lié à cette plate-forme peut certainement sois utile.
la source
Je gagne mon pain en tant que développeur C ++ depuis environ 4 ans au total, sans avoir lu la norme. En fait, pendant les deux premières années environ, je n'ai même pas lu grand-chose d'autre que C ++ Primer de Stan Lippman et des articles MSDN. Il est donc possible - en fait, je crains que la plupart des personnes qui produisent du code C ++ n'aient même pas lu des travaux fondamentaux comme Effective C ++ et al. que je n'ai moi-même découvert que plus tard.
À mon humble avis, pour être un bon développeur C ++, il faut comprendre la logique interne du ou des langages (comme le note Scott Meyers, le C ++ est d'environ 4 langages différents) et les idiomes et pièges courants, et être prêt à toujours en savoir plus. La lecture des discussions sur SO peut en apprendre beaucoup sur les cas d'angle où, à son tour, il peut être utile de lire les parties pertinentes de la norme, si quelqu'un veut vraiment creuser plus profondément. Mais la lecture de l'ensemble est probablement rarement nécessaire pour la plupart d'entre nous.
la source
«Connaître la norme» est une question de degré et ne signifie pas nécessairement mémoriser le document original.
Un document de normes est conçu pour faire autorité - pas nécessairement accessible. Il existe de nombreuses sources supprimées en une seule étape qui sont beaucoup plus accessibles. Certes, il y a un peu de chuchotements chinois là-dedans, mais c'est rarement un gros problème - certainement au niveau supprimé en une seule étape.
Divulgation complète - je dois dire ceci - je n'ai jamais lu la norme. Bien que je ferai probablement l'effort d'obtenir le document C ++ 0x complet une fois finalisé.
EDIT bien sûr si Stroustrup publie une nouvelle édition de "The C ++ Programming Language", je peux me contenter de cela.
la source
Lorsque je programmais en C ++, je me référais souvent au langage standard pour obtenir des informations sur les fonctions de bibliothèque standard. La bibliothèque standard C ++ est assez grande, et j'ai trouvé que le standard de langage était la source la plus pratique.
la source
J'aurais juré avoir déjà répondu à cette question, mais je ne la trouve pas. Fondamentalement, C ++ est différent de Java en ce qu'il est destiné à avoir des trous dans la spécification que d'autres spécifications de plate-forme peuvent combler (par exemple POSIX, ou la spécification ABI de votre architecture, ou votre compilateur). Ainsi, lorsque vous répondez à des questions sur des sites comme StackOverflow, il est courant de faire apparaître la spécification pour indiquer que le simple fait que quelque chose fonctionne sur un compilateur n'implique pas qu'il fonctionne partout. En d'autres termes, une grande partie de la raison de référencer des spécifications particulières lorsque vous travaillez avec C ++ est de clarifier exactement la portabilité d'une utilisation particulière du langage.
la source