Różnice z innych implementacji
Specyficzne dla firmy Microsoft
Na poniższej liście pokazano pewne różnice między Microsoft C++ i innymi kompilatorami.
Kompilator nie może utworzyć wystąpienia szablonu poza modułem, w którym jest zdefiniowany.Visual C++ nie obsługuje słowa kluczowego export.
Szablonów nie można używać z funkcjami zadeklarowanymi z __declspec (dllimport) lub __declspec (dllexport).
Wszystkie argumenty szablonu muszą być typu jednoznacznego, który dokładnie odpowiada temu na liście parametrów szablonu.Na przykład:
template< class T > T check( T ); template< class S > void watch( int (*)(S) ); watch( check ); //error
Kompilator powinien utworzyć wystąpienie funkcji szablonu check w postaci int check( int ), ale wnioskowanie nie może być stosowane.
Podczas rozpoznawania nazw używanych w szablonach klasy lub szablonach funkcji, wszystkie nazwy są traktowane jako nazwy zależne. Zobacz Rozpoznawanie nazwy dla typów zależnych
W szablonie klasy, parametr szablonu można przedefiniować w zakres definicji klasy. Zobacz Rozpoznawanie nazwy dla lokalnie zadeklarowanych nazw