コンパイラの警告 (レベル 1) C4836
非標準の拡張機能が使用されています : '型' : ローカル型または名前のない型を 'テンプレート' 引数として使用することはできません
C++ 標準ではローカル型をテンプレートの引数として使用できません。ただし Visual C++ コンパイラでは、/Ze を指定した場合に、これが可能です。C4836 は情報を提供するための警告で、非準拠コードを作成していることを知らせます。詳細については、「/Za、/Ze (言語拡張機能の無効化)」を参照してください。
既定では、C4836 はオフに設定されています。詳細については、「既定で無効になっているコンパイラの警告」を参照してください。
使用例
次の例では C4836 エラーが生成されます。
// C4836.cpp
// compile with: /W1
#pragma warning(default:4836)
template <class T>
struct TA {};
struct R {
public:
void f() {
struct S {};
TA<S> ta; // C4836
}
};
int main() {
R r;
r.f();
}