GNOME Bugzilla – Bug 173043
Doxygen doesn't understand D template syntax
Last modified: 2018-07-30 10:27:41 UTC
Version details: 1.4.2 Distribution/Version: 98SE D has a very different template syntax from C++. It takes the form template Name(ParameterList) { ... } To instantiate a template, one uses the syntax Name!(ArgumentList) Doxygen doesn't understand this feature of D at present. Consequently template contents are not documented, and attempts to declare or use a template come out a bit of a mess. Moreover, templates in D are not classes or functions. Rather, they are scoping units that define any number of classes, functions or other entities within them. Hence Doxygen needs to treat the template as an entity in its own right. Steps to reproduce: 1. Save the following lines as a D file: template Qwert(Yuiop) { class Asdfg { Yuiop hjkl; } } Qwert!(int).Asdfg zxcvb; 2. Run Doxygen. Actual results: HTML output looks like this (underscores denote links): Functions template _Qwert_ (Yuiop) _Qwert_ (int).Asdfg zxcvb ---- Function Documentation Qwert( int ) template Qwert( Yuiop ) Expected results: The template Qwert should be listed under a heading 'Templates', linking to a page documenting the template's contents. This page would be similar to a file/namespace/package page, with the 'Detailed Description' being the content of any documentation comment applied to the template. Similarly, the template instantiation syntax needs to be parsed appropriately.
As discussed in https://github.com/doxygen/doxygen/pull/734 , Doxygen has moved its issue tracking to https://github.com/doxygen/doxygen/issues All Doxygen tickets in GNOME Bugzilla have been migrated to Github. You can subscribe and participate in the new ticket in Github. You can find the corresponding Github ticket by searching for its Bugzilla ID (number) in Github. Hence I am closing this GNOME Bugzilla ticket. Please use the corresponding ticket in Github instead. Thanks a lot!