Документирование макрофункций в С++ с Doxygen
Как документировать макрофункцию в С++ с помощью Doxygen и ссылаться на нее в документации моего кода, не относящегося к Evil?
В частности, у меня есть обычный регулярный класс "Message", определенный в Message.H, который пользователи могут наследовать, чтобы определить свои собственные сообщения. В другом файле ( "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);
В документации для Message мне бы очень понравилось, если бы фраза "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();
};
Возможно ли это?
Ответы
Ответ 1
См. Http://www.doxygen.nl/manual/index.html.
В разделе "Специальные команды" перечислены команды \def
, а в разделе "Автоматическое создание ссылок" описано, что вы хотите связать с макросом.
Используйте \def
для документирования макроса отдельно от объявления.
Используйте #MACRO(params)
для автоматической ссылки на указанное определение макроса.