5

Doxygenで文書化されたC++プロジェクトでは、Doxygenコメントでいくつかの関数を\deprecatedとしてマークしました。別の非推奨ではない関数が非推奨の関数を呼び出していることを検出するために、これらのコメントを(Doxygenまたは別のツールで)使用する方法はありますか?(プロジェクトはかなり大きく、すべてのクラスを通過するには多くの時間がかかります)。

ありがとう

4

2 に答える 2

9

GCC または clang を使用してコードをコンパイルしている場合は、関数に手動で注釈を付けることができます。

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

次に、コード内の任意の場所を呼び出す dep_funと、診断メッセージが出力されます。

doxygen の\deprecatedアノテーションを一貫して配置すると、sed などのツールを使用してコードを自動的に更新できるはずです。

于 2012-10-11T12:35:26.170 に答える
3

Benjamins の回答に基づく構築: いくつかの便利なコンパイラ ディレクティブ:

#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 でのみテストされています。)

于 2014-08-04T18:47:02.457 に答える