В проекте C ++, задокументированном с помощью Doxygen, я пометил некоторые функции как устаревшие в комментариях к Doxygen. Есть ли способ использовать эти комментарии (вместе с Doxygen или другим инструментом), чтобы обнаружить, что другая не устаревшая функция вызывает устаревшую? (Проект довольно большой, и прохождение всех классов заняло бы много времени).
Спасибо
Если вы используете GCC или clang для компиляции своего кода, вы можете вручную аннотировать функции.
__attribute__((__deprecated__))
void dep_fun() { }
затем призвание dep_fun
в любом месте вашего кода будет выдано диагностическое сообщение.
Если вы разместили Doxygen’s \deprecated
последовательно, вы должны иметь возможность автоматически обновлять код с помощью таких инструментов, как sed.
Опираясь на Бенджаминов, отвечу:
Некоторые полезные директивы компилятора:
#ifdef _MSC_VER
#define DEPRECATED __declspec(deprecated)
#elif defined(__GNUC__) | defined(__clang__)
#define DEPRECATED __attribute__((__deprecated__))
#else
#define DEPRECATED
#endif
//usage:
DEPRECATED void foo(int bar);
(предупреждение: не тестировалось в clang и msc, тестируется только на GNUC.)