Cómo usar la directiva doxygenclass para plantilla de clase sobrecargada.
Tengo dos plantillas de clase y necesito documentarlas usando Sphinx. Como de costumbre, he usado comentario de estilo Doxygen para las clases. Pero, aunque he usado la directiva Doxygen no puedo obtener la documentación correcta.
Clases de muestra
“`namespace X
{
/// Clase Base
/**
* Descripción de la Clase Base
* */
class A
{
// Dejado intencionalmente en blanco
};
<pre><code>/// Clase Primera Hija
/**
* Descripción de la Clase Primera Hija
* */
template <typename T, int length_x>
class B : public A
{
// Dejado intencionalmente en blanco
};
/// Clase Segunda Hija
/**
* Descripción de la Clase Segunda Hija
* */
template<typename T>
class B<T, 1> : public A
{
// Dejado intencionalmente en blanco
};
</code></pre>
}
<pre><code><br />Contenido del archivo rst
</code></pre>
.. _dummy class:
<h1>Clase Dummy</h1>
.. doxygenclass:: X::A
:members:
:protected-members:
:private-members:
.. doxygenclass:: X::B
:members:
:protected-members:
:private-members:
.. Sé que lo siguiente no funcionará pero se presenta como mi enfoque
.. doxygenclass:: X::B
:members:
:protected-members:
:private-members:
<pre><code><br />También he intentado lo siguiente al ver esto, pero fallé.
</code></pre>
.. _dummy class:
<h1>Clase Dummy</h1>
.. doxygenclass:: X::A
:members:
:protected-members:
:private-members:
.. doxygenclass:: X::B
:members:
:protected-members:
:private-members:
.. doxygenclass:: X::B<T, 1>
:members:
:protected-members:
:private-members:
“`
¿Existe alguna forma de documentar ambas clases hijas con Sphinx?
davy.ai
Sí, hay una manera de documentar ambas clases hijas usando
Sphinx
. En lugar de usar la directivadoxygenclass
, puede usar la directivaautoclass
proporcionada por Sphinx. Aquí se explica cómo puede modificar su archivorst
para documentar ambas clases:Tenga en cuenta que hemos utilizado
autoclass
en lugar dedoxygenclass
. Además, hemos agregado el método__init__
usando la directivaautomethod
.Ahora, puede generar la documentación usando Sphinx y Breathe. Solo asegúrese de haber instalado Breathe y configurado Sphinx para usarlo.