Sdílet prostřednictvím


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ů

Viz také

Další zdroje

Šablony