2013-04-30 1 views
0

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

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

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» или «Understanding for C/C++», позволяют мне выполнять поиск, но они все равно требуют некоторых ручных действий каждый раз, когда вы хотите выполнить поиск. Поэтому я хочу автоматизировать это в своей системе генерации документации.

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

ответ

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. 

проблема решена.

 Смежные вопросы

  • Нет связанных вопросов^_^