Re: Bug in copydoc for constructor and class documentation

Albert <[email protected]> Thu, 5 Sep 2019 17:05:05 +0200
Newsgroups gmane.text.doxygen.devel
Message-ID <CABOOx7Za_VgSr6Y9xBD_LTjfmZbQH-mLQ5PMaqsKm3h+n+nKxA@mail.gmail.com>
--===============3799066331993545527==
Content-Type: multipart/alternative; boundary="00000000000021775d0591cfa7f8"

--00000000000021775d0591cfa7f8
Content-Type: text/plain; charset="UTF-8"

- Which version of doxygen are you using? When not the latest version
(1.8.16) can you please try this version?
- When persistent: Can you open an issue at:
https://github.com/doxygen/doxygen/issues/new with attached a, small, self
contained example (source+configuration file in a tar or zip) that allows
us to reproduce the problem?  Please don't add external links as they might
not be persistent, otherwise please attach the used Doxyfile here.

On Thu, Sep 5, 2019 at 4:59 PM Max Sagebaum <[email protected]>
wrote:

> Hello @ all,
>
> I think I found a bug in the Doxygen name resolving scheme together with
> class documentation and constructor documentation.
>
> I want to copy the documentation of a base class to the inheriting class.
> The problem is that the default name resolution copies the documentation of
> the constructor (Case1) and not the class itself. If I try to specify the
> full name of the class, then in case 3 it still defaults to the constructor
> documentation. In case 2 it can not find the documentation (In my real
> world case that worked actually for me, but case 3 is still wrong in the
> real world case.)
>
> Is this a bug or have I done something wrong.
>
> Best regards
>
> Max
>
> #include <type_traits>
>
> namespace test {
>
> /** ABase Class */
> template<typename T>
> struct ABase {
>   /** ABase Const */
>   ABase() {}
> };
>
> /** BBase Class */
> template<typename T>
> struct BBase : public ABase<T> {
>   /** BBase Const */
>   BBase() {}
> };
>
> /* Case1: \copydoc ABase */
> /** Case2: \copydoc ::test::ABase */
> template<typename T, typename = void>
> struct A : public ABase<T> {
>   /** A Const */
>   A() {}
> };
>
> /** Case3: \copydoc ::test::ABase */
> template<typename T>
> struct A<T, typename std::enable_if<std::is_same<T,double>::value>::type>
> : public BBase<T> {
>   /** A Const */
>   A() {}
> };
>
> }
>
> --
>
> Dr. Max Sagebaum
>
> Chair for Scientific Computing,
> TU Kaiserslautern,
> Bldg/Geb 34, Paul-Ehrlich-Strasse,
> 67663 Kaiserslautern, Germany
>
> Phone: +49 (0)631 205 5638
> Fax:   +49 (0)631 205 3056
> Email: [email protected]
> URL:   www.scicomp.uni-kl.de
>
>
>
>
>
>
> _______________________________________________
> Doxygen-develop mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/doxygen-develop
>

--00000000000021775d0591cfa7f8
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>- Which version of doxygen are you using? When not th=
e latest version (1.8.16) can you please try this version?</div><div>- When=
 persistent: Can you open an issue at: <a href=3D"https://github.com/doxyge=
n/doxygen/issues/new">https://github.com/doxygen/doxygen/issues/new</a> wit=
h attached a, small, self contained example (source+configuration file in a=
 tar or zip) that allows us to reproduce the problem?=C2=A0 Please don&#39;=
t add external links as they might not be persistent, otherwise please atta=
ch the used Doxyfile here.<br></div></div><br><div class=3D"gmail_quote"><d=
iv dir=3D"ltr" class=3D"gmail_attr">On Thu, Sep 5, 2019 at 4:59 PM Max Sage=
baum &lt;<a href=3D"mailto:[email protected]">max.sagebaum@sci=
comp.uni-kl.de</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" st=
yle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padd=
ing-left:1ex">



