Share via


Novidades do Visual C++ no Visual Studio 2012

Este documento apresenta novos e aprimorados recursos em Visual C++ no Visual Studio 2012.

Para obter informações sobre outros adições em Visual Studio 2012, consulte Novidades no Visual Studio 2012.

ObservaçãoObservação

Para obter informações sobre recursos integrados de (IDE) do ambiente de desenvolvimento para os desenvolvedores que estiverem criando aplicativos de Windows Store , consulte Desenvolver aplicativos da Windows Store usando Visual Studio 2012.

O melhor suporte padrões de C++11

Hh409293.collapse_all(pt-br,VS.110).gifBiblioteca padrão de modelo

  • Suporte a nova Cabeçalhos de STL: <atomic>, <chrono>, <condition_variable>, <filesystem>, <future>, <mutex>, <ratio>, e <thread>.

  • Para otimizar o uso de recursos de memória, recipientes agora são menores.Por exemplo, no modo de lançamento x86 com configurações padrão, std::vector reduziu-se de 16 bytes em Visual Studio 2010 a 12 bytes em Visual Studio 2012, e std::map reduziu-se de 16 bytes em Visual Studio 2010 a 8 bytes em Visual Studio 2012.

  • Como permitido mas não seja necessário por padrão, C++11 iteradores ASSUSTADORES foram implementados.Para obter mais informações, consulte o documento Atribuição ASSUSTADOR e inicialização de iteradorde PDF.

Hh409293.collapse_all(pt-br,VS.110).gifOutros aperfeiçoamentos C++11

  • Intervalo- base para loop. Você pode escrever um loop mais robustos que funcionem com matrizes, contêiner de STL, e coleções de Tempo de Execução do Windows no formulário for (for-range-declaration:expression).Isso é parte do suporte a linguagem principal.Para obter mais informações, consulte Instrução for com base em intervalo (C++).

  • Lambdas sem estado, que são os blocos de código que começam com um introducer vazio lambda [] e não captura qualquer variável local, agora é implicitamente conversível a ponteiros para funcionar conforme requerido pelo padrão C++11.Para obter mais informações, consulte Expressões lambda C++.

  • Suporte escopo de enumerações. A chave enum- C++ enum class agora é suportada.O código a seguir demonstra como enum- essa chave difere do comportamento de enum anterior.

    enum class Element { Hydrogen, Helium, Lithium, Beryllium };
    void func1(Element e);
    func1(Hydrogen); // error C2065: 'Hydrogen' : undeclared identifier
    func1(Element::Helium); // OK
    

suporte ao desenvolvimento de aplicativos deWindows Store

Compilador do Visual C++ e vinculador

  • Automático vectorizer. O compilador analisa loop no seu código e, sempre que possível, emite-se instruções que usam os registros e instruções vetorial que estão presentes em todos os processadores modernos.Isso torna o loop mais rápida.(As instruções do processador são conhecidas como o SSE, para passar extensões de SIMD).Você não precisará ativar ou solicitar esta otimização porque é aplicada automaticamente.

  • Automático parallelizer. O compilador pode analisar loop no seu código e emitir as instruções que difundem os cálculos em vários processadores ou núcleos de.Isso pode tornar o loop mais rápida.Você deve solicitar esta otimização porque não é ativada por padrão.Em muitos casos, isso ajuda a #pragma loop(hint_parallel(N)) incluir no seu código imediatamente antes do loop que você deseja parallelized.

    O vectorizer automático e o automático parallelizer podem trabalhar juntos para que os cálculos são espalhado entre vários núcleos e o código que usa em núcleo de cada registra seu vetor.Para obter mais informações, consulte Avisos e erros de paralelização automática.

Novo em Atualização 1 do Visual Studio 2012

  • Direcionar o Windows XP quando você compila o código em C++.

    Você pode usar o compilador e bibliotecas Visual C++ para direcionar o Windows XP e Windows Server 2003.Para obter mais informações, consulte Configurando programas C++ 11 para Windows XP.

