"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 > Novos recursos e aprimoramentos importantes trazidos por C ++ 17

Novos recursos e aprimoramentos importantes trazidos por C ++ 17

Postado em 2025-04-14
Navegar:373

What are the Key New Features and Enhancements Introduced in C  17?

Quais são os novos recursos em C 17?

c 17 apresenta uma gama de novos recursos e melhorias no idioma, incluindo:

    Dedução do argumento para modelos de classe
  • modelo para representar valores de qualquer modelo não-type Tipo de argumento corrige a um modelo não-type como um modelo como um suporte

      suporte para os templates
    • exensam-se e ... INTEGER
    • modernizando o uso com ... e lists
    • constexpr lambdas
    • captura isso em lambdas
    • atributos como [[Fallthrough], [[nodiscard]
    • enumerators
    • Using in attributes to avoid repeating attribute namespaces
    • Requiring compilers to ignore non-standard attributes they don't recognize
    • Inline variables
    • Namespace aliases (e.g., namespace A::B)
    • Simple static_assert (expressão); sem uma string
    • eliminando nenhum arremesso e substituindo-o por throw () e Noexcept (true)
    • Multi-Return e Controle de Flow:
    • valores
    • if (init; condição) e switch (init; condição) para instruções if e switch estendidas
    • generalizando range baseado em loops para sentinelas e iteradores personalizados
    • se constexpr para quase-generic Code
  • Misc:

    • hexadecimal float point literals
    • alocação de memória dinâmica para alinhados e dados
    • Para expressões
    • Lista direta Inicialização de enums
    • garantias de progresso avançadas (fpgs)
  • caracteres literais u8'u ', u8't', u8'f ', u8'8'
  • nãoexcept no tipo system erros de inclusão matrizes de conversão de ponteiro corrige

      corrige os construtores herdados e agregam a inicialização com herança
    • funções do utilitário para std type punning
    • Adicionas:
    • TIPOS DE DADOS:
    • std :: variant para tipos de sindicatos tags
    • std :::: para nullable valas para nullable: &&&h Union
    • std :: opcional para nullable valas
    • std :: string_view como uma referência a uma matriz de caracteres ou substring
    • std :: byte como nem um número inteiro nem um personagem, mas apenas dados
  • Stuff:

    std :: Invoke para a função genérica Calling
    • std :: Aplique para descompactar tuplos em chamadas de função

      std :: make_from_tuple e std :: Aplicar para object Construction Invoke_Result for Function Invocation Funcionalidade

      • Sistema de arquivo TS v1
      • : operações do sistema de arquivo aprimoradas
      • new algorithms:
      • Foreach_n, &&]
      • novo algorithms:
      • Foreach_n, Reduced, ReduD,, transformam, exclushann
      novo algorithms:
    • Foreach_n, ReduD_Reduce, Exclumbuce, Exclumber, Transform_inclusive_scan
    • shreading: std :: shared_mutex, atomic :: is_always_lockfree e scoped_lock

      machinery
      • Library Fundamentals TS v1:
      • Searching algorithms, polymorphic allocator (pmr), sampling
      • Container Improvements:
      • try_emplace and insert_or_assign, splicing for maps and sets, non-const .data() for strings, não-membro std :: size, std :: vazio, std :: dados, suporte mínimo de tipo incompleto em contêineres, iterador contíguo "conceito", iteradores constExpr, construtores atualizados para a família emplacedom de funções
    • smart poInter alterações: this
    • outras melhorias no Datatype Std:
    • Construção de std :: tupla com aparelhos encaracolados, reference_wrapper trivialmente
    • MISC:
    • C99 STD reservado [0-9] para futuras bibliotecas padrão
    • funções do utilitário como Destroy, Uninialized_move, Uninicialized_value_construct e Matemática Special e Matemática Especial funções std :: clup ()
    • cálculos gcd e lcm std :: untraught_exceptions para arremessar] de destrutores
    • std :: as_const e std] e std :: void_t Types std :: PROUSSO_LESS para ponteiros inteligentes classificarem com base no conteúdo
    • melhorias no std :: crono std :: conjunção, std :: crono
    • std :: negation
    • std :: não_fn
    • regras para NoExcept dentro de std
    • std :: is_contiGouous_layout conversão de número de alto desempenho com std :: to_chars e std :: from_chars

      • traços:
      • swap, is_aggregate, has_unique_object_reppresentations
      • swap, is_aggregate, has_unique_object_representations
      • swap, is_aggregate, has_unique_object_repeders
      • swap, is_aggregate, has_unique_object_representations
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