Compiler Warning (level 2) C4396

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at Compiler Warning (level 2) C4396.

name" : the inline specifier cannot be used when a friend declaration refers to a specialization of a function template

A specialization of a function template cannot specify any of the inline specifiers. The compiler issues warning C4396 and ignores the inline specifier.

To correct this error

  • Remove the inline, __inline, or __forceinline specifier from the friend function declaration.

The following code example shows an invalid friend function declaration with an inline specifier.

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

Show: