Поделиться через


Предупреждение компилятора (уровень 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;
};