"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que o GCC 4.6.1 tem dificuldade com listas de inicialização para std::array?

Por que o GCC 4.6.1 tem dificuldade com listas de inicialização para std::array?

Publicado em 2024-12-22
Navegar:911

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

Usando listas de inicialização com std::array

É possível criar um std::array usando listas de inicialização de diversas maneiras. No entanto, o GCC 4.6.1 pode encontrar erros ao tentar fazer isso.

Sintaxe de inicialização

A sintaxe para criar um std::array usando listas de inicialização é:

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

onde T é o o tipo de elemento do array, tamanho é o tamanho do array e valor1 a valorN são os valores iniciais do array.

Inicialização agregada

std::array é uma estrutura agregada, que permite que ele seja agregado- inicializado. Para inicializar agregadamente a matriz dentro da estrutura, use um conjunto adicional de chaves:

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

Essa sintaxe evita o construtor que usa uma lista de inicializadores, o que pode causar problemas no GCC 4.6.1.

Compiler Problema

O padrão C 11 sugere que as chaves extras podem ser eliminadas na inicialização agregada. Portanto, a incapacidade do GCC 4.6.1 de compilar listas de inicialização para std::array sem os colchetes extras é provavelmente um bug do compilador.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3