typename
カテゴリ
構文 1
typename identifier
構文 2
template < typename identifier > class identifier
説明
未定義の型を参照するときに構文 1 を使用します。 詳細は、例 1 を参照してください。
構文 2 は、テンプレート宣言で class キーワードの代わりに使用します。 詳細は、例 2 を参照してください。
メモ: テンプレートと同時に typename キーワードを使う場合、ANSI 規格が typename キーワードを要求するケースでも、コンパイラは必ずしもエラーを報告しません。 -A スイッチを使ってコンパイラを呼び出した場合は、typename の省略箇所にフラグが付けられます。 たとえば次のコードの場合、
#include <stdio.h> struct A{ typedef int AInt; };
メモ: -A スイッチを使ってコンパイラを呼び出した場合は、typename の省略箇所にフラグが付けられます。
メモ: 次でコンパイル: bcc32(-A スイッチなし)
bc++bcc32 test.cpp
エラーは発生しません。 コンパイラは、AInt が typename ではないと見なしますが、それは -A スイッチが使用されない限りです。
メモ: 次でコンパイル: bcc32(-A スイッチあり)
bc++bcc32 -A test.cpp
結果は次のとおりです:
Error E2089 47071.cpp 7: Identifier 'AInt' cannot have a type qualifier
Error E2303 47071.cpp 7: Type name expected
Error E2139 47071.cpp 7: Declaration missing ;
どちらも予想どおりの結果です。