Doxygen类头文件是否有一种非讨厌的方法?

时间:2016-12-26 17:02:52

标签: c++ doxygen

让我们说我试图使用Doxygen记录下面的类标题。请注意,这个类纯粹是抽象的,因此我没有相应的源文件。

#ifndef QMFBANK_H
#define QMFBANK_H

#include <memory>

class QMFBank
{
    public:

        QMFBank();
        virtual void setInputReference(std::shared_ptr<double>) = 0;
        virtual std::shared_ptr<double> getLowBandReference() = 0;
        virtual std::shared_ptr<double> getHighBandReference() = 0;
        virtual void clearFilter() = 0;
        virtual void update() = 0;
};

#endif // QMFBANK_H

使用Doxygen,我将以下注释放入头文件中。

#ifndef QMFBANK_H
#define QMFBANK_H

#include <memory>

class QMFBank
{
    public:
        /**
         * @brief Creates a quadrature mirror filter bank
         * @param p_in A reference to an input source
         */
        QMFBank();

        /**
         * @brief Sets the reference to the QMF banks input source
         * @param p_in A reference to an input source
         */
        virtual void setInputReference(std::shared_ptr<double>) = 0;

        /**
         * @brief Retrieves a reference to the lowpassband output
         * @return Returns a shared pointer to the lowpassband output
         */
        virtual std::shared_ptr<double> getLowBandReference() = 0;

        /**
         * @brief Retrieves a reference to the highpassband output
         * @return Returns a shared pointer to the highpassband output
         */
        virtual std::shared_ptr<double> getHighBandReference() = 0;

        /**
         * @brief Clears (zeros) the filter bank history
         */
        virtual void clearFilter() = 0;

        /**
         * @brief Updates the filter bank.
         * When this method is called, the filter bank will retrieve a new input and update its outputs
         */
        virtual void update() = 0;
};

#endif // QMFBANK_H

然而,我认为这看起来很难看。是的,Doxygen HTML中的文档非常易读,但在尝试快速引用某些内容时,它似乎更难阅读。

所以我的问题:在这种情况下,有没有更好的方法来编写Doxygen评论?或者这是非常正常的我应该只是处理它&#39;?

1 个答案:

答案 0 :(得分:1)

你可以使用像///这样的评论来删除两个最丑陋的行/ /和* /,你也可以删除那个@brief。没有它,它看起来或多或少像OK头文件。

/**
 * @ORM\Table(name="divisions")
 * @ORM\InheritanceType("SINGLE_TABLE")
 * @ORM\Entity()
 * @ORM\DiscriminatorColumn(name="city", type="integer")
 * @ORM\DiscriminatorMap({
 *     0 = "Division",
 *     1 = "Division",
 *     1 = "City"
 * })
 */
abstract class AbstractDivision