Я знаю, что, помимо прочего (например, auto_ptr), спецификации исключений в C ++ 11 устарели.
Есть ли способ получить предупреждение от g ++ 4.8 с помощью следующего кода?
struct F{
void foo() throw (int){}
};
int main()
{
}
Я уже пробовал с -Стена -педантика -Векстра -Представленные-объявления, но безуспешно
Ты можешь использовать
class __attribute__((deprecated)) old_style_throw_specification;
class old_style_throw_specification {};
#define throw(...) throw(old_style_throw_specification, __VA_ARGS__)
или если вам нужно поддерживать спецификации пустых бросков (спасибо @ John5342 за указание на это), вы можете использовать
#define throw(...) throw(old_style_throw_specification, ##__VA_ARGS__)
для макросов, но вам нужно скомпилировать с расширениями GNU: -std=gnu++11
как указано выше не является строго законным C ++ 11.
Других решений пока нет …