Declaração de Problema: STRAGLES
Os usuários comumente expressam as preocupações da Microsoft visual C (msvc). Quais aspectos específicos do mecanismo não operam como esperado? No entanto, surgem dúvidas sobre se essa verificação verifica se os nomes utilizados nos modelos são declarados adequadamente. Ele não verifica a presença de nomes declarados, levando a problemas de compilação quando os nomes não têm declarações adequadas.
modelo
Um compilador compatível com padrão resolveria a chamada Foo (0) durante a primeira fase e a vincularia a Foo (void*). No entanto, o MSVC adia esse processo para a segunda fase, vinculando incorretamente Foo (0) a Foo (int) e resultando em um erro. fase. struct s {}; } barra vazia (void *) {} modelo & lt; typename t & gt; void foo (t *t) { bar (t); } barra vazia (n :: s *s) {} int main () { N :: s; foo (& amp; s); } Em ambos os casos, o comportamento da MSVC contraria a separação especificada entre a primeira e a segunda fases da instanciação do modelo. Esta implementação incorreta persiste no Visual Studio 2015.
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