doxygen — обнаружение устаревших функций в переполнении стека

В проекте C ++, задокументированном с помощью Doxygen, я пометил некоторые функции как устаревшие в комментариях к Doxygen. Есть ли способ использовать эти комментарии (вместе с Doxygen или другим инструментом), чтобы обнаружить, что другая не устаревшая функция вызывает устаревшую? (Проект довольно большой, и прохождение всех классов заняло бы много времени).

Спасибо

4

Решение

Если вы используете GCC или clang для компиляции своего кода, вы можете вручную аннотировать функции.

__attribute__((__deprecated__))
void dep_fun() { }

затем призвание dep_fun в любом месте вашего кода будет выдано диагностическое сообщение.

Если вы разместили Doxygen’s \deprecated последовательно, вы должны иметь возможность автоматически обновлять код с помощью таких инструментов, как sed.

9

Другие решения

Опираясь на Бенджаминов, отвечу:
Некоторые полезные директивы компилятора:

#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.)

3

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector