Как задокументировать функциональность внедрения друзей с помощью doxygen?

Учитывая некоторый код, как в следующем примере:

class MyClass;

class Injector {
    /**
     * @brief MyClass addition.
     */
    friend MyClass operator+(MyClass a, MyClass b) { ... }
};

class MyClass: private Injector {};

Как я могу заставить doxygen включить документацию operator+() на страницу документации класса MyClass? Функционально он явно там. Есть ли какой-то общий способ сделать функциональность документа doxygen доступной через ADL?

Полезный пример из реального мира: я бы хотел, чтобы doxygen включал операторы, предоставляемые базовыми классами в boost/operators.hpp.


person Tom De Caluwé    schedule 16.06.2014    source источник


Ответы (1)


Тег /relates был разработан для чего-то близкого к этому.

class MyClass;

class Injector {
    /**
     * @brief MyClass addition.
     * @relates MyClass
     */
    friend MyClass operator+(MyClass a, MyClass b) { ... }
};

class MyClass {};

Это не поместит документацию на ту же страницу, но создаст раздел «связанные функции» на той же странице, который ссылается на функцию.

http://www.doxygen.nl/manual/commands.html#cmdrelates

person Drew Dormann    schedule 16.06.2014
comment
Это кажется простым подходом, однако он не работает в случае boost/operators.hpp. Как включить документацию, если класс инжектора является частью внешней кодовой базы? - person Tom De Caluwé; 17.06.2014
comment
Кроме того, это не работает с предоставленным примером. Doxygen продолжает размещать документы с Injector (в соответствующем разделе). - person Tom De Caluwé; 17.06.2014