Отключить "неиспользуемую функцию" для определенного имени функции

Я компилирую проект с "Обрабатывать предупреждения как ошибки".

Проблема в том, что мне нужен список добавочных типов:

/questions/43637457/postroenie-spiska-vremeni-kompilyatsii-postepenno-v-c/43637466#43637466

И GCC справедливо жалуется, что набор объявленных статических функций не определен и не используется. Я не хочу полностью отключать эту диагностику. Вместо этого я хотел бы отключить его только для функций с определенным именем. Есть ли такая возможность? Может быть, какой-то атрибут? Или вариант компиляции?

Пояснение: мне не нужно отключать предупреждение для указанного фрагмента файла. Мне нужно отключить его для конкретной функции.

РЕДАКТИРОВАТЬ: я смог решить мою проблему, используя трюк на основе ADL. Так что вопрос больше не актуален.

2 ответа

Решение

Это лучше всего сделать с __attribute__((unused)) Расширение GCC, как в коде ниже:

namespace {
    void f() __attribute__((unused));
    void g();

    void f() {}
    void g() {}
}

int main() {/*f(); g();*/ return 0;}

В C++17 вы можете объявить свою функцию с помощью [[maybe_unused]]:

[[maybe_unused]] void foo (int, int);

источник: /questions/26588329/podavit-preduprezhdenie-kompilyatora-obyavlennaya-funktsiya-nikogda-ne-upominaetsya/26588338#26588338

Другие вопросы по тегам