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