BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias O Visual Studio 14 dá ênfase à modernização do C++

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

Favoritos

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

Conteúdo educacional

BT