是否有一种无偶然的方法来吸收类标头文件

Is there a non-obnoxious way to Doxygen a class header file?

本文关键字:方法 文件 偶然 一种 是否      更新时间:2023-10-16

假设我正在尝试使用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评论?还是这很正常,我应该"处理"?

您可以使用///这样的注释来摆脱两条最丑陋的线条和/**和*/,也可以删除该@brief。没有那些,它看起来像OK标头文件更或不像。

#ifndef QMFBANK_H
#define QMFBANK_H
#include <memory>
/// Comment about class itself too
class QMFBank
{
public:
    /// Creates a quadrature mirror filter bank
    QMFBank();
    /// 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> p_in) = 0;
    /// Retrieves a reference to the lowpassband output
    /// @return shared pointer to the lowpassband output
    virtual std::shared_ptr<double> getLowBandReference() = 0;
    /// Retrieves a reference to the highpassband output
    /// @return shared pointer to the highpassband output
    virtual std::shared_ptr<double> getHighBandReference() = 0;
    /// Clears (zeros) the filter bank history
    virtual void clearFilter() = 0;
    /// 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