2 votes

Brève description Doxygen à partir de l'expansion de la macro

Considérons la macro de déclaration C++ suivante :

#define DECLARE_OBJECT_HANDLE(x) \
typedef struct x##HandleTag *x##Handle; \
typedef struct x##Handle *P##x##Handle

Je veux marquer ma deuxième déclaration de pointeur avec des commentaires doxygen. Idéalement, je voudrais que le deuxième handle fasse référence au premier avec une brève description indiquant qu'il s'agit d'un pointeur vers ce type.

J'ai changé ma macro :

#define DECLARE_OBJECT_HANDLE(x) \
typedef struct x##HandleTag *x##Handle; \
/**
* \brief Pointer to x##Handle.
*/ \
typedef struct x##Handle *P##x##Handle

J'ai été vraiment surpris, quand j'ai découvert qu'il fonctionne en quelque sorte ! Malheureusement, il y a une section supplémentaire pour chaque type de caractères avec un caractère bizarre :

enter image description here

Je n'aime vraiment pas la partie inférieure, car je n'ai rien de plus à dire à ce sujet. Est-ce un bug de doxygen, qui produit une section supplémentaire alors que je n'ai demandé qu'une brève description ?

Y a-t-il un moyen de l'empêcher ? ?

PS : J'utilise la version 1.8.12 de doxygen sur Window 8.1 64-bit.

1voto

Gotcha Points 146

Comme indiqué dans les commentaires, le personnage bizarre auquel je faisais référence est un point d'une liste non ordonnée .

J'ai posé cette question sur la liste de développement doxygen, mais personne n'a répondu.

La solution :

omettre le * devant le \brief doxycommand

PS : Le code original fonctionne partout en dehors de l'expansion des macros.

0voto

albert Points 2486

Il sera un peu difficile pour doxygen d'obtenir le bon flux en cas de mélange de définitions, commentaires et typedefs. Peut-être que ce qui suit donne quelques conseils / idées (car ce que vous essayez d'obtenir n'est pas clair à 100%) :

/**  Handle */
#define HT(x) \
typedef struct x##HandleTag *x##Handle

/** Pointer to #HT(x) */
#define PHT(x) \
typedef struct x##Handle *P##x##Handle

/** Doing both */
#define DECLARE_OBJECT_HANDLE(x) \
HT(x); \
PHT(x)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X