Oitavo Encontro de Programadores C & C++

15
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.

description

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 - PowerPoint PPT Presentation

Transcript of Oitavo Encontro de Programadores C & C++

Page 1: 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

Rodrigo Kumpera: Modelos de memória e porque você precisa saber disso

Marcelo Zimbres Silva: O framework ROOT: Não apenas para físicos.

Page 2: Oitavo Encontro de Programadores C & C++

C++11

Rodrigo Strausswww.1bit.com.br@rodrigostrauss

Page 3: Oitavo Encontro de Programadores C & C++

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.

Page 4: Oitavo Encontro de Programadores C & C++

Motivo do C++11

• Facilidades de linguagens modernas• Facilidade para ensino• Melhorias na biblioteca padrão• Acabar com “gambiarras” do Boost– lambda– assert– bind

Page 5: Oitavo Encontro de Programadores C & C++

Adoção

• GCC• Visual C++ 2010• Intel C• Mais detalhes em

http://wiki.apache.org/stdcxx/C++0xCompilerSupport

Page 6: Oitavo Encontro de Programadores C & C++

Bibliotecas TR11

• thread• shared_ptr• regex• tuple• array• unordered_map (hash table)

Page 7: Oitavo Encontro de Programadores C & C++

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;});

Page 8: Oitavo Encontro de Programadores C & C++

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*

Page 9: Oitavo Encontro de Programadores C & C++

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;

Page 10: Oitavo Encontro de Programadores C & C++

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; }

Page 11: Oitavo Encontro de Programadores C & C++

Fuções de uma classes

• delete• default• final• Override

Page 12: Oitavo Encontro de Programadores C & C++

Rvalue reference

• Possibilita mover um rvalue• Aumenta performance por remover cópias

Page 13: Oitavo Encontro de Programadores C & C++

static_assert

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

Page 14: Oitavo Encontro de Programadores C & C++

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

Page 15: Oitavo Encontro de Programadores C & C++

You Win. Flawless Victory. Fatality