Especialização explícita em escopo não-namespace
O código fornecido falha ao compilar no GCC, apesar de ter sido compilado com sucesso no Clang. De acordo com o padrão C ([temp.expl.spec]), especializações explícitas podem ser declaradas em qualquer escopo onde o modelo primário correspondente possa ser definido.
Este comportamento parece ser um bug no GCC. De acordo com o CWG 727, a regra em [temp.expl.spec] relativa à especialização explícita foi modificada para permitir tais declarações em qualquer escopo relevante.
Escopo da especialização explícita
O padrão original afirmava que a especialização explícita deveria ser declarada em um namespace envolvendo o modelo especializado. No entanto, o padrão atual permite especialização explícita em qualquer escopo onde o modelo primário possa ser definido:
A falha do GCC em aderir a esta regra atualizada constitui um bug. O problema foi identificado como Bug 85282 e atualmente é monitorado pela equipe de desenvolvimento do GCC.
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