O que pode levar você a pensar se as informações e conselhos nesta edição pré-C ++ 0x do Effective C ++ permanecem relevantes. Tenho o prazer de informar que sim. Surpreendentemente, de fato. Depois de passar quase dois anos mergulhando nos detalhes do C ++ 0x, esperava gemer um pouco ao revisar o índice deste livro com o C ++ 0x em mente. Certamente alguns itens seriam inapropriados. Mas o conselho que encontrei provou ser sólido. Os desenvolvedores do C ++ 0x preferem consts, enums e inlines a
#defines
(Item 2)? Eles deviam. Eles devem impedir que exceções deixem destruidores (Item 8)? Certamente. Eles devem usar objetos para gerenciar recursos? Declarar membros de dados privados? Considere alternativas para funções virtuais? Fatorar código independente de parâmetro dos modelos? (Itens 13, 22, 35 e 44.) Sim, sim, sim! Meu objetivo sempre foi o sumário efetivo do C ++ resumir os conselhos do livro, e esse resumo permanece tão aplicável ao desenvolvimento do C ++ 0x quanto ao desenvolvimento "tradicional" do C ++. O C ++ 0x é uma linguagem maior e, de certa forma, é diferente, mas as principais técnicas para fazer uso efetivo do C ++ “antigo” também são essenciais para o uso efetivo do C ++ 0x.
Isso não significa que este C ++ eficaz seja uma combinação perfeita para C ++ 0x. O livro não discute os recursos novos do C ++ 0x; portanto, faltam itens sobre o uso efetivo desses recursos. Um C ++ eficaz com C ++ 0 certamente teria Itens dedicados para mover operações, inicialização uniforme e expressões lambda, e provavelmente teria um capítulo inteiro sobre como fazer uso efetivo da API de simultaneidade. Esse livro também conteria exemplos diferentes, por exemplo, aqueles que usam variáveis automáticas, com base em intervalos para loops, inicializadores padrão na classe, bem como o modelo variável ocasional. Na medida em que este livro não oferece suporte ao C ++ 0x, os erros são de omissão, não de comissão.