Aviso do compilador (nível 3) C4686

'user-defined type': possível alteração no comportamento, alteração na convenção de chamada de retorno UDT

Comentários

Uma especialização de modelo de classe não foi definida antes de ser usada em um tipo de retorno. Qualquer coisa que instancie a classe resolve C4686; declarar uma instância ou acessar um membro (por exemplo, C<int>::some_member) também são opções.

Esse aviso está desativado por padrão. Para obter mais informações, confira Avisos do compilador desativados por padrão.

Exemplo

Em vez disso, experimente o seguinte:

// 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>();
}