Я сделал достаточно Гугления, чтобы знать это, если у меня есть что-то как
class SubObject {
public:
//blah blah blah
};
class Aggregate {
public:
boost::shared_ptr<SubObject> m_ptr;
};
Я могу заставить Doxygen создавать "корректную" диаграмму сотрудничества, если у меня есть фиктивное объявление как
namespace boost { template<class T> class shared_ptr { T *dummy; }; }
в моем заголовочном файле.
Мой вопрос: как я заставляю это работать по всем моим проектам и всем моим заголовкам, не имея необходимость на самом деле включать ту строку в каждый файл?
Хех .... Я чувствую себя глупо, отвечая на собственные вопросы, но я понял этот вопрос почти сразу после того, как опубликовал его:
Вставьте код snippet
namespace boost { template<class T> class shared_ptr { T *dummy; }; }
в заголовочном файле, называемом что-то вроде «doxygen_dummy.h», и убедитесь, что он включен в рабочее пространство или каталог вашего проекта. Вам не нужно на самом деле # включать его куда-либо (на самом деле, вы этого не хотите, чтобы не нарушать правило одного определения). Вам просто нужно, чтобы Doxygen мог видеть его при сканировании всех ваших файлов.