Compartir a través de


Advertencia del compilador (nivel 3) C4686

'tipo definido por el usuario': posible cambio de comportamiento, cambio en la convención de llamada devuelta definida por el usuario

No se ha definido una especialización de plantilla de clase antes de su utilización en un tipo de valor devuelto.Cualquier medio para crear una instancia de la clase resolverá la advertencia C4686, además de la declaración de una instancia o la obtención de acceso a un miembro (C<int>::algo).

Esta advertencia es el resultado del trabajo realizado para que el compilador de Visual C++ .NET 2003 cumpla el estándar ISO C++.

De forma predeterminada, esta advertencia está desactivada.Para obtener más información, vea Advertencias del compilador desactivadas de forma predeterminada.

En su lugar, pruebe lo siguiente:

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