Вебинар: Стратегия без иллюзий: как превращать цели в результаты - 19.08
Анализатор обнаружил функцию, проаннотированную как чистая, которая таковой не является.
Функции могут быть проаннотированы следующими способами:
Функция является чистой, если соответствует следующим требованиям:
Наиболее частые случаи нарушения чистоты функций:
Рассмотрим пример нечистой функции, но проаннотированной как чистая:
[[gnu::pure]] void foo()
{
int *x = new int;
....
}
Функция 'foo' проаннотирована в коде атрибутом 'gnu::pure'. При этом функция выделяет динамическую память в программе и нарушает требование об отсутствии побочных эффектов.
Для исправления необходимо либо убрать атрибут 'pure', либо исправить функцию следующим образом:
[[gnu::pure]] void foo()
{
int x;
....
}
Была ли полезна эта страница документации?
Мы ответим вам на:
Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок: