Thread: [Doxygen-develop] \interface tag - possible bug?
Brought to you by:
dimitri
From: James H. <jh...@ga...> - 2005-01-20 20:51:20
|
Hi, The \interface tag, which is documented in the Doxygen manual, appears not to be recognised by Doxygen 1.4.1: test_prog.cc: /// \interface Int class Int { virtual ~Int() {} virtual void Method() = 0; }; /// \class Imp class Imp : public Int { void Method() {} }; Running Doxygen 1.4.1 (on Linux) on test_prog.cc produces the warning test_prog.cc:1: Warning: Found unknown command `\interface' and Int and Imp are both documented as regular classes. Is this a bug? Regards, James. |
From: Christian B. <chr...@am...> - 2005-01-21 12:49:55
|
Allo James! Just to further amplified your email message. I ran the test case test_proc.cc with an older version (Doxygen 1.3.8 on = Windows) and observed the same the behaviour. I looks like the commands used in the test case are missing the a = description block. Is this intended? When using /interface and /class commands, you need to following with a = description block. Among others, you use these commands if you need to = locate the description the software entity in a different location (i.e. = not collocated in a separate file or different location within the same = file). If you try this test case (added description block): /// \interface Int/// This is an interface classclass Int{ virtual = ~Int() {} virtual void Method() =3D 0;};/// \class Imp/// This is the = implementation of the class interface.class Imp : public Int{ void = Method() {}};Then no warnings. Now, is it the expected behaviour. Should doxygen not generate a warning = if the description block is missing? Regards, Christian ----- Original Message -----=20 From: James Hobro=20 To: dox...@li...=20 Sent: Thursday, January 20, 2005 4:36 PM Subject: [Doxygen-develop] \interface tag - possible bug? Hi, The \interface tag, which is documented in the Doxygen manual, appears = not to be=20 recognised by Doxygen 1.4.1: test_prog.cc: /// \interface Int class Int { virtual ~Int() {} virtual void Method() =3D 0; }; /// \class Imp class Imp : public Int { void Method() {} }; Running Doxygen 1.4.1 (on Linux) on test_prog.cc produces the warning test_prog.cc:1: Warning: Found unknown command `\interface' and Int and Imp are both documented as regular classes. Is this a bug? Regards, James. ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive = Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ Doxygen-develop mailing list Dox...@li... https://lists.sourceforge.net/lists/listinfo/doxygen-develop |
From: Dimitri v. H. <do...@gm...> - 2005-01-21 12:55:58
|
On Fri, 21 Jan 2005 08:50:47 -0400, Christian Baribeau <chr...@am...> wrote: > Allo James! > > Just to further amplified your email message. > > I ran the test case test_proc.cc with an older version (Doxygen 1.3.8 on > Windows) and observed the same the behaviour. > > I looks like the commands used in the test case are missing the a > description block. > > Is this intended? > > When using /interface and /class commands, you need to following with a > description block. Among others, you use these commands if you need to > locate the description the software entity in a different location (i.e. not > collocated in a separate file or different location within the same file). > > If you try this test case (added description block):/// \interface Int > /// This is an interface class > class Int > { > virtual ~Int() {} > virtual void Method() = 0; > }; > /// \class Imp > /// This is the implementation of the class interface. > class Imp : public Int > { > void Method() {} > }; > > Then no warnings. > > Now, is it the expected behaviour. Should doxygen not generate a warning if > the description block is missing? I think (haven't checked) it is more the difference between a brief and a detailed description. Probably the \class command is allowed in a brief description and the \interface command is not. I'm working on a new scanner for comment blocks which should bring some more consistency to handling of brief and detailed descriptions w.r.t. the handling of commands. Regards, Dimitri |
From: James H. <jh...@ga...> - 2005-01-21 15:33:25
|
Thanks for the replies. When a description block is added the error disappears, but in the documentation Int still appears as a class, not an interface (i.e. it is listed in the class hierarchy and the heading for the documentation is 'Int Class Reference'). So the \interface tag seems to be acting like an alias for \class. I was hoping that interfaces labelled with the \interface tag would be listed separately from the classes, ideally with a separate 'Interface List' in the Doxygen menu. Perhaps this is outside the scope of the current code. Would I be right to guess that the intention is eventually to treat interfaces separately, but that listing them as classes is a measure to allow the tag to be used before it is fully implemented? Many thanks, James. Dimitri van Heesch wrote: >On Fri, 21 Jan 2005 08:50:47 -0400, Christian Baribeau ><chr...@am...> wrote: > > >>Allo James! >> >>Just to further amplified your email message. >> >>I ran the test case test_proc.cc with an older version (Doxygen 1.3.8 on >>Windows) and observed the same the behaviour. >> >>I looks like the commands used in the test case are missing the a >>description block. >> >>Is this intended? >> >>When using /interface and /class commands, you need to following with a >>description block. Among others, you use these commands if you need to >>locate the description the software entity in a different location (i.e. not >>collocated in a separate file or different location within the same file). >> >>If you try this test case (added description block):/// \interface Int >>/// This is an interface class >>class Int >>{ >> virtual ~Int() {} >> virtual void Method() = 0; >>}; >>/// \class Imp >>/// This is the implementation of the class interface. >>class Imp : public Int >>{ >> void Method() {} >>}; >> >>Then no warnings. >> >>Now, is it the expected behaviour. Should doxygen not generate a warning if >>the description block is missing? >> >> > >I think (haven't checked) it is more the difference between a brief >and a detailed description. Probably the \class command is allowed in >a brief description and the \interface command is not. I'm working on >a new scanner for comment blocks which should bring some more >consistency to handling of brief and detailed descriptions w.r.t. the >handling of commands. > >Regards, > Dimitri > > >------------------------------------------------------- >This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting >Tool for open source databases. Create drag-&-drop reports. Save time >by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. >Download a FREE copy at http://www.intelliview.com/go/osdn_nl >_______________________________________________ >Doxygen-develop mailing list >Dox...@li... >https://lists.sourceforge.net/lists/listinfo/doxygen-develop > > > |