Suporte de programação paralelo

Hh409293.collapse_all(pt-br,VS.110).gifParalelismo maciço acelerado C++ (AMP)

O AMP C++ acelera a execução de seu código C++ aproveitando o hardware dados paralelo que é normalmente atual como um GPU em uma placa gráfica discreta.O modelo de programação de C++ AMP inclui matrizes multidimensionais, indexação, transferência de memória, disposição lado-a-lado, e uma biblioteca de funções matemáticas.Usando extensões de idioma de AMP C++ e limitações do compilador, você pode controlar como os dados são movidos de CPU para GPU e verso.Para obter mais informações, consulte AMP C++ (C++ acelerado paralelismo maciço).

Hh409293.collapse_all(pt-br,VS.110).gifC++ acelerou o paralelismo maciço (AMP) a depuração e traçar perfil

Depuração. A experiência de depuração para aplicativos que usam o AMP C++ para direcionar o GPU é tão a depuração de outros aplicativos C++.Isso inclui novas adições paralelas de depuração que foi mencionado anteriormente.Consulte Depuração de código GPU.

Analisar. Existem está agora a suporte para atividades de GPU que é baseado no AMP C++ e a outra programação de Direct3D-based modelos.Consulte Gráfico de atividades GPU.

Hh409293.collapse_all(pt-br,VS.110).gifAprimoramentos paralelos gerais de programação

Com o hardware que move as arquiteturas de vários principal e de muito- principais, os desenvolvedores podem não confiar em velocidades de clock crescentes de núcleos único.Suporte de programação paralelo em Tempo de execução de concorrência permite aos desenvolvedores para aproveitar essas novas arquiteturas.

Em Visual Studio 2010, as bibliotecas avançados de parallelization C++ como Paralela à biblioteca modelos foram introduzidas, juntamente com recursos para tirar proveito de simultaneidade expressando pipelines sofisticadas do fluxo de dados.Em Visual Studio 2012, essas bibliotecas foram estendidas para fornecer um melhor desempenho, a mais controle, e um rico mais suporte para padrões de paralela que os desenvolvedores precisam a maioria.A largura de oferecimento agora inclui:

Hh409293.collapse_all(pt-br,VS.110).gifAprimoramentos paralelos gerais de depuração

Além da janela de Tarefas paralelas e a janela de Pilhas de paralela , Visual Studio 2012 oferece uma nova janela do Relógio paralelo para que você possa examinar os valores de uma expressão por todos os segmentos e processos, e executa a classificação e filtragem no resultado.Você também pode usar seus próprios visualizadores para estender a janela, e você pode aproveitar o novo suporte multiprocessadas através de todas as janelas de ferramenta.Para obter mais informações, consulte Como: usar a janela de inspeção paralela.

O IDE

