Рассмотрим следующий пример.
/// \addtogroup api Foo Group
/// @{
/**
* This class is well-documented.
*/
struct ThreadContext {
/// Storage for the ThreadInvocation object that contains the function and
/// arguments for a new thread.
struct alignas(CACHE_LINE_SIZE) {
/// This data is glorious.
char data[CACHE_LINE_SIZE];
} threadInvocation;
};
/// @}
Когда я бегу doxygen
на этом я получаю следующее предупреждение.
Doxygen/Main.h:13: warning: Member threadInvocation (variable) of class ThreadContext is not documented.
Комментарий, который начинается с Storage for the ...
должен относиться к threadInvocation
объект, но Doxygen считает, что это относится к анонимному struct
вместо.
Как я могу сказать doxygen, что хочу, чтобы документация ссылалась на threadInvocation
член?
После копания в документирование Более того, я обнаружил, что doxygen фактически позволяет документировать большую часть кода практически где угодно. Для того, чтобы документировать threadInvocation
и избегать предупреждения о не документировании анонимного struct
Я должен был написать свой код, как это.
/// \addtogroup api Foo Group
/// @{
/**
* This class is well-documented.
*/
struct ThreadContext {
/// \var threadInvocation
/// Storage for the ThreadInvocation object that contains the function and
/// arguments for a new thread.
/// \cond SuppressDoxygen
struct alignas(CACHE_LINE_SIZE) {
/// This data is glorious.
char data[CACHE_LINE_SIZE];
}
/// \endcond
threadInvocation;
};
/// @}
Других решений пока нет …