Добавление справочных таблиц в Doxygen

В моем приложении C++ у меня есть около 10 различных классов, которые определяют определенные "поведения" (назовем их A, B, C, ...). Другие места (методы) в коде могут использовать эти поведения в любой комбинации. Например, метод M1 использует поведения A и B, метод M2 использует поведения A, C и D, ...

На практике код похож на это:

BehaviorCollection coll;
BehaviorA ba;
coll.push_back(&ba);
BehaviorB bb;
coll.push_back(&bb);
someComplexFunctionality (coll);

Я хочу составить четкий обзор того, какой метод использует поведение, предпочтительно в документации конкретного поведения, чтобы документация класса каждого поведения содержала список, подобный следующему:

BehaviorA is used by the following methods:
- method1
- method3
- method7

Я мог бы жестко закодировать этот список, но через некоторое время он устареет, потому что добавляются новые методы, методы начинают использовать дополнительные поведения или методы перестают использовать поведения. Итак, чтобы сделать это поддерживаемым, я предпочитаю, чтобы в методе было что-то, использующее поведения, сообщая Doxygen, что "этот код использует эти поведения, поэтому добавьте что-нибудь в документацию этого поведения".

Такие инструменты, как "Visual AssistX" или "Understand for C/C++", позволяют мне выполнять поиск, но они все же требуют некоторых ручных действий каждый раз, когда вы хотите выполнить поиск. Поэтому я хочу автоматизировать это в моей системе генерации документации.

Я рассматриваю возможность использования defgroup и ingroup, но я не уверен, что это будет работать для фрагментов кода. Каков наилучший подход к использованию?

1 ответ

Решение

Я нашел решение с помощью тега xrefitem.

В каждом методе, использующем поведение, я добавлял следующую строку:

//! \xrefitem group_behaviorA_users "Behavior A users" "Behavior A Users"

И тогда само поведение содержит строку документации, подобную этой:

See \ref group_behaviorA_users for an overview of all users of this behavior.

Задача решена.

Другие вопросы по тегам