MISRA C++:2008 Rule 3-3-2

Если функция будет иметь внутреннее рычажное устройство затем, то все переобъявления должны включать статический спецификатор класса памяти

Описание

Управляйте определением

Если функция будет иметь внутреннее рычажное устройство затем, то все переобъявления должны включать статический спецификатор класса памяти.

Объяснение

Если объявление функции имеет static спецификатор класса памяти, это имеет внутреннее рычажное устройство. Последующие redeclarations функции имеют внутреннее рычажное устройство даже без static спецификатор.

Однако, если вы не задаете static ключевое слово явным образом, это не сразу понятно от объявления, имеет ли функция внутреннее рычажное устройство.

Обменивайтесь сообщениями в отчете

Если функция будет иметь внутреннее рычажное устройство затем, то все переобъявления должны включать статический спецификатор класса памяти.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

развернуть все

static void func1 ();
static void func2 ();

void func1() {}  //Noncompliant
static void func2() {}

В этом примере, функциональном func1 объявляется static но заданный без static спецификатор.

Проверяйте информацию

Группа: фундаментальные понятия
Категория: необходимый

Введенный в R2013b