Tentei pesquisar, mas não vi uma pergunta semelhante (isso ou minha terminologia de pesquisa estava incorreta - se assim for, sinta-se à vontade para fechar).
Sou um usuário ávido de SO e noto que há muitas referências ao padrão C ++ em discussões e respostas - e devo admitir que nunca li este documento em particular, a linguagem faz meus olhos doerem ... Então , a pergunta é: um desenvolvedor de C ++ pode realmente codificar para viver sem nunca ter lido este documento? É realmente importante para nós meros mortais que não estão no negócio de escrever compiladores?
Respostas:
Não - você pode se dar muito bem sem ele
No entanto, você terá um entendimento muito mais profundo se dedicar algum tempo para aprender. Talvez siga as referências dessas perguntas que o incomodam e aprenda um pequeno pedaço de cada vez.
fonte
Se você quiser discutir sobre a semântica da linguagem e o padrão, então o padrão é muito importante. (Não quero dizer isso de forma totalmente depreciativa.) Se você quer apenas fazer um trabalho no idioma (vs. no idioma), é muito menos.
O padrão pode fazer uma referência decente à biblioteca padrão (não muito para o próprio idioma) assim que você se sentir um pouco confortável, mas hesito em recomendar que seja usado dessa maneira. A maioria das pessoas parece se sair melhor com outros materiais. Dito isto, volto-me ao padrão com mais frequência quando preciso pesquisar algo sobre o stdlib.
No entanto, a leitura dos rascunhos e documentos do comitê é uma maneira de manter-se a par do C ++ 0x - na verdade, é uma das poucas maneiras atualmente.
Para o SO e outros fóruns, hesito em citar o padrão, exceto quando parece que o pôster se beneficiaria clara e definitivamente - talvez eles tenham solicitado isso ou acho que estão implicitamente esperando. Na maioria dos casos, e especialmente com programadores novos em C ++, citá-lo geralmente não parece ajudar muito.
fonte
Você deveria tê-lo disponível para referência, mas acho que ninguém, exceto seus autores, leu a coisa toda ... se eles o fizeram (eles trabalham em grupos com foco em áreas, então eu meio que duvido).
O motivo pelo qual você deve disponibilizá-lo é que, às vezes, uma pergunta sobre a correção do código só pode ser respondida consultando o padrão.
fonte
Provavelmente é mais importante que você saiba onde está o padrão e saiba quando procurar as coisas.
Se nada mais, você deve verificar periodicamente para garantir que está aderindo à versão mais recente e não deixou o seu código desviar.
fonte
Em uma equipe grande, geralmente você deve ter uma pessoa (mas geralmente não mais) que conheça o padrão pelo menos razoavelmente bem, para que eles possam fazer coisas como resolver quaisquer argumentos / perguntas sobre coisas como se um código específico está em conformidade com os requisitos do padrão.
Realisticamente, no entanto, essas respostas precisam ser temperadas pelo julgamento e pela experiência. O padrão (atual) diz que
export
é uma palavra-chave e diz o que faz. Na realidade, simplesmente não funciona dessa maneira com a maioria dos compiladores. Da mesma forma, em muitos casos, se houver três pessoas que discordam de algum código específico e o que o padrão possa dizer sobre isso, isso pode ser um sinal de que o código pode precisar ser reescrito para ser mais direto.Ao mesmo tempo, a maioria das equipes trabalha mais em uma plataforma e mantém um padrão (e alguém que esteja pelo menos razoavelmente familiarizado) para verificar se o que você está fazendo não está muito ligado a essa plataforma certamente seja útil.
fonte
Eu ganho meu pão como desenvolvedor de C ++ há cerca de 4 anos no total, sem ter lido o padrão. De fato, nos primeiros dois anos, eu nem li muito mais que o C ++ Primer de artigos de Stan Lippman e MSDN. Portanto, é possível - de fato, temo que a maioria das pessoas que produzem código C ++ nem tenha lido trabalhos fundamentais como Effective C ++ et al. que eu mesmo descobri apenas mais tarde.
Para ser um bom desenvolvedor de C ++, o IMHO deve entender a lógica interna da (s) linguagem (s) (como observa Scott Meyers, C ++ é de cerca de 4 linguagens diferentes) e os idiomas e armadilhas comuns, e estar pronto para sempre aprender mais. A leitura de threads no SO pode ensinar muito sobre casos de canto onde, por sua vez, pode valer a pena ler em partes relevantes do padrão, se alguém realmente quiser aprofundar. Mas a leitura da totalidade provavelmente não é necessária para a maioria de nós.
fonte
"Conhecer o padrão" é uma questão de grau e não significa necessariamente memorizar o documento original.
Um documento de normas foi projetado para ter autoridade - não necessariamente acessível. Existem muitas fontes removidas em uma etapa que são muito mais acessíveis. É verdade que há um pouco de sussurros chineses nisso, mas raramente é um grande problema - certamente no nível de remoção em uma etapa.
Divulgação completa - sou obrigado a dizer isso - nunca li o padrão. Embora eu provavelmente faça um esforço para obter o documento C ++ 0x completo quando for finalizado.
EDIT, é claro, se o Stroustrup lançar uma nova edição de "The C ++ Programming Language", posso resolver isso novamente.
fonte
Quando programei em C ++, frequentemente me referia ao padrão da linguagem para obter informações sobre as funções padrão da biblioteca. A biblioteca padrão do C ++ é bastante grande e achei o padrão da linguagem a fonte mais conveniente.
fonte
Eu poderia jurar que respondi a essa pergunta antes, mas não consigo encontrá-la. Basicamente, C ++ é diferente de Java em que ele está destinado a ter buracos na especificação outras especificações da plataforma pode preencher (por exemplo, POSIX, ou especificação ABI da sua arquitetura, ou seu compilador). Portanto, ao responder a perguntas em sites como o StackOverflow, é comum trazer a especificação para indicar que apenas porque algo funciona em um compilador não implica que funcione em qualquer lugar. Em outras palavras, muitas das razões para fazer referência a especificações específicas ao trabalhar com C ++ é esclarecer exatamente o quão portátil é um uso específico da linguagem.
fonte