Compartir a través de


Advertencia del compilador (nivel 2) C4396

"name": el especificador inline no se puede usar cuando una declaración de confianza hace referencia a una especialización de una plantilla de función

Una especialización de una plantilla de función no puede especificar ninguno de los especificadores inline . El compilador emite la advertencia C4396 y omite el especificador inline.

Para corregir este error

  • Quite el especificador inline, __inlineo __forceinline de la declaración de función friend.

Ejemplo

El ejemplo de código siguiente muestra una declaración de función friend no válida con un 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;
};