Compartir a través de


Advertencia del compilador (nivel 3) C4686

Actualización: noviembre 2007

'user-defined type' : possible change in behavior, change in UDT return calling convention

'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++.

Vea Resumen de cambios importantes en tiempo de compilación para obtener más información.

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