Добрый день.
Скачал себе Visual Studio 2017. Транслирую старый проект, а в нем есть директивы #pragma argsused. И мне Visual Studio 2017 на голубом глазу выдает сообщение:
warning C4068: неизвестная директива pragma
Вопросы:
Что это? Новая мода? Сколько лет производители компиляторов писали предупреждения, если параметр функции не используется и требовали явно указывать pragma argsused. И вдруг "неизвестная директива pragma".
Что же мне теперь весь код перелопачивать, вычеркивая pragma argsused?
А как другие трансляторы, GCC например? Тоже перестали понимать pragma argsused?
Спасибо.
Да, вам следует перелопатить весь код, удаляя #pragma argsused
и вставляя надлежащие блоки для указания, что параметр функции не используется. При желании такой блок можно спрятать в макрос.
void foo(int value)
{
static_cast<void>(value); // not used
альтернативный вариант c использованием стандартного C++17 аттрибута maybe_unused
void foo([[maybe_unused]] int value)
Существенным моментом является то, что argsused
всегда подавляет предупреждения сразу для всех аргументов, даже если часть из них не является потенциально неиспользуемыми.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я хочу вывести График, после нажатой кнопкиНо у меня окошко появляется и сразу исчезает
Недавно решил перейти к изучению С++ и QT (до этого изучал Си) и хотел прояснить несколько вещей для себяПрошу не ругать меня строго, так как...
Помогите, пожалуйста, решить задачу по программированию в с++Разбить элементы массива на группы по 4