Novo padrão C++: principais mudanças na versão mais recente

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Foi lançada a nova versão do C++: o que mudou na linguagem de programação



O comitê internacional de padronização do C++ (ISO/IEC JTC1/SC22/WG21) aprovou oficialmente a mais recente versão do padrão — C++23. Esta versão traz melhorias há muito esperadas que tornam a linguagem mais segura, expressiva e conveniente para o desenvolvimento de software de sistema e aplicativo. Contamos sobre as novidades mais significativas.



Principais mudanças no C++23



1. std::print — saída formatada sem esforço extra

Um dos recursos mais notáveis foi a introdução da função std::print. Agora, para saída no fluxo padrão, não é necessário escrever construções complexas com std::cout ou usar printf com risco de erros de tipo. std::print funciona com base em std::format, garantindo segurança de tipo e legibilidade:

  • Formatação automática de números, strings e tipos definidos pelo usuário.
  • Suporte a locales e Unicode.
  • Velocidade próxima à do printf, mas sem vazamentos de memória.


2. Trabalho aprimorado com corrotinas

As corrotinas, introduzidas pela primeira vez no C++20, receberam uma série de correções e complementos. No C++23, a sintaxe para declarar funções assíncronas foi simplificada, e foi adicionado suporte para std::generator — um novo tipo para criar sequências de valores dinamicamente:

  • Geradores permitem escrever cálculos preguiçosos sem gerenciamento manual de estado.
  • O volume de código boilerplate para trabalhar com corrotinas foi reduzido.


3. Módulos — estabilidade e desempenho

Embora os módulos tenham sido introduzidos no C++20, sua implementação nos compiladores deixava a desejar. No novo padrão, as regras de exportação e importação foram refinadas, resultando em:

  • Redução do tempo de compilação de grandes projetos em 2 a 3 vezes.
  • Compatibilidade total com arquivos de cabeçalho (modo híbrido).
  • Possibilidade de criar módulos para a biblioteca padrão (experimental).


4. Novos recursos de constexpr e consteval

A expansão do contexto de expressões constantes é um dos principais objetivos do desenvolvimento do C++. No C++23, é permitido usar constexpr para:

  • Alocação dinâmica de memória (std::vector e std::string).
  • Chamada de funções virtuais.
  • Trabalho com ponto flutuante sem perda de precisão.

Isso permite executar cada vez mais cálculos em tempo de compilação, acelerando o runtime.



5. Atributo [[assume]] — dicas para o otimizador

O novo atributo [[assume(expressão)]] informa ao compilador que a expressão é verdadeira naquele ponto do código. Isso proporciona:

  • Otimizações mais agressivas (remoção de ramificações, desenrolamento de loops).
  • Aumento de desempenho em trechos críticos (motores de jogos, embedded).


6. Simplificação de multithreading

Foram adicionados novos tipos para sincronização: std::counting_semaphore com desempenho aprimorado e std::latch para barreiras de uso único. Além disso, foi adicionado suporte para std::mdspan

Recommended Libraries