Compartilhar via


Diferenças de outras implementações

Específico da Microsoft

A lista a seguir mostra algumas diferenças entre Microsoft C++ e outros compiladores.

  • O compilador não pode criar uma instância de um modelo fora do módulo no qual ela está definida.Visual C++ não oferece suporte a palavra-chave de export .

  • Os modelos não podem ser usados com as funções declaradas com __declspec (dllimport) ou __declspec (dllexport).

  • Todos os argumentos de modelo devem ser de um tipo que não ambíguo exatamente as correspondências que a lista de parâmetros de modelo.Por exemplo:

    template< class T > T check( T );
    template< class S > void watch( int (*)(S) );
    watch( check );     //error
    

    O compilador deve criar uma instância da função modelo check no formulário int check( int ), mas a inferência não pode ser seguido.

  • Para resolver os nomes usados nos modelos de classe ou em modelos de função, todos os nomes são tratados como nomes dependentes.Consulte Resolução de tipos para dependentes

  • Em um modelo de classe, o parâmetro de modelo pode ser redefinido no escopo da definição de classe.Consulte Resolução de nomes para declarados localmente

Consulte também

Outros recursos

Modelos