1 / 15

Oitavo Encontro de Programadores C & C++

Oitavo Encontro de Programadores C & C++. Vinicius Jarina: Integrando Lua e C++ Gianni Rossi: Desenvolvendo aplicações multi-plataformas em C++ para iOS e Android (NDK) Rodrigo Strauss: C++11: Do que se trata e como ele vai facilitar a sua vida

maj
Download Presentation

Oitavo Encontro de Programadores C & C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Oitavo Encontro de Programadores C & C++ Vinicius Jarina: Integrando Lua e C++ Gianni Rossi: Desenvolvendo aplicações multi-plataformas em C++ para iOS e Android (NDK) Rodrigo Strauss: C++11: Do que se trata e como ele vai facilitar a sua vida Rodrigo Kumpera: Modelos de memória e porque você precisa saber disso Marcelo Zimbres Silva: O framework ROOT: Não apenas para físicos.

  2. C++11 Rodrigo Strauss www.1bit.com.br @rodrigostrauss

  3. Eu, eu e eu • Mantenho o site www.1bit.com.br, onde escrevo sobre C++ • Co-Fundador do grupo C & C++ Brasil e owner da lista • Sócio Programador da www.intelitrader.com.br • Server side is my side • Uso C++ porque resolve meus problemas, uso bastante Python também • mercado financeiro  segurança da informação  mercado financeiro  segurança da informação  .NET  segurança da informação  mercado financeiro • Windows ou Linux? Eu fico com os dois, porque ainda não estudei BSD ou Solaris.

  4. Motivo do C++11 • Facilidades de linguagens modernas • Facilidade para ensino • Melhorias na biblioteca padrão • Acabar com “gambiarras” do Boost • lambda • assert • bind

  5. Adoção • GCC • Visual C++ 2010 • Intel C • Mais detalhes em http://wiki.apache.org/stdcxx/C++0xCompilerSupport

  6. Bibliotecas TR11 • thread • shared_ptr • regex • tuple • array • unordered_map (hash table)

  7. Lambda • Possibilidade de criar funções anônimas • Muito útil para algoritmos • Boost bind nunca mais! • Até onde eu sei, a implementação mais, digamos, detalhada • Especificação de captura e escopo for_each(v.begin(), v.end(), [](string a) {cout << a;});

  8. Nullptr • Constante para ponteiro nulo, e não mais um #define NULL 0 • Resolve o problema de overload de funções para int ou xpto*

  9. Auto e decltype • auto • Deduz o tipo da variável pelo tipo da expressão rvalue na atribuição • auto a = 10; • for(auto i = v.begin() ; i != v.end() ; ++i); • decltype(a) b;

  10. Nova sintaxe para declarar funções • Tipo de retorno depois da função • auto func(int a, int b) -> int { return a + b; } • Útil para templates template<typename T> auto func(T a, T b) -> decltype(a+b) { return a + b; }

  11. Fuções de uma classes • delete • default • final • Override

  12. Rvalue reference • Possibilita mover um rvalue • Aumenta performance por remover cópias

  13. static_assert • Checar condições em tempo de compilação • Útil para programação com templates

  14. E muito mais • Variadic Templates • String literals • Utf8 (u8), utf16 (u) e utf32 (U) • Enum tipado • Sintaxe para inicialização uniforme • Constructor delegate • Range based loop • override e final • sizeof(SomeType::member); • “Isso não é um shift!” • Template alias • Unrestricted unions

  15. You Win. Flawless Victory. Fatality

More Related