So, after doing some digging, it seems like what controls whether or not the `<defname>` is included is this line:
https://github.com/doxygen/doxygen/blob/341f860ab7ae3e5255891b0984bec8b36e7557ef/src/doxygen.cpp#L4985 ...or more specifically, the `!root->doc.isEmpty()` bit, which sets the `forceNameOverwrite` arg for `mergeArguments`. Given that the `MemberDef` object already supports separate declaration args and definition args (via `declArgumentList` and `argumentList`, respectively), and that at this point it the code the `declArgumentList` is already set, it seems odd that setting of `argumentList` is controlled by whether or not the current root has a doc. Ideally, I would think we'd always put the declaration arguments in the `declArgumentList`, and the definition arguments in `argumentList` - ie, have `forceNameOverwrite` set to `!root->proto`. At the very least, if we are going to try to make some fancier logic / decisions at this point, we should take the `brief` into account as well, and not just the `doc`. For instance, it seems particularly odd to not even include the definition args if the definition has a brief (though no detail doc), and the declaration has no documentation whatsoever.
_______________________________________________ Doxygen-users mailing list Doxygen-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/doxygen-users