As ferramentas no IDE do Visual Studio têm as melhorias significativas para ajudá-lo a ser mais produtivo quando você codifica em C++.Para obter mais informações sobre aperfeiçoamentos do IDE, consulte Destaques de produto para o Visual Studio 2012.

  • Suporte a modelos do Visual Studio. Agora você pode usar a tecnologia de modelos do Visual Studio para criar modelos de projeto e de item C++.

  • Carregamento assíncrono de solução. Os projetos são carregadas agora partes fundamentais de asynchronously-the de solução primeira - assim que você iniciar podem trabalhar mais rapidamente.

  • Implantação automatizados para depuração remota. Implantação de arquivos para depuração remota no Visual C++ foi simplificada.A opção implantar no menu de contexto de projeto automaticamente no computador remoto copia os arquivos que são especificados nas propriedades de configuração de depuração.Copiar arquivos para o computador remoto já não é necessário manualmente.Para obter mais informações, consulte A depuração remota de um projeto construído localmente.

  • C++/CLI IntelliSense. C++/CLI agora tem suporte completo do IntelliSense.Os recursos do IntelliSense como informações rápidas, a ajuda do parâmetro, os membros da lista, e o preenchimento automático funciona para C++/CLI agora.Além disso, o outro IntelliSense e aprimoramentos do IDE listados neste documento também funciona para C++/CLI.

  • O IntelliSense mais sofisticado dicas de ferramentas. As dicas rápido de informações do IntelliSense agora C++ mostram informações mais rica de estilo comentários de documentação XML.Se você estiver usando a API de biblioteca- por exemplo, C++ Amp- que tem a documentação XML para, então a dica de ferramenta IntelliSense mostra mais informações do que apenas a declaração.Além disso, se seu código possui os comentários de documentação XML, tooltips do IntelliSense mostrarão informações mais rica.

  • Construções de código C++. O código de esqueleto está disponível para a opção, se- outro, para o loop, e outras construções de código básico, na lista suspensa dos membros da lista.Selecione uma parte do código da lista para inserção no seu código e para preencher a lógica necessária.Você também pode criar suas próprias partes de código personalizado para usar no editor.Para obter mais informações, consulte Trechos de código.

  • Aprimoramentos dos membros da lista. A lista suspensa dos membros da lista aparece automaticamente à medida que você digita código no editor de códigos.Os resultados são filtrados, de modo que somente os membros relevantes são exibidos medida que você digita.Você pode controlar o tipo da lógica de filtragem que é usado pelo membro Lista- na caixa de diálogo de Opções em Editor de Texto, C/C++, Avançado.Para obter mais informações, consulte Usando IntelliSense.

  • Coloração semântica. Os tipos, enumerações, macros, e outros símbolos C++ têm agora a coloração por padrão.Para obter mais informações, consulte Escrevendo código no editor de códigos e de texto.

  • Realce de referência. Selecionando um símbolo realça agora todas as instâncias do símbolo no arquivo atual.Pressione a seta de Ctrl+Shift+Up ou seta de Ctrl+Shift+Down para mover entre as referências realçadas.Você pode ativar esse recurso em na caixa de diálogo de Opções , em Editor de Texto, C/C++, Avançado.

Ferramentas de gerenciamento do ciclo de vida do aplicativo

Hh409293.collapse_all(pt-br,VS.110).gifAnálise estática do código

A análise estática para C++ foi atualizada para fornecer informações mais rica do contexto de erro, mais regras de análise, e melhores resultados de teste.Na nova janela de Análise de Código , você pode filtrar mensagens pela palavra-chave, pelo projeto, e a gravidade.Quando você seleciona uma mensagem na janela, a linha em código onde a mensagem foi acionado realçada no editor de códigos.Para determinados avisos C++, a mensagem listam as linhas de origem que mostram o caminho de execução que resulta em aviso; pontos de decisão e as razões para tomar que o caminho específico é realçado.

A análise de código está incluída na maioria das edições de Visual Studio 2012.No windows, as edições superiores, e finais, todas as regras são incluídas.Nas edições para Windows 8 Windows e telefone, apenas os avisos os mais importantes são incluído.A análise de código não está incluída na edição express para Web.

Eis alguns outros aperfeiçoamentos de análise de código:

  • Novos avisos de simultaneidade ajudam você a evitar erros concorrentes certificar-se que você está usando as disciplinas corretas de bloqueio em programas multi-thread de ++.O analisador detecta violações condições de corrida, inversão ordem de bloqueio, o contrato potenciais do chamador/bloqueio de receptor, combinadas errado operações de sincronização, e outros erros concorrentes.

  • Você pode especificar o C++ marcas que você deseja aplicar para o código executa análise usando conjuntos de regra.

  • Na janela de Análise de Código , você pode inserir no código-fonte um pragma que elimina um aviso selecionado.

  • Você pode aprimorar a precisão e a abrangência de análise estática do código usando a nova versão de Idioma de anotação de origem da Microsoft (SAL) para descrever como uma função usa seus parâmetros, das suposições que faz sobre eles, e as garantias que faz quando completa.

  • Suporte para projetos de 64 bits do C++.

