次の方法で共有


他の実装の違い

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 ) の形式でインスタンス化する必要がありますが、推論を続行できません。

  • クラス テンプレートまたは関数テンプレートで使用される名前を解決するときは、すべての名前が依存名として扱われます。「依存する型の名前解決」を参照してください。

  • クラス テンプレートでは、テンプレート パラメーターはクラス定義のスコープ内で再定義できます。「ローカルに宣言された名前の名前解決」を参照してください。

参照

その他の技術情報

テンプレート