コンパイラの警告 (レベル 2) C4396
"name": フレンド宣言が関数の特殊化を参照している場合、テンプレートのインライン指定子を使用できません
関数テンプレートの特殊化では、いずれの インライン 指定子も指定できません。 コンパイラは、警告 C4396 を発行し、インライン指定子を無視します。
このエラーを解決するには
- フレンド関数の宣言から
inline
、__inline
、__forceinline
の指定子を削除します。
例
次のコード例では、 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;
};