Добрый день.
Скачал себе 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
всегда подавляет предупреждения сразу для всех аргументов, даже если часть из них не является потенциально неиспользуемыми.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я хочу вывести График, после нажатой кнопкиНо у меня окошко появляется и сразу исчезает
Недавно решил перейти к изучению С++ и QT (до этого изучал Си) и хотел прояснить несколько вещей для себяПрошу не ругать меня строго, так как...
Помогите, пожалуйста, решить задачу по программированию в с++Разбить элементы массива на группы по 4