Compartir a través de


Diferencias de las implementaciones de Otros

Específicos de Microsoft

La lista siguiente muestra algunas diferencias entre Microsoft C++ y otros compiladores.

  • El compilador no puede crear instancias de una plantilla fuera del módulo en el que se define.Visual C++ no admite la palabra clave de export .

  • Las plantillas no se pueden utilizar con funciones declaradas con __declspec (dllimport) o __declspec (dllexport).

  • Todos los argumentos de plantilla deben ser de un tipo inequívocamente que exactamente las coincidencias que de la lista de parámetros de plantilla.Por ejemplo:

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

    El compilador debe crear instancias de la función con plantilla check en el formulario int check( int ), pero la inferencia no puede realizar su seguimiento.

  • Al resolver los nombres utilizados en plantillas de clase o plantillas de función, todos los nombres se tratan como nombres dependientes.Vea Resolución de nombres para los tipos de Dependientes

  • En una plantilla de clase, el parámetro de plantilla se puede volver a definir en el ámbito de la definición de clase.Vea La resolución de nombres para Locally declarado nombres

Vea también

Otros recursos

Plantillas