"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Quais são os principais recursos de idioma e biblioteca introduzidos em C ++ 17?

Quais são os principais recursos de idioma e biblioteca introduzidos em C ++ 17?

Postado em 2025-02-06
Navegar:755

What are the Key Language and Library Features Introduced in C  17?

novos recursos em c 17

após a conclusão do desenvolvimento de recursos para C 17, vários novos recursos de idioma e adições de bibliotecas foram introduzidas:

Representação de valores de qualquer tipo com modelo & lt; auto & gt;

  • Lambda aprimoramentos: Lambda aprimoramentos:

    Introdução de constexpr lambdas
    • capacidade de capturar isso em lambdas
  • atribuições:

    atribuições:
    • ] Introdução de novos atributos, como [[Fallthrough]], [[Nodiscard]] e [[talvez_unusous]]
  • Syntax Cleanup:

    • Inline Variables
    Sintaxe do espaço de nome simplificado: espaço de nome a :: b
  • não-lança expressões: throw () e Noexcept (true)

    • Control Flow Melhorias:
    • ligações estruturadas para descompactar valores
    se (init; condição) e switch (init; condição) para controle de fluxo aprimorado
  • baseado em faixa generalizada para loops

    se constexpr para compilação condicional

    • Outros recursos notáveis:
    • hexadecimal float point literals
    alocação de memória dinâmica para dados super-alinhados
  • copy garantia elision

    Corrigido Order-Of-Avaluação para Expressões

    Lista direta Inicialização de enums
    • Avanço de garantias de progresso para threads
    • &&&] adições da biblioteca:
    • TIPOS DE DADOS:
std :: variante para representar valores de diferentes tipos

std: : Opcional para representar valores opcionais

std :: qualquer um para representar valores de qualquer tipo, incluindo tipos não copiáveis ​​

std :: string_view para manuseio eficiente de referências de string

std :: byte para representar dados sem tipo Information
  • handling chamável:
  • std :: Invoke para invocação genérica chamada
  • ] STD :: Aplique para invocação chamada de tupla
std :: make_from_tuple para construir objetos a partir de tuplos

introdução de traços is_invocable e relacionados

  • Biblioteca do sistema de arquivos:
  • implementação da especificação técnica do sistema de arquivos (ts)
novos algoritmos:

for_each_n, reduzir, transform_reduce e mais
encadear aprimoramentos:

introdução de std :: shared_mutex para mais eficiente Access
  • garante atômico e detecção de tamanho de interferência de hardware

biblioteca Fundamentos TS Addites:

  • Pesquisando algorithms (alg.sesecher)
  • polimorfico alocador (pmr)

melhorias de contêineres: Splicing para mapas, conjuntos e contêineres não ordenados

    não-CONST DATA () Access para Strings
  • ponteiros inteligentes:

&&] corrige e ajusta para exclusivo_ptr

    Introdução de fracos_from_this para gerenciar ponteiros compartilhados
  • DISC:
  • ] Uso de C11 em vez de C99 para a Biblioteca Padrão

std reservada [0-9] Namespaces para futuras bibliotecas padrão várias funções de utilitário (Destroy, Uninicialized _ ***)

    Exposição de funções matemáticas especiais
  • Introdução de std :: Clamp, std :: gcd e std :: lcm
  • melhorias de manuseio ] std :: as_const, std :: bool_constant e vários utilitários de modelos

aprimorados std :: crono Library Introdução de operadores booleanos (std :: conjunção, std :: Disjunction, std: std: : negação)

    Regras para o uso do NoExcept dentro do std
  • Recursos depreciados:
  • remoção de algumas bibliotecas c, & lt; codecvt & gt;, resultado_of, e outros
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3