Partilhar via


aviso do compilador (nível 3) C4686

'definida pelo usuário digite ': possível alterar no comportamento, alterar no UDT retornar convenção de chamada

Uma especialização de modelo de classe não foi definido antes que ele foi usado em um tipo de retorno.Tudo o que instancia a classe resolverá C4686; declarar uma instância ou acessar um membro (C <int>:: nada) também são opções.

Esse aviso é o resultado do trabalho para que o compilador Visual C++ .NET 2003 estão em conformidade com ISO C++ padrão.

See Resumo das alterações de quebras de compilador-time para obter mais informações.

Esse aviso está desativado por padrão.See Avisos do compilador estão desativado por padrão para obter mais informações.

Tente o seguinte em vez disso,

// C4686.cpp
// compile with: /W3
#pragma warning (default : 4686)
template <class T>
class C;

template <class T>
C<T> f(T);

template <class T>
class C {};

int main() {
   f(1);   // C4686
}

template <class T>
C<T> f(T) {
   return C<int>();
}