es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera de documentar ambas clases hijas usando Sphinx. En lugar de usar la directiva doxygenclass, puede usar la directiva autoclass proporcionada por Sphinx. Aquí se explica cómo puede modificar su archivo rst para documentar ambas clases:

    .. _dummy class:
    
    Clase Dummy
    ===========
    
    .. autoclass:: X.A
       :members:
       :protected-members:
       :private-members:
    
    .. autoclass:: X.B
       :members:
       :protected-members:
       :private-members:
    
       .. automethod:: __init__
    
    .. autoclass:: X.B[T, 1]
       :members:
       :protected-members:
       :private-members:
    
       .. automethod:: __init__
    

    Tenga en cuenta que hemos utilizado autoclass en lugar de doxygenclass. Además, hemos agregado el método __init__ usando la directiva automethod.

    Ahora, puede generar la documentación usando Sphinx y Breathe. Solo asegúrese de haber instalado Breathe y configurado Sphinx para usarlo.

Comments are closed.