Avertissement du compilateur (niveau 2) C4396

'nom' : le spécificateur inline ne peut pas être utilisé lorsqu’une déclaration friend se réfère à une spécialisation d’un modèle de fonction

Une spécialisation d’un modèle de fonction ne peut spécifier aucun des spécificateurs inline . Le compilateur émet l’avertissement C4396 et ignore le spécificateur inline.

Pour corriger cette erreur

  • Supprimez le spécificateur inline, __inlineou __forceinline de la déclaration de la fonction friend.

Exemple

L’exemple de code suivant montre une déclaration de fonction friend non valide avec un spécificateur inline .

// C4396.cpp
// compile with: /W2 /c

class X;
template<class T> void Func(T t, int i);

class X {
    friend inline void Func<char>(char t, int i);  //C4396
// try the following line instead
//    friend void Func<char>(char t, int i);
    int i;
};