Oitavo Encontro de Programadores C & C++<br />Vinicius Jarina: Integrando Lua e C++<br />Gianni Rossi: Desenvolvendo aplic...
C++11<br />Rodrigo Strauss<br />www.1bit.com.br<br />@rodrigostrauss<br />
Eu, eu e eu<br />Mantenho o site www.1bit.com.br, onde escrevo sobre C++<br />Co-Fundador do grupo C & C++ Brasil e owner ...
Motivo do C++11<br />Facilidades de linguagens modernas<br />Facilidade para ensino<br />Melhorias na biblioteca padrão<br...
Adoção<br />GCC<br />Visual C++ 2010<br />Intel C<br /><ul><li>Mais detalhes em http://wiki.apache.org/stdcxx/C++0xCompile...
Lambda<br />Possibilidade de criar funções anônimas<br />Muito útil para algoritmos<br />Boost bind nunca mais!<br />Até o...
Nullptr<br />Constante para ponteiro nulo, e não mais um #define NULL 0<br />Resolve o problema de overload de funções par...
Auto e decltype<br />auto<br />Deduz o tipo da variável pelo tipo da expressão rvalue na atribuição<br />auto a = 10;<br /...
Nova sintaxe para declarar funções<br />Tipo de retorno depois da função<br />auto func(int a, int b) -> int { return a + ...
Fuções de uma classes<br />delete<br />default<br />final<br />Override<br />
Rvalue reference<br />Possibilita mover um rvalue<br />Aumenta performance por remover cópias<br />
static_assert<br />Checar condições em tempo de compilação<br />Útil para programação com templates<br />
E muito mais<br />Variadic Templates<br />String literals<br />Utf8 (u8), utf16 (u) e utf32 (U)<br /><ul><li>Enum tipado</...
You Win. Flawless Victory. Fatality<br />
C++11
Upcoming SlideShare
Loading in...5
×

C++11

9,574

Published on

Apresentação feita no Oitavo Encontro de Programadores C & C++, no dia 17 de setembro de 2011

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
9,574
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

C++11

  1. 1. Oitavo Encontro de Programadores C & C++<br />Vinicius Jarina: Integrando Lua e C++<br />Gianni Rossi: Desenvolvendo aplicações multi-plataformas em C++ para iOS e Android (NDK)<br />Rodrigo Strauss: C++11: Do que se trata e como ele vai facilitar a sua vida<br />Rodrigo Kumpera: Modelos de memória e porque você precisa saber disso<br />Marcelo Zimbres Silva: O framework ROOT: Não apenas para físicos.<br />
  2. 2. C++11<br />Rodrigo Strauss<br />www.1bit.com.br<br />@rodrigostrauss<br />
  3. 3. Eu, eu e eu<br />Mantenho o site www.1bit.com.br, onde escrevo sobre C++<br />Co-Fundador do grupo C & C++ Brasil e owner da lista<br />Sócio Programador da www.intelitrader.com.br<br />Server side is my side<br />Uso C++ porque resolve meus problemas, uso bastante Python também<br />mercado financeiro  segurança da informação  mercado financeiro  segurança da informação  .NET  segurança da informação  mercado financeiro<br />Windows ou Linux? Eu fico com os dois, porque ainda não estudei BSD ou Solaris.<br />
  4. 4. Motivo do C++11<br />Facilidades de linguagens modernas<br />Facilidade para ensino<br />Melhorias na biblioteca padrão<br />Acabar com “gambiarras” do Boost<br />lambda<br />assert<br />bind<br />
  5. 5. Adoção<br />GCC<br />Visual C++ 2010<br />Intel C<br /><ul><li>Mais detalhes em http://wiki.apache.org/stdcxx/C++0xCompilerSupport</li></li></ul><li>Bibliotecas TR11<br />thread<br />shared_ptr<br />regex<br />tuple<br />array<br />unordered_map (hash table)<br />
  6. 6. Lambda<br />Possibilidade de criar funções anônimas<br />Muito útil para algoritmos<br />Boost bind nunca mais!<br />Até onde eu sei, a implementação mais, digamos, detalhada<br />Especificação de captura e escopo<br />for_each(v.begin(), v.end(), [](string a) {cout << a;});<br />
  7. 7. Nullptr<br />Constante para ponteiro nulo, e não mais um #define NULL 0<br />Resolve o problema de overload de funções para int ou xpto*<br />
  8. 8. Auto e decltype<br />auto<br />Deduz o tipo da variável pelo tipo da expressão rvalue na atribuição<br />auto a = 10;<br />for(auto i = v.begin() ; i != v.end() ; ++i);<br />decltype(a) b;<br />
  9. 9. Nova sintaxe para declarar funções<br />Tipo de retorno depois da função<br />auto func(int a, int b) -> int { return a + b; }<br />Útil para templates<br />template<typename T><br />auto func(T a, T b) -> decltype(a+b) { return a + b; }<br />
  10. 10. Fuções de uma classes<br />delete<br />default<br />final<br />Override<br />
  11. 11. Rvalue reference<br />Possibilita mover um rvalue<br />Aumenta performance por remover cópias<br />
  12. 12. static_assert<br />Checar condições em tempo de compilação<br />Útil para programação com templates<br />
  13. 13. E muito mais<br />Variadic Templates<br />String literals<br />Utf8 (u8), utf16 (u) e utf32 (U)<br /><ul><li>Enum tipado</li></ul>Sintaxe para inicialização uniforme<br />Constructor delegate<br />Range based loop<br />override e final<br />sizeof(SomeType::member);<br />“Isso não é um shift!”<br />Template alias<br />Unrestricted unions<br />
  14. 14. You Win. Flawless Victory. Fatality<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×