Отличия от других реализаций
Только для систем Microsoft
В следующем списке показаны некоторые отличия между Microsoft C++ и другими компиляторами.
Компилятору не удается создать экземпляр шаблона вне модуля, в котором он определен.Visual C++ не поддерживает ключевое слово export.
Шаблоны не могут быть использованы с функции, объявленные с __declspec (dllimport) или __declspec (dllexport).
Все аргументы шаблона, должны включать ровно выраженный типа этого совпадения, которые точно список параметров шаблона.Например:
template< class T > T check( T ); template< class S > void watch( int (*)(S) ); watch( check ); //error
Компилятор создает экземпляр шаблона, функция check в форме int check( int ) только выводом не передается.
При разрешении имен, используемые в шаблонах класса или шаблонах функции, все имена обрабатываются как зависимые имена.См. раздел разрешение имен для зависимых типов
В шаблоне класса, параметр шаблона можно переопределить в области определения класса.См. раздел Разрешение имен для локально, объявленных имен