Предупреждение C6504

Недопустимая заметка: свойство может использоваться только для значений указателя, указателя на член или типа массива

Это предупреждение указывает на использование заметки SAL для конкретного указателя в типе данных, отличном от указателя.

Замечания

Дополнительные сведения о типах данных, поддерживаемых свойствами, см. в разделе "Свойства заметки".

Имя анализа кода: NULL_ON_NON_POINTER

Пример

Следующий код создает предупреждение C6504. Эта проблема связана с использованием указателя _Maybenull_ и _Notnull_ ссылки pt.

class Point
{
    public:
        //  members
};

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

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

Чтобы исправить это предупреждение, удалите заметку, если она не имеет смысла. Вы также можете изменить заметку, которая применима к используемому типу или изменить тип, соответствующий заметке. Следующий код исправляет это предупреждение, изменив первый экземпляр pt указателя и удалив вторую заметку для сопоставления ссылочного типа.

class Point
{
    public:
        //  members
};

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

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

См. также

Свойства заметки