web-dev-qa-db-ja.com

Doxygenを使用したC ++でのマクロ関数の文書化

Doxygenを使用してC++でマクロ関数を文書化し、非悪コードの文書でそれを参照するにはどうすればよいですか?

具体的には、Message.Hで定義された「Message」という通常のクラスがあり、ユーザーはこのクラスから継承して独自のメッセージを定義できます。別のファイル( "MessageHelpers.H")には、次のようなクレイジーなマクロがあります。

//! Users must call this macro to register their messages...
/*! 
   ...lest they be forced to type all sorts of boring and 
   error-prone boiler plate code. 
   blah blah blah... More specific documentation and explanation...
*/
#define REGISTER_MESSAGE_TYPE(MSGTYPE) \
 do_some(MSGTYPE);                     \
 seriously();                          \
 crazy_stuff(MSGTYPE);                       

メッセージのドキュメントで、「REGISTER_MESSAGE_TYPE」というフレーズが自動的にリンクになり、マクロのドキュメントを指すことができれば、私はそれが大好きです。例えば。

//! A cool message class
/*! 
   Users can inherit from this class to create their own cool messages.
   Just be sure to call REGISTER_MESSAGE_TYPE after your class definition!
*/
class Message
{
  virtual void doSomeStuff();
};

これは可能ですか?

21
rcv

http://www.doxygen.nl/manual/index.html を参照してください

セクション「特別なコマンド」_\def_コマンド をリストし、 セクション「自動リンク生成」 はリンクしたいものを説明しますマクロに。

_\def_を使用して、宣言とは別のマクロを文書化します。
#MACRO(params)を使用して、上記のマクロ定義に自動リンクします。

16
Guerrero