Advertencia C6504

Anotación no válida: la propiedad solo se puede usar en valores de puntero, puntero a miembro o tipo de matriz

Esta advertencia indica el uso de una anotación SAL específica del puntero en un tipo de datos que no es de puntero.

Comentarios

Para más información sobre los tipos de datos que admiten las propiedades, consulte Propiedades de anotación.

Nombre del análisis de código: NULL_ON_NON_POINTER

Ejemplo

El código siguiente genera la advertencia C6504. Este problema se deriva del uso del puntero específico _Maybenull_ y _Notnull_ de la referencia pt.

class Point
{
    public:
        //  members
};

void f(_Pre_ _Maybenull_ Point& pt)
{
    // code ...
}

void g(_Pre_ _Notnull_ Point& pt)
{
    // code ...
}

Para corregir esta advertencia, quite la anotación si no tiene sentido. También puede cambiar a una anotación que sea aplicable al tipo usado o cambiar el tipo para que coincida con la anotación. El código siguiente corrige esta advertencia cambiando la primera instancia de pt a un puntero y quitando la segunda anotación para que coincida con el tipo de referencia.

class Point
{
    public:
        //  members
};

void f(_Pre_ _Maybenull_  Point* pt)
{
    // code ...
}

void g(Point& pt)
{
    // code ...
}

Consulte también

Propiedades de anotación