Использование g++, как объявить устаревшими функции-члены виртуального классаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Использование g++, как объявить устаревшими функции-члены виртуального класса

Сообщение Anonymous »

Кажется, у меня возникли проблемы с распечаткой устаревших предупреждений для функций, объявленных как виртуальные.
Я использую «g++ (GCC) 4.1.1 20061011 (Red Hat 4.1.1-30)».
Мои исследования показывают, что в gcc 4.x могут возникнуть проблемы, связанные с отказом от
чистых виртуальных функций (т. е. class bueller{ virtual int cameron()=0;};),
но нет... Я думаю, вы бы назвали их обычными... виртуальными функциями.
Просто чтобы мы были на одной волне.. .

foo.h

Код: Выделить всё

class Foo
{
void Foo_A() __attribute__((deprecated)); //non-virtual
virtual void Foo_B() __attribute__((deprecated)); //virtual
virtual void Foo_C() __attribute__((deprecated)) = 0; //pure virtual
};
Предположим, я скомпилировал это, файл foo.cpp и какой-то файл main.cpp, используя g++.

1 )Все, что использует Foo_A(), действительно отображает предупреждение.

2)Все, что использует Foo_B(), НЕ отображает предупреждение.

3)Все, что наследует Foo, реализует Foo_C, а затем использует его, не выдавая предупреждения.

Номер 1: работает, нет проблем.

Номер 3: похоже на известную ошибку/функцию... неважно...

Однако для №2, похоже, нет объяснения.
Возможно, это связано с №3, хотя ничего из того, что я нашел, не упоминается это.

Кто-нибудь знает, не упускаю ли я здесь что-нибудь относительно обычных функций-членов виртуального класса, которые я хочу объявить устаревшими?

Кстати: -Wno-deprecate НЕ включен в моих make-файлах.

Подробнее здесь: https://stackoverflow.com/questions/432 ... -functions
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»