Compiler Warning (level 2) C4396
Visual Studio 2015
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__forceinlinespecifier 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: