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