Livros - The C++ Std. Library 2th ed ou The C++ programming language,4th ed

Olá,estou em dúvida entre um dos dois livros para que possa me introduzir à padronização de 2011,já tenho conhecimento da linguagem com base na padronização de 1998

Pelo que vi na internet a 4º edição do C++ programming language parece ser mais voltada a ensinar a linguagem desde o início baseado nas novas características da padronização e a 2º edição do C++ Std. Library parece ser mais focada na STL e feito pra quem já conhece a linguagem ,também já tenho alguma afinidade no modo de ensinar do Nicolai por já ter lido alguns livros dele…

Enfim…queria saber se alguém aqui já leu algum dos dois e qual que melhor mostra as novas características da padronização pra um usuário intermediário.
grato

Você mesmo já mostrou a diferença entre os dois livros, é questão de saber o que se encaixa na sua necessidade… se quer realmente reaprender tudo com base no novo padrão deveria ler os dois na sequência. ( :frowning: )

Na minha opinião se gastaria muito tempo refazendo todo o caminho, já que conhece a linguagem por que não estudar especificamente as novidades?

Pode começar pelas seguintes fontes:

Wikipedia ( http://en.wikipedia.org/wiki/C%2B%2B11 ), que lista e explica de forma bem clara cada nova feature.
C++11 FAQ ( http://www.stroustrup.com/C++11FAQ.html ). Aqui o criador da linguagem, “aquele de nome esquisito”, comenta várias das novas características da linguagem.

ts eu não ouso pronunciar o nome dele

Sim era exatamente só as atualizações do “core” da linguagem que eu tava querendo,estava lendo só o rascunho da standard aqui http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf ,mas não sabia se isso era realmente confiável,agora com esse link que você passou da página do velho me sinto mais seguro,vou ler por ele,muito obrigado.

O artigo da wikipedia é muito bom. Entretanto, a grande evolução do C++ nos últimos anos não foi na linguagem em si, mas no estilo de programar usando o que foi incorporado.

Se você ainda não leu o Effective C++ recomendo que compre-o mesmo não tratando efetivamente de C++11. Boa parte do que está lá foi incorporado na forma de recursos no C++11, que facilitaram a sintaxe, mas não mudaram os conceitos. É importante saber exatamente o que é RAII, Exception Safety e Smart Pointers e outras coisas do gênero, e isso esse livro explica muito bem.

Outro livro importante é o Modern C++ Design, que explica um uso efetivo do mecanismo de templates. Caso você não esteja familiarizado com Templates, o livro C++ Templates: The Complete Guide é também uma excelente recomendação.

Por fim, há alguns sites muito bons na internet sobre assuntos específicos:

Move semantics: http://thbecker.net/articles/rvalue_references/section_01.html

Exception safety e smart pointers:
http://accu.org/index.php/journals/469 - o C++ introduziu vários novos smart pointers, além dos descrito nesse artigo, mas ele explica bem o porque de usa-los. Os novos smart pointers são tratados aqui:
http://www.umich.edu/~eecs381/handouts/C++11_smart_ptrs.pdf

Lambda e closures: http://www.cprogramming.com/c++11/c++11-lambda-closures.html

Bind do C++11: http://www.umich.edu/~eecs381/handouts/bind.pdf

Functors:
Conceito: http://www.stanford.edu/class/cs106l/course-reader/Ch13_Functors.pdf
std::function do C++11: http://en.cppreference.com/w/cpp/utility/functional/function

Não cheguei a ver se o livro do Stroustrup detalha esse tipo de padrão de uso, mas como aquele livro é para iniciantes, tenho a impressão de que não. Geralmente você acha esses detalhes em livros de nível intermediário/avançado, como os que indiquei.

Viny,obrigado,sim já li todos esses só não li o ModernC++,minha 3º opção em livros sobre C++11 seria o “Overview of the new c++” por também já ter familiaridade com o método de ensino “aprenda rindo” do Meyers

Agora que estou lendo sobre as mudanças com o C++11 realmente não parece ser algo tão diferente do que eu já usava,(nullptr e auto por exemplo)porém pelo que vi até agora não foi implementado nenhum mecanismo pra suportar parâmetros de funções template default ainda ne?..

Já dei uma olhada nas novas inicializações entre chaves também…isso influenciou em algo sobre a semântica de lista de inicialização(mais rápida) pra POD?(não deu pra ver,o VS 2010 não implementa isso ainda)Quanto a move semantics poder pegar uma referência pra um rvalue e ter uma conversão implícita pra isso é definitivamente excitante rs

Não, o objetivo dessas inicializações foi ter uma forma realmente uniforme de inicializar tudo. Está explicado ali nos artigos do Stroustrup.

Sem falar nas otimizações que isso representou para a STL. :slight_smile:

Quanto as templates, não sei te dizer. Eu sou da turma que prefere fazer um uso conservador de templates (segundo a filosofia do QT, e não da boost).