<div style=3D"text-align:left;direction:ltr">
<div>Hello @ all,</div>
<div><br>
</div>
<div>I think I found a bug in the Doxygen name resolving scheme together wi=
th class documentation and constructor documentation.</div>
<div><br>
</div>
<div>I want to copy the documentation of a base class to the inheriting cla=
ss. The problem is that the default name resolution copies the documentatio=
n of the constructor (Case1) and not the class itself. If I try to specify =
the full name of the class, then
 in case 3 it still defaults to the constructor documentation. In case 2 it=
 can not find the documentation (In my real world case that worked actually=
 for me, but case 3 is still wrong in the real world case.)</div>
<div><br>
</div>
<div>Is this a bug or have I done something wrong.</div>
<div><br>
</div>
<div>Best regards</div>
<div><br>
</div>
<div>Max</div>
<div><br>
</div>
<blockquote type=3D"cite" style=3D"margin:0px 0px 0px 0.8ex;border-left:2px=
 solid rgb(114,159,207);padding-left:1ex">
<div>#include &lt;type_traits&gt;</div>
<div><br>
</div>
<div>namespace test {</div>
<div><br>
</div>
<div>/** ABase Class */</div>
<div>template&lt;typename T&gt;</div>
<div>struct ABase {</div>
<div>=C2=A0 /** ABase Const */</div>
<div>=C2=A0 ABase() {}</div>
<div>};</div>
<div><br>
</div>
<div>/** BBase Class */</div>
<div>template&lt;typename T&gt;</div>
<div>struct BBase : public ABase&lt;T&gt; {</div>
<div>=C2=A0 /** BBase Const */</div>
<div>=C2=A0 BBase() {}</div>
<div>};</div>
<div><br>
</div>
<div>/* Case1: \copydoc ABase */</div>
<div>/** Case2: \copydoc ::test::ABase */</div>
<div>template&lt;typename T, typename =3D void&gt;</div>
<div>struct A : public ABase&lt;T&gt; {</div>
<div>=C2=A0 /** A Const */</div>
<div>=C2=A0 A() {}</div>
<div>};</div>
<div><br>
</div>
<div>/** Case3: \copydoc ::test::ABase */</div>
<div>template&lt;typename T&gt;</div>
<div>struct A&lt;T, typename std::enable_if&lt;std::is_same&lt;T,double&gt;=
::value&gt;::type&gt; : public BBase&lt;T&gt; {</div>
<div>=C2=A0 /** A Const */</div>
<div>=C2=A0 A() {}</div>
<div>};</div>
<div><br>
</div>
<div>}</div>
<div><br>
</div>
</blockquote>
<div><span>
<pre>-- <br></pre>
<div style=3D"width:71ch">Dr. Max Sagebaum</div>
<div style=3D"width:71ch"><br>
</div>
<div style=3D"width:71ch">Chair for Scientific Computing,</div>
<div style=3D"width:71ch">TU Kaiserslautern,</div>
<div style=3D"width:71ch">Bldg/Geb 34, Paul-Ehrlich-Strasse,</div>
<div style=3D"width:71ch">67663 Kaiserslautern, Germany</div>
<div style=3D"width:71ch"><br>
</div>
<div style=3D"width:71ch">Phone: +49 (0)631 205 5638</div>
<div style=3D"width:71ch">Fax:=C2=A0=C2=A0=C2=A0+49 (0)631 205 3056</div>
<div style=3D"width:71ch">Email: <a href=3D"mailto:[email protected]=
-kl.de" target=3D"_blank">
[email protected]</a></div>
<div style=3D"width:71ch">URL:=C2=A0=C2=A0=C2=A0<a href=3D"http://www.scico=
mp.uni-kl.de" target=3D"_blank">www.scicomp.uni-kl.de</a></div>
<div style=3D"width:71ch"><br>
</div>
<div style=3D"width:71ch"><br>
</div>
<div style=3D"width:71ch"><br>
</div>
<div style=3D"width:71ch"><br>
</div>
<div style=3D"width:71ch"><br>
</div>
<div style=3D"width:71ch"><br>
</div>
</span></div>
</div>

_______________________________________________<br>
Doxygen-develop mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">=
[email protected]</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/doxygen-develop" re=
l=3D"noreferrer" target=3D"_blank">https://lists.sourceforge.net/lists/list=
info/doxygen-develop</a><br>
</blockquote></div>

--00000000000021775d0591cfa7f8--


--===============3799066331993545527==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============3799066331993545527==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Doxygen-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/doxygen-develop

--===============3799066331993545527==--