最近、MACROSを使用してコンパイル時に推奨されなくなったコードにラベルを付けるコードが追加されました。 Doxygenは廃止された関数を正しく文書化していません。Doxygenを使用してMACRO C++に送信される関数を文書化
#if defined(__GNUC__)
#define DEPRECATED(func) func __attribute__((deprecated)) /**< mark a function as deprecated in gcc. */
#elif defined(_MSC_VER)
#define DEPRECATED(func) __declspec(deprecated) func /**< mark a function as deprecated in msvc. */
#endif
注これがこの記事のためのマクロの簡易版で、実際のマクロは、コンパイラのバージョンチェックになどを行う
その後マクロは、コンパイラは、関数があったことを知らせるための機能を中心に使用されていますコンパイラの警告が発行されるようになりました。
/**
* myMethod() is deprecated.
*/
DEPRECATED(
/**
* @deprecated
* Description of deprecated function
*
* @param var this is a parameter
*
* @return this is returned
*/
int myMethod(int var)
);
問題はDoxygenのではないMyMethodは(int型VAR)非推奨のドキュメントを表示したいということです。
DoxygenでmyMethodを文書化する方法は知っていますが、マクロでは使用できません。
私は実際に同じ解決策を見つけて、それを投稿しようとしていました。 PREDEFINEDについての注記は、正しい結果を与えなかった引用符を除いて、値を "DEPRECATED(x)= x"にする必要があります。あなたのソリューションに与えられたリンクは、私が解決策を見つけた方法でした。ありがとう:) – gnash117