"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 > ¿Cuáles son las características clave del lenguaje y la biblioteca introducidas en C ++ 17?

¿Cuáles son las características clave del lenguaje y la biblioteca introducidas en C ++ 17?

Publicado el 2025-02-06
Navegar:241

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

] nuevas características en C 17

después de la finalización del desarrollo de características para C 17, se han introducido varias características de lenguaje y adiciones de la biblioteca:

Language Características:

  • Usage mejorado de plantilla:

    &&]
      Deducción de argumento para la deducción para plantillas de clase
    • de la representación de valores de cualquier tipo con template & lt; auto & gt;
  • lambda mejoras:

    ] Introducción de constexpr lambdas

      para capturar esto en lambdas
  • atributas:
  • ] Introducción de nuevos atributos, como [[Fallthrough]], [[Nodiscard]], y [[tal vez_unused]]

    Cleanex Cleanp:
  • ]
  • Inline variables

    Simplified namespace syntax: namespace A::B
    • No-throw expressions: throw() and noexcept(true)
    Control Flow mejoras:
  • enlaces estructurados para desempaquetar los valores

    if (init; condición) e interruptor (init; condición) para el control de flujo mejorado
    • rango generalizado basado en loops
    • if constexpr para la compilación condicional
    Otras características notables:
  • hexadecimal float puntos literales

    asignación de memoria dinámica para datos sobrealineados
    • copia garantizada
    • Se corrigió el orden de evaluación para expresiones
    • en la lista directa de enums
    • avance de las garantías de progreso para hilos
    • [&]
    [&] [&] [&] [&] [&]
  • [&]
[&]

[&] [&] [&]

[&]

[&]

  • garantías de garantías de progreso para hilos
  • [&]
  • [&] [&] [&] [&] [&] [&]
  • [&]
[&]

[&]

    Garantes &&&] biblioteca adiciones:
  • tipos de datos:
  • std :: variant para representar valores de diferentes tipos

std: : opcional para representar valores opcionales std :: Any para representar valores de cualquier tipo, incluidos los tipos no cotizables

    std :: string_view para el manejo eficiente de las referencias de cadena
  • std :: byte para representar datos sin tipo de información

llameable manejo:

  • std :: invoke para invocación de llamadas genéricas
std :: Aplicar para la invocación de invocación llamable basada en tuple

std :: make_from_tuple para construir objetos de tuplas

Introducción de IS_InVocable y rasgos relacionados
  • ] Biblioteca del sistema de archivos:

de la especificación técnica del sistema de archivos (ts)

    nuevos algoritmos:
  • for_each_n, reducir, transformar_reduce, y más

thinging mejoras:

  • introducción de std :: shared_mutex para más eficiente multi-threaded threaded Access
  • Garantías atómicas y detección de tamaño de interferencia de hardware

Biblioteca Fundamentals ts adiciones:

    buscando algorithms (alg.search)
  • Polymorphic Allocator (PMR)

Container mejoras:

    try_emplace e insert_or_assign para la inserción eficiente del contenedor
  • ] SPACILE PARA MAPS, SETS Y CONTENETORES UNORDED
  • no Const data () Access para cadenas
  • inteligente:
  • corrige y se ajustan a unique_ptr
  • introducción de débil_from_this para administrar indicadores compartidos
  • misc:
] Uso de C11 en lugar de C99 para la biblioteca estándar

reservado STD [0-9] espacios de nombres para futuras bibliotecas estándar

varias funciones de utilidad (destruir, no inicializar _ ***)
  • exposición de funciones de matemáticas especiales
Introducción de std :: clamp, std :: gcd, y std :: lcm

What are the Key Language and Library Features Introduced in C  17?
mejoras de manejo de excepciones, incluyendo std :: no -shapting_exception ] std :: as_const, std :: bool_constant, y varias utilidades de plantilla

mejorado :: chrono biblioteca introducción de operadores booleanos (std :: conjunction, std :: disjunction, std: : negation)

para el uso de noexcept dentro de std

despreciado características:

  • de la eliminación de algunas bibliotecas C, & lt; Codecvt & gt;, result_of, y otros

Ú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