Предупреждение компилятора (уровень 2) C4396
"имя": если дружественное объявление ссылается на специализацию функции-шаблона, встроенный спецификатор использовать невозможно
В специализации шаблона функции нельзя указывать спецификаторы inline . В этом случае при компиляции возникает предупреждение C4396, а спецификатор inline пропускается.
Исправление ошибки
- Удалите спецификатор
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;
};