Differenze rispetto ad altre implementazioni

Specifici di Microsoft

Di seguito sono illustrate alcune differenze tra Microsoft C++ e altri compilatori.

  • Il compilatore non può creare un'istanza di un modello al di fuori del modulo in cui è definito.Visual C++ non supporta la parola chiave export.

  • i modelli non possono essere utilizzati con le funzioni dichiarate con __declspec (dllimport) o __declspec (dllexport).

  • Tutti gli argomenti di modello devono essere di un tipo non ambiguo che esattamente corrispondenze trovate dall'elenco di parametri di modello.Ad esempio:

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

    Il compilatore deve creare un'istanza di una funzione basata su modelli check nel form int check( int ), ma l'inferenza non può essere seguita.

  • Nella risoluzione dei nomi utilizzati nei modelli o template di funzione della classe, tutti i nomi sono considerati come nomi dipendenti.Vedere Risoluzione dei nomi dei tipi dipendenti

  • In un modello di classe, il parametro di modello può essere ridefinito sotto la definizione della classe.Vedere Risoluzione dei nomi per i nomi in locale dichiarati

Vedere anche

Altre risorse

Modelli