SlideShare ist ein Scribd-Unternehmen logo
1 von 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.
C++11 Rodrigo Strauss www.1bit.com.br @rodrigostrauss
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.
Motivo do C++11 Facilidades de linguagens modernas Facilidade para ensino Melhorias na biblioteca padrão Acabar com “gambiarras” do Boost lambda assert bind
Adoção GCC Visual C++ 2010 Intel C ,[object Object],[object Object]
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;});
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*
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;
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; }
Fuções de uma classes delete default final Override
Rvalue reference Possibilita mover um rvalue Aumenta performance por remover cópias
static_assert Checar condições em tempo de compilação Útil para programação com templates
E muito mais Variadic Templates String literals Utf8 (u8), utf16 (u) e utf32 (U) ,[object Object],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
You Win. Flawless Victory. Fatality
C++11: Novidades da linguagem

Weitere ähnliche Inhalte

Was ist angesagt?

E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11Ismar Silveira
 
Workshop - IDE / Linguagem
Workshop - IDE / LinguagemWorkshop - IDE / Linguagem
Workshop - IDE / LinguagemGustavo Barbosa
 
Laços de Repetição - Linguagem C
Laços de Repetição - Linguagem CLaços de Repetição - Linguagem C
Laços de Repetição - Linguagem Cprofjr
 
Laços de repetição - Linguagem C
Laços de repetição - Linguagem CLaços de repetição - Linguagem C
Laços de repetição - Linguagem Cprofjr
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosAdriano Teixeira de Souza
 
[Curso Java Basico] Aula 58: Autoboxing e Unboxing
[Curso Java Basico] Aula 58: Autoboxing e Unboxing[Curso Java Basico] Aula 58: Autoboxing e Unboxing
[Curso Java Basico] Aula 58: Autoboxing e UnboxingLoiane Groner
 
SECOMP_Introdução ao asp.net-dia 2
SECOMP_Introdução ao asp.net-dia 2SECOMP_Introdução ao asp.net-dia 2
SECOMP_Introdução ao asp.net-dia 2Júlio Mendonça
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Ismar Silveira
 
GraphQL: PUTs, onde foram parar os verbos HTTP?
GraphQL: PUTs, onde foram parar os verbos HTTP?GraphQL: PUTs, onde foram parar os verbos HTTP?
GraphQL: PUTs, onde foram parar os verbos HTTP?Leonardo Gomes
 

Was ist angesagt? (14)

E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11
 
Aula17
Aula17Aula17
Aula17
 
Workshop - IDE / Linguagem
Workshop - IDE / LinguagemWorkshop - IDE / Linguagem
Workshop - IDE / Linguagem
 
Laços de Repetição - Linguagem C
Laços de Repetição - Linguagem CLaços de Repetição - Linguagem C
Laços de Repetição - Linguagem C
 
Laços de repetição - Linguagem C
Laços de repetição - Linguagem CLaços de repetição - Linguagem C
Laços de repetição - Linguagem C
 
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostosParadigmas de Linguagens de Programação - Tipos primitivos e compostos
Paradigmas de Linguagens de Programação - Tipos primitivos e compostos
 
Avaliação 1º col
Avaliação 1º colAvaliação 1º col
Avaliação 1º col
 
[Curso Java Basico] Aula 58: Autoboxing e Unboxing
[Curso Java Basico] Aula 58: Autoboxing e Unboxing[Curso Java Basico] Aula 58: Autoboxing e Unboxing
[Curso Java Basico] Aula 58: Autoboxing e Unboxing
 
SECOMP_Introdução ao asp.net-dia 2
SECOMP_Introdução ao asp.net-dia 2SECOMP_Introdução ao asp.net-dia 2
SECOMP_Introdução ao asp.net-dia 2
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
GraphQL: PUTs, onde foram parar os verbos HTTP?
GraphQL: PUTs, onde foram parar os verbos HTTP?GraphQL: PUTs, onde foram parar os verbos HTTP?
GraphQL: PUTs, onde foram parar os verbos HTTP?
 
