BT

O Visual Studio 14 dá ênfase à modernização do C++

| por Jeff Martin Seguir 16 Seguidores , traduzido por Gabriel Simas Seguir 0 Seguidores em 26 ago 2014. Tempo estimado de leitura: 2 minutos |

O primeiro preview do Visual Studio 14 incluiu novidades para o lançamento do C++ 11/14. O atual Desenvolvedor Sênior da Microsoft Stephen T. Lavavej deu mais detalhes sobre o que será implementado no suporte ao novo C++ 14.

Este trabalho é específico e além de corrigir algumas das modificações feitas a partir da versão VS2013RTM, cobre três categorias importantes: novas funcionalidades referentes a Biblioteca de Templates padrão (STL), correções no código fonte da STL e correções em mudanças recentes desta mesma STL. É importante notar que, de acordo com Lavavej, o trabalho feito na STL do C++ no Visual Studio 13 foi feito inicialmente por 4 desenvolvedores: Lavavej, P.J. Plauger, Artur Laksberg e James McNellis.

A melhorias para o suporte à STL são todas baseadas em Especificações para o C++ 14 aprovadas bem como uma Especificação Técnica (para o Sistema de Arquivos V3):

  • N3642 <chrono>/<string> UDLs
  • N3644 Null Forward Iterators
  • N3654 quoted()
  • N3657 Heterogeneous Associative Lookup
  • N3658 integer_sequence
  • N3668 exchange()
  • N3670 get<T>()
  • N3671 Dual-Range equal()/is_permutation()/mismatch()
  • N3779 UDL <complex>
  • N3887 tuple_element_t
  • N3940 Filesystem "V3" Technical Specification

Além disso, tais melhorias são complementadas por muitas outras soluções de problemas nas bibliotecas que também pertencem ao C++ 14. Outras correções foram incluídas à implementação da STL do Visual Studio 14, tais como: o suporte ao Clock da biblioteca <chrono> foi melhorado, Na implementação do <atomic> dentro do VS2014 foi removido todo o código inline assembly x86 e substituído por "Intrinsic functions', e isso fez com que houvesse um ganho de performance.

Os arquivos dos objetos gerados serão mais eficientes e muito menores que os mesmos arquivos gerados na versão 2013. Melhorias também foram implementadas ao suporte de Expressõe Regulares para permitir uma implementação mais estável.

Usuários da função gets() vão notar que ela foi removida do C++ 14, mas continuará sendo acessível pela implementação existente no header <stdio.h>.

Com todas estas modificações, Lavavej avisa que algumas partes compatíveis com versões anteriores foram quebradas. As partes afetadas pela quebra incluem as modificações implementadas para o funcionamento da interface com o Sistema de Arquivos V3 e o uso da diretiva _USE_32_BITTIME_T que gera os warnings durante a compilação. Uma falha conhecida no iostreams, que ocorre quando o iostreams efetua um parse em números de Ponto Flutuante, ainda persiste e sua correção está em desenvolvimento.

Para mais detalhes, os leitores podem acessar o post de Lavavej na MSDN.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT