- A equipe do Google Chrome listou cerca de 40 problemas que surgem ao adotar C++20 e organizou as soluções
- O padrão C++ sai a cada 3 anos, e a primeira adoção no Chrome só acontece 3 anos após o lançamento
- O C++20 traz muitas mudanças
- descontinuações de suporte, reordenação de operadores de comparação, mudanças nas regras de agregação...
- Problemas
- o guia de estilo do Google é baseado em C++17
- o suporte a C++20 no Clang está incompleto e requer um novo libc++
- os binários do Windows ficam maiores
- descontinuação do suporte a
std::iterator (desde C++17)
- novas palavras-chave como
concept e requires foram adicionadas, o que causa conflito se já existirem nomes de variáveis
- além de muitos outros
6 comentários
Ué… uma linguagem do porte de C++ não deveria gerar tantas mudanças que quebram compatibilidade, né… ou isso é só um preconceito meu…
É por isso que C++ é uma linguagem estranha... A linguagem continua sendo atualizada de versão em versão, adicionando módulos, corrotinas e um monte de outras coisas, tentando fazer tudo sozinha, e quando sai uma funcionalidade, os compiladores só vão adicioná-la 4 ou 5 anos depois, e há diferenças no que cada compilador consegue fazer, com pequenas diferenças de sintaxe entre eles, e, a cada atualização de versão, coisas pequenas que você usava bem acabam desaparecendo, o STL fica maior e, com as atualizações, acaba não rodando em computadores antigos... Se for para usar, eu diria para usar Go ou Python.
Os itens em que a compatibilidade com versões anteriores não foi mantida ao atualizar a versão, na maioria dos casos, foram melhorias em funcionalidades com comportamento indefinido ou com falhas.
Recursos como módulos, concepts e coroutines mostram que a linguagem continua evoluindo, como acontece em outras linguagens.
Especialmente no caso de módulos, isso já era uma demanda antiga.
Não sei se a descontinuação do suporte a
std::iteratorse enquadra no caso que você mencionou de "melhorar recursos com comportamento indefinido ou defeituosos".No entanto, os principais pontos em que o C++ fica atrás de outras linguagens são os seguintes.
Entre esses pontos, acho que o maior problema é que, por causa do desinteresse da comunidade, há pouquíssimos artigos de qualidade e, com o número reduzido de usuários, os outros três problemas acabam não sendo resolvidos.