Es2020
Es2020Es2020
Es2020
 
Palestra hpc python
Palestra hpc pythonPalestra hpc python
Palestra hpc python
 
4ª questão
4ª questão4ª questão
4ª questão
 

Andere mochten auch (17)

Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Linguagem C (UFRPE)
Linguagem C (UFRPE)Linguagem C (UFRPE)
Linguagem C (UFRPE)
 
TCP Assíncrono usando C++11 e Boost Asio
TCP Assíncrono usando C++11 e Boost AsioTCP Assíncrono usando C++11 e Boost Asio
TCP Assíncrono usando C++11 e Boost Asio
 
C++ scalable network_io
C++ scalable network_ioC++ scalable network_io
C++ scalable network_io
 
O desafio de Liderança Participante
O desafio de Liderança ParticipanteO desafio de Liderança Participante
O desafio de Liderança Participante
 
Python: Estrutura de decisão.
Python: Estrutura de decisão.Python: Estrutura de decisão.
Python: Estrutura de decisão.
 
Lista de exercícios II python para zumbis
Lista de exercícios II python para zumbisLista de exercícios II python para zumbis
Lista de exercícios II python para zumbis
 
Las fases lunares y la agricultura pdf
Las fases lunares y la agricultura pdfLas fases lunares y la agricultura pdf
Las fases lunares y la agricultura pdf
 
Cultivar con la luna manual
Cultivar con la luna manualCultivar con la luna manual
Cultivar con la luna manual
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)
 
Lista de exercícios I python para zumbis
Lista de exercícios I python para zumbisLista de exercícios I python para zumbis
Lista de exercícios I python para zumbis
 
Manual de la luna
Manual de la lunaManual de la luna
Manual de la luna
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Resgate a motivação da sua equipe em 20 técnicas
Resgate a motivação da sua equipe em 20 técnicasResgate a motivação da sua equipe em 20 técnicas
Resgate a motivação da sua equipe em 20 técnicas
 
Palestra motivacional
Palestra motivacionalPalestra motivacional
Palestra motivacional
 
Motivação
MotivaçãoMotivação
Motivação
 

Ähnlich wie C++11: Novidades da linguagem

C#4 – O que há de novo
C#4 – O que há de novoC#4 – O que há de novo
C#4 – O que há de novoGiovanni Bassi
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7Rogério Moraes de Carvalho
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4CDS
 
Aula01
Aula01Aula01
Aula01vdlos
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry PiresNovidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry PiresComunidade NetPonto
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Rogério Moraes de Carvalho
 
Principais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorizaçãoPrincipais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorizaçãoIntel Software Brasil
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completothomasdacosta
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadoshenriqueprossi
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Rogério Moraes de Carvalho
 

Ähnlich wie C++11: Novidades da linguagem (20)

C#4 – O que há de novo
C#4 – O que há de novoC#4 – O que há de novo
C#4 – O que há de novo
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 
Aula01
Aula01Aula01
Aula01
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
Modulo02
Modulo02Modulo02
Modulo02
 
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry PiresNovidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
 
Desenvolvimento iOS
Desenvolvimento iOSDesenvolvimento iOS
Desenvolvimento iOS
 
Principais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorizaçãoPrincipais conceitos e técnicas em vetorização
Principais conceitos e técnicas em vetorização
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
 
Novidades do CSharp 4.0
Novidades do CSharp 4.0Novidades do CSharp 4.0
Novidades do CSharp 4.0
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcados
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
 

C++11: Novidades da linguagem

  • 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.
  • 6. 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;});
  • 7. 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*
  • 8. 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;
  • 9. 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; }
  • 10. Fuções de uma classes delete default final Override
  • 11. Rvalue reference Possibilita mover um rvalue Aumenta performance por remover cópias
  • 12. static_assert Checar condições em tempo de compilação Útil para programação com templates
  • 13.
  • 14. You Win. Flawless Victory. Fatality