Как включить элементы шаблона в график совместной работы?

#c #doxygen

#c #doxygen

Вопрос:

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

 #include <vector>

class Foo
{
    int number;
};

class Bar
{
    int anotherNumber;
};

class MyClass
{
    Bar x;
    std::vector<Foo> y;
};
  

Но график совместной работы не содержит информации о Foo , хотя он является частью проекта.

введите описание изображения здесь

Если вы хотите попробовать это самостоятельно, установите

 EXTRACT_ALL            = YES
EXTRACT_PRIVATE        = YES
HIDE_UNDOC_RELATIONS   = NO
  

Есть ли какой-нибудь способ включить Foo правильно?

Комментарии:

1. Я не уверен, что вы пытаетесь мне сказать. Doxygen не компилирует ваш код, поэтому любые вызываемые вами функции не имеют значения.

2. Что вы имеете в виду, говоря «Doxygen не замечает, что у него есть документация по этому классу»? Вы ожидаете, что он создаст ссылку на Foo класс в графике совместной работы? Вы всегда можете добавить ссылку на Foo вручную в документации MyClass .

3. Ну, он создает ссылку для Bar и сообщает мне, что Bar у него есть член anotherNumber . Почему он не должен сообщать мне, что Foo у него также есть другой член? В тех случаях, когда у вас есть несколько элементов контейнера разных классов, это «скрывает» взаимозависимости между этими классами, потому что вы не можете сразу увидеть, что они, в свою очередь, содержат, как вы делаете с «обычными» ( Bar -подобными) членами.