Partager via


Avertissement du compilateur (niveau 3) C4686

Mise à jour : novembre 2007

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

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

Pour plus d'informations, consultez Récapitulatif des modifications sans rupture au moment de la compilation.

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