Вы должны удалить или закомментировать эти спецификации исключений везде, где можете 1 , например ::
static Value getPriorityValue(const std::string& priorityName);
static Value getPriorityValue(const std::string& priorityName) /* throw(...) */;
Вы можете использовать опцию -Wno-deprecated
, чтобы отключить предупреждения амортизации для мест, где вы не можете редактировать код. Я бы рекомендовал использовать его только при компиляции сторонних библиотек. Если вам нужно включить сторонний заголовок, который выдает такое предупреждение, вы можете сделать 2 :
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated"
#include "thirdparty.h"
#pragma GCC diagnostic pop
Это должно работать как с gcc
, так и с clang
и отключать -Wdeprecated
только для определенных включений.
1 Спецификации динамических исключений устарели с C ++ 11 и недопустимы с C ++ 17, поэтому вы можете избавиться от них и обновить сторонние библиотеки. используя как можно скорее.
2 Если вы включите эти заголовки, используя аргумент -I
, вы можете переключиться на -isystem
, чтобы отключить все предупреждения для этих заголовков, как упомянуто @ Yakk - Adam Nevraumont . См. Также Как подавить предупреждения GCC из заголовков библиотеки? .