Para obter mais informações sobre como melhorar a qualidade de seu código, consulte Analisando a qualidade do aplicativo usando as ferramentas de análise de código.

Hh409293.collapse_all(pt-br,VS.110).gifTeste atualizado Framework da unidade

Use a nova estrutura de testes de unidade C++ em Visual Studio para escrever testes de unidade C++.Adicione um novo projeto de teste de unidade a sua solução existente C++ localização do modelo de Teste O da unidade C++ sob a categoria de Visual C++ na caixa de diálogo de Novo Projeto .Inicie a escrita de seus testes de unidade no stub Unittest1.cpp de código gerado de TEST_METHOD no arquivo.Quando o código de teste é escrito, crie a solução.Quando você deseja executar testes, abra uma janela de Gerenciador de Testes de Unidade escolhendo Modo de Visualização, Outras Janelas, Gerenciador de Testes de Unidadee, em seguida, no menu de atalho para a situação de teste que você deseja, escolha Executar Teste Selecionado.Depois que o ensaio terminar, você pode exibir resultados de teste e informações de rastreamento de pilha adicional na mesma janela.Consulte Verificando o código usando testes de unidade e Como criar e executar testes de unidade em um aplicativo da Windows Store.

Hh409293.collapse_all(pt-br,VS.110).gifGráficos de dependência de arquitetura

Para compreender melhor seu código, você pode agora gerar gráficos para binário, a classe de dependência, namespace, e inclui arquivos em uma solução.Na barra de menu, escolha Arquitetura, Gere o gráfico de dependência, e então Para a solução ou Para Arquivo Include para gerar um gráfico de dependência.Quando a geração de gráfico estiver concluída, você pode explorá-la expandindo cada nó, sabe relações de dependência mover entre nós, e procure o código-fonte escolhendo Exibir Conteúdo no menu de atalho para um nó.Para gerar um gráfico de dependência para incluir arquivos, no menu de atalho para um arquivo de código-fonte de *.cpp ou arquivo de cabeçalho de *.h , escolhe Gere o gráfico de inclui arquivos.Consulte Visualizar dependências de código em gráficos de dependência.

Hh409293.collapse_all(pt-br,VS.110).gifArquitetura Explorer

Usando a arquitetura Explorer, você pode explorar recursos em sua solução, em projetos, ou em arquivos C++.Na barra de menu, escolha Arquitetura, Janelas, Arquitetura Explorer.Você pode selecionar um nó que você está interessado, por exemplo, Modo de Exibição de Classe.Nesse caso, o lado direito da janela de ferramentas é expandido com uma lista de namespaces.Se você selecionar um namespace, uma nova coluna mostra uma lista de classes, estruturas, e de enum nesse namespace.Você pode continuar a explorar esses recursos, ou volte para a coluna à esquerda a extrema esquerda para iniciar outra consulta.Consulte Localizar o código com o Explorer de Arquitetura.

Hh409293.collapse_all(pt-br,VS.110).gifCobertura de código

A tinta de código foi atualizada para instrumentar binários dinamicamente em tempo de execução.Isto move a sobrecarga de configuração e fornece melhor desempenho.Você também pode coletar dados da tinta de testes de unidade para o aplicativo C++.Para obter mais informações sobre como criar e os testes de unidade de execução, consulte a seção de Framework de testes de unidade deste documento.Quando você criou testes de unidade C++, você pode usar Gerenciador de Testes de Unidade para descobrir teste em sua solução.Para executar testes de unidade e coletar dados de tinta de código para eles, em Gerenciador de Testes de Unidade, escolha Analisar Cobertura de Código.Você pode examinar os resultados de tinta de código em Resultados de Cobertura de Código windows na barra de menu, escolha Testar, Janelas, Resultados de Cobertura de Código.Consulte Usando a cobertura de código para determinar como muito código está sendo testado.

Consulte também

Conceitos

Novidades no Visual Studio 2012

Outros recursos

Blog da equipe do Visual C++

Visual C++ no Visual Studio 2012