Partilhar via


Aviso do compilador (nível 2) C4396

"name": o especificador embutido não pode ser usado quando uma declaração friend se refere a uma especialização de um modelo de função

Uma especialização de um modelo de função não pode especificar nenhum dos especificadores embutidos. O compilador emite o aviso C4396 e ignora o especificador embutido.

Para corrigir este erro

  • Remova o especificador inline, __inline ou __forceinline da declaração da função friend.

Exemplo

O exemplo de código a seguir mostra uma declaração de função friend inválida com um especificador 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;
};