"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 > ¿Por qué GCC 4.6.1 tiene problemas con las listas de inicialización para std::array?

¿Por qué GCC 4.6.1 tiene problemas con las listas de inicialización para std::array?

Publicado el 2024-12-22
Navegar:279

Why Does GCC 4.6.1 Struggle with Initialization Lists for std::array?

Usando listas de inicialización con std::array

Es posible crear una std::array usando listas de inicialización de varias maneras. Sin embargo, GCC 4.6.1 puede encontrar errores al intentar esto.

Sintaxis de inicialización

La sintaxis para crear un std::array usando listas de inicialización es:

std::array array = { { value1, value2, ..., valueN } };

donde T es el tipo de elemento de la matriz, el tamaño es el tamaño de la matriz y el valor1 al valorN son los valores iniciales de la matriz.

Inicialización agregada

std::array es una estructura agregada, que permite que se agregue -inicializado. Para inicializar de forma agregada la matriz dentro de la estructura, utilice un conjunto adicional de llaves:

std::array<:string> strings = {{ "a", "b" }};

Esta sintaxis evita el constructor que toma una lista de inicializadores, lo que puede causar problemas en GCC 4.6.1.

Compilador Problema

El estándar C 11 sugiere que las llaves adicionales se pueden omitir en la inicialización agregada. Por lo tanto, la incapacidad de GCC 4.6.1 para compilar listas de inicialización para std::array sin las llaves adicionales es probablemente un error del compilador.

Ú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