Compartir a través de


Advertencia del compilador (nivel 3) C4686

"user-defined type": posible cambio de comportamiento; cambio en la convención de llamada para el valor devuelto de tipo definido por el usuario

Comentarios

No se definió una especialización de plantilla de clase antes de que usarla en un tipo de valor devuelto. Todo lo que crea instancias de la clase resuelve la advertencia C4686; también es opción declarar una instancia o acceder a un miembro (por ejemplo, C<int>::some_member).

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

Ejemplo

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