Compartilhar via


Erro do compilador C3231

'arg': o argumento de tipo de modelo não pode usar um parâmetro de tipo genérico

Os modelos são instanciados em tempo de compilação, mas os genéricos são instanciados em tempo de execução. Portanto, não é possível gerar código genérico que possa chamar o modelo, porque o modelo não pode ser instanciado em tempo de execução quando o tipo genérico é finalmente conhecido.

O seguinte exemplo gera o erro C3231:

// C3231.cpp
// compile with: /clr /LD
template <class T> class A;

generic <class T>
ref class C {
   void f() {
      A<T> a;   // C3231
   }
};