Avertissement du compilateur (niveau 3) C4686

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

Notes

Une spécialisation de modèle de classe n’a pas été définie avant d’être utilisée dans un type de retour. Tout ce qui instancie la classe résout C4686 ; La déclaration d’une instance ou l’accès à un membre (par exemple) C<int>::some_membersont également des options.

Cet avertissement est désactivé par défaut. Pour plus d’informations, consultez les avertissements du compilateur désactivés par défaut.

Exemple

Essayez ce qui suit à la place :

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