"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Nuevas características y mejoras clave traídas por C ++ 17

Nuevas características y mejoras clave traídas por C ++ 17

Publicado el 2025-04-14
Navegar:271

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

¿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
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3