如果未注释C ++方法,则强制Doxygen弹出警告

问题描述

我正在尝试针对缺少C ++项目的文档发出doxygen pop警告。 我试图放入Doxyfile

WARNINGS               = YES
EXTRACT_ALL = YES
EXTRACT_ANON_NSPACES   = YES

我也尝试过:

WARNINGS               = YES
EXTRACT_ALL = NO
EXTRACT_ANON_NSPACES   = YES
WARN_IF_UNDOCUMENTED   = YES
# (WARN_IF_UNDOCUMENTED is ignored if EXTRACT_ALL is enabled)

但是什么也没发生。

我不明白的是,如果我在printArgs方法添加了不完整的Doxygen注释,则会收到警告,提示未记录某些参数,但是如果我不放置doxygen标签,我没有警告。

哪个Doxyfile字段可以启用此功能?这是一个最小的示例,我想在Jenkins服务器中使用此警告功能来检查是否已记录所有方法和字段。

我要测试的代码非常简单:

main.cpp

#include <iostream>
#include "test.h"

using namespace std;

int main(int argc,char **argv) 
{
    cout << "Hello World !" << endl;
    printArgs(argc,argv);

    return 0;
}

test.cpp

#include "test.h"
#include <iostream>

using namespace std;

void printArgs(int argc,char **argv)
{
    for (int i = 0; i < argc; i++)
    {
        cout << "Arg #" << argc << " : " << argv[i] << endl;
    }
}

test.h 不生成警告

#pragma once

void printArgs(int argc,char **argv);

test.h 生成警告(缺少“ argv”的标签

#pragma once
/**
 * @brief 
 * 
 * @param argc 
 */
void printArgs(int argc,char **argv);

编辑:

我找到了可以部分解决我的问题的解决方案:

来自Doxygen's \file command documentation

全局函数,变量,typedef和枚举的文档 如果它们所在的文件是,则仅包含在输出中 以及是否将EXTRACT_ALL设置为YES。

Doxyfile的WARN_IF_UNDOCUMENTED注释中:

如果EXTRACT_ALL设置为YES,则此标志将自动被禁用。

所以我想要将EXTRACT_ALLWARN_IF_UNDOCUMENTED都设置为true ,这是不可能的

我不明白为什么不可能做到这一点,如果有人提出解释,我将不胜感激。对我来说,唯一的解决方法是将/** \file */放在test.h的顶部。

这不能完全解决我的问题,因为我想使用此“功能”跟踪丢失的注释,并且丢失的注释也可能是/** \file */,如果是这种情况,我就被搞砸了...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)