Foi aprovado por unanimidade pelo comitê ISO o novo padrão do C++, o C++11, anteriormente chamado de C++x0. O “11” vem de 2011. O último padrão do C++ é de 1998.
Uma lista com os novos recursos pode ser vista aqui.
Era previsível, geralmente a coisa anda rápido após o final draft, que foi aprovado no mês passado.
Já estou ensinando C++0x nas aulas que dou na faculdade e na pós de jogos.
Legal mudarem para c++11. Assim fica padronizado como c90, c95 e c99. Já me atualizei também com o livro “The new C++”.
o engraçado é que a stl continua com a notação “all_is_lowercase”.
Que livro é esse Julio?
Estou estudando C++ pela apostila da UFSC do professor André. Será que vou ter que desconsiderar essa apostila e pegar um livro que aborde o novo padrão?
[quote=matheuslmota]Que livro é esse Julio?
Estou estudando C++ pela apostila da UFSC do professor André. Será que vou ter que desconsiderar essa apostila e pegar um livro que aborde o novo padrão?[/quote]
Acho que não, a maioria dos recursos novos são um pouco mais avançados e você só vai compreende-los depois de vencer a sintaxe básica.
Você pode seguir pela apostila do André e depois só atualizar vendo as diferenças na wiki.
[quote=ViniGodoy][quote=matheuslmota]Que livro é esse Julio?
Estou estudando C++ pela apostila da UFSC do professor André. Será que vou ter que desconsiderar essa apostila e pegar um livro que aborde o novo padrão?[/quote]
Acho que não, a maioria dos recursos novos são um pouco mais avançados e você só vai compreende-los depois de vencer a sintaxe básica.
Você pode seguir pela apostila do André e depois só atualizar vendo as diferenças na wiki. [/quote]
O interessante é que tanto o Qt como o Visual Studio já aceitam C++0x
Vou atualizar os dois na minha máquina.
[quote=matheuslmota][quote=ViniGodoy][quote=matheuslmota]Que livro é esse Julio?
Estou estudando C++ pela apostila da UFSC do professor André. Será que vou ter que desconsiderar essa apostila e pegar um livro que aborde o novo padrão?[/quote]
Acho que não, a maioria dos recursos novos são um pouco mais avançados e você só vai compreende-los depois de vencer a sintaxe básica.
Você pode seguir pela apostila do André e depois só atualizar vendo as diferenças na wiki. [/quote]
O interessante é que tanto o Qt como o Visual Studio já aceitam C++0x
Vou atualizar os dois na minha máquina.
[/quote]
Cara, se eu não me engano já enviei este livro para o viny também. Me passa seu email por msg privado que eu te envio.
Eu particularmente gostei dos lambdas, dos smart pointers, da API de threads, da possibilidade de chamar um construtor de outro, do for each, e da move semantics.
o move foi uma sacada incrível. É sempre preferível mover endereços de memória que fazer deep copy nas variáveis( que acaba com o desempenho da aplicação) Tem um bench naquele livro que postei que mostra um ganho surpreendente no software.
[quote=juliocbq]o move foi uma sacada incrível. É sempre preferível mover endereços de memória que fazer deep copy nas variáveis( que acaba com o desempenho da aplicação) Tem um bench naquele livro que postei que mostra um ganho surpreendente no software.
[/quote]
Não entendi direito. Qual a diferença entre
Widget w1;
Widget w2(w1);
e
Widget w1;
Widget w2(std::move(w1));
?
Na segunda opção eu tenho apenas um valor, w1, para o qual w1 e w2 apontam, é isso?
[quote=matheuslmota][quote=juliocbq]o move foi uma sacada incrível. É sempre preferível mover endereços de memória que fazer deep copy nas variáveis( que acaba com o desempenho da aplicação) Tem um bench naquele livro que postei que mostra um ganho surpreendente no software.
[/quote]
Não entendi direito. Qual a diferença entre
Widget w1;
Widget w2(w1);
e
Widget w1;
Widget w2(std::move(w1));
?
Na segunda opção eu tenho apenas um valor, w1, para o qual w1 e w2 apontam, é isso?[/quote]
w2 recebe o endereço de memória de w1. Essa é a diferença. O move te permite criar um esquema de memória compartilhada.
[quote=juliocbq][quote=matheuslmota][quote=juliocbq]o move foi uma sacada incrível. É sempre preferível mover endereços de memória que fazer deep copy nas variáveis( que acaba com o desempenho da aplicação) Tem um bench naquele livro que postei que mostra um ganho surpreendente no software.
[/quote]
Não entendi direito. Qual a diferença entre
Widget w1;
Widget w2(w1);
e
Widget w1;
Widget w2(std::move(w1));
?
Na segunda opção eu tenho apenas um valor, w1, para o qual w1 e w2 apontam, é isso?[/quote]
w2 recebe o endereço de memória de w1. Essa é a diferença. O move te permite criar um esquema de memória compartilhada.[/quote]