Partager via


Avertissement du compilateur (niveau 3) C4686

'type défini par l'utilisateur' : changement de comportement possible, changement de la convention d'appel de retour UDT

Une spécialisation de modèle de classe n'a pas été définie avant d'être utilisée dans un type de retour.Toute entité qui instancie la classe résoudra C4686 ; il est également possible de déclarer une instance ou d'accéder à un membre (C<int>::toute valeur).

Cet avertissement résulte de la mise en conformité à la norme ISO C++ de Visual C++ .NET 2003.

Cet avertissement est désactivé par défaut.Pour plus d'informations, consultez Avertissements du compilateur désactivés par défaut.

Essayez l’opération suivante :

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