¿Cuáles son las nuevas características en c 17?
c 17 introduce un rango de nuevas características y mejoras en el idioma, incluyendo:
- [&] Características:
Template Argumento Deducción de plantillas de clase - Template para representar valores de cualquier tipo de argumento de plantilla no tipo Tipo
- para los argumentos no type
y ... expresiones -
auto x {8} como un entero -
modernizando usando con ... y lists -
constexpr lambdas -
capturando esto en lambdas -
atribuye como [[caída]], [[nodiscard]], atribuye] [[tal vez_uNUSED]] -
en los espacios de nombres y enumerators -
en atributas para evitar repetir los espacios de nombres de atributos -
requerir que los compiladores ignoren los atributos no standard que no reconocen -
en la línea variables - standard. (por ejemplo, espacio de nombres a :: b)
- simple static_assert (expresión); sin una cadena
- Eliminando No Throw y reemplazarlo con Shower () y NoExcept (true)
-
-
- Cleaner Multi-Return and Flow Control:
- Vinillas estructuradas para simplificar multi-return-return-return returny valores
if (init; condición) y cambiar (init; condición) para extendidas if y switch declaraciones
generalizando el rango basado en bucles para centinelas y iteradores personalizados - if Constexpr para casi generico código
-
-
- misc:
- hexadecimal float puntos literarios
asignación de memoria dinámica para datos excesos para expresiones
directa en la lista de la lista de enums - garantías de progreso de avance (fpgs)
- caracteres literals u8'u ', u8't', u8'f ', u8'8'
- noxcept en el sistema de typ errores de inclusión
- matrices de la conversión de puntero corrige
- se corrige a constructores heredados y agregan la inicialización con herencia
- Utility Functions para el tipo de STD Punning
-
[&] -
biblioteca de biblioteca Adiciones: -
-
-
tipos de datos: -
std :: variant para tipos de sindicatos etiquetados -
std :: opcional para valores nullables std :: cualquier cualquier tipo de tipo valor
std :: string_view como referencia a una matriz de caracteres o subceptor std :: byte como un entero ni un carácter, sino solo datos -
[&] Invoke Stuff:
-
std :: Invoke para la función genérica llamando -
std :: Aplicar para desempaquetar las tuplas en funciones de funciones -
std :: keque_from_tuple y std :: aplicar la construcción de objetos - es_invocable, es_invocable, its_invocable, its_rable, its_invocable, its_in. Invoke_RESULT para la funcionalidad de invocación de la función
-
System ts v1 - : operaciones mejoradas del sistema de archivos
Nuevos algoritms:
for_each_n, redonse, transformar_reduce, exclusive_scan, transformación, transformación, transformación, transformación, transformar, transformar, transformar, transformar y transformar, transformar, transformar y transformar, transformar y transformar, transformar y transformar, transformar y transformar, Transform_inform_inclusususus_Scan -
Threading: - std :: sharte_mutex, atómico en sys maquinaria
-
Fundaments de biblioteca ts v1: - Buscando algorithms, PolyMorphic Allocator (PMR), muestreando
Mejoras de contenedores: - thy_emplace e insert_assign, spicing para maps y sets, no contenedores (), para strings, no member, no member. std :: size, std :: vacía, std :: datos, soporte de tipo incompleto mínimo en contenedores, iterador contiguo "concepto", iterators constexpr, constructores actualizados para la familia emplica de las funciones
smart puntero: - corrige a los óseos y tweaks a débiles esta
otras mejoras de tipo de datos de std: - construcción de std :: tuple con brots curly, trivialmente copiable reference_wrapper
- miss:
c 17 está basado en c11 en lugar de C99 - reservado std [0-9] para futuras bibliotecas estándar
funciones de utilidad como Destro funciones - std :: clamp ()
gcd y lcm cálculos - std :: sinppsing_exception para lanzar dentro de destructores
std :: as_const y std :: tipos - std :: void_t y std :: void_t tipos
std :: propietary_less para indicadores inteligentes para ordenar basado en contenido -
mejoras a std :: chrono : conjunción, conjunción, std, std, std ::::::::::::::::::::::::::/ disjunction ,: disjuntion ,::::::::::::::::::::::& montory std :: negation
std :: not_fn - para noexcept dentro de std
- std :: is_contiguo_layout
- Conversión de número de alto rendimiento con std :: to_chars y std :: from_chars
-
-
-
- traits:
-
- swap, is_aggregate, has_unique_oBject_representation