Rozdíl oproti jiným implementacím
Specifické pro produkty společnosti Microsoft
V následujícím seznamu jsou uvedeny některé rozdíly mezi kompilátorem jazyka C++ společnosti Microsoft a jinými kompilátory.
Kompilátor nemůže vytvořit instanci šablony mimo modul, ve kterém je definována.Jazyk Visual C++ nepodporuje klíčové slovo export.
Šablony nelze použít s funkcemi, které jsou deklarovány pomocí __declspec (dllimport) nebo __declspec (dllexport).
Všechny argumenty šablony musí být jednoznačného typu, který přesně odpovídá seznamu parametrů šablony.Příklad:
template< class T > T check( T ); template< class S > void watch( int (*)(S) ); watch( check ); //error
Kompilátor by měl vytvořit instanci šablony funkce check ve tvaru int check( int ), ale nemůže následovat odvození.
Při překládání názvů používaných v šablonách třídy nebo šablonách funkce, jsou všechny názvy považovány za závislé názvy. Další informace naleznete v tématu Rozlišení názvů u závislých typů
Parametr šablony v šabloně třídy lze redefinovat v rozsahu definice třídy. Další informace naleznete v tématu Rozlišení názvů u místně deklarovaných názvů