Это, конечно, нубский вопрос, но я не могу найти ответ в документации по Doxygen.Я не уверен, используете ли:
@ file
или
@ class
при документировании моих файлов заголовков.
Причина в том, что если я добавлю файл, то все комментарии появятся только на вкладке Файлы, но не на вкладке Классы (для каждого).
Для cpp это нормально, я простоиспользуйте файл, и это хорошо, но если я использую файл и класс в заголовке (файл в начале и класс непосредственно перед началом объявления класса), то я получаю дублированные записи для класса в сгенерированной документации ...
Что я делаю не так?Какие-либо предложения?Идеи?
С уважением, Алекс
Редактировать: Я столкнулся с новой проблемой сейчас.Чтобы избежать циклических зависимостей, я объявляю свой класс дважды в заголовочном файле (возможно, это не лучший способ избежать циклических зависимостей, но он обычно работает для меня), например:
#ifndef EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL
#define EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL
namespace eu_sofia_kpi_common
{
class KPI_CPP_API AbstractThread;
}
#define EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL_END
#endif EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL
#ifdef EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL_END
#ifndef EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DEF
#define EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DEF
namespace eu_sofia_kpi_common
{
class KPI_CPP_API AbstractThread
{
public:
AbstractThread();
virtual ~AbstractThread();
///start method, derived classes must implement this method to initialize their boost::shared_ptr<boost::thread> pointer member object
virtual int start() = 0;
//stop method
virtual void stop() = 0;
protected:
///Pointer to a boost thread to be inherited and that children classes must use in the implementation of the start and stop methods
boost::shared_ptr<boost::thread> m_thread;
};
}
#endif EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DEF
#endif EU_SOFIA_KPI_COMMON_ABSTRACTTHREAD_DECL_END
Как вы можетевидите, у меня есть предварительная декларация до моей "настоящей" декларации.Теперь, если я использую @class, Doxygen жалуется на проблемы несоответствия, связанные с этим классом, хотя и генерирует документацию для этого класса.Я думаю, что все, что окружено #ifdef или #ifndef Doxygen, похоже, не очень нравится ...