Udostępnij za pośrednictwem


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

Zobacz też

Inne zasoby

Szablony