C++ 扩展clang-Wdocumentation标志以捕获丢失的氧标记(@param、@tparam、@return)

C++ 扩展clang-Wdocumentation标志以捕获丢失的氧标记(@param、@tparam、@return),c++,clang,c++17,doxygen,llvm-clang,C++,Clang,C++17,Doxygen,Llvm Clang,我目前正在研究如何使用llvm-clang提供的各种工具来实施我们公司的编码标准。其中一个标准是每个C++函数必须有精确的 doxGeun>代码>样式文档。 注意:我目前使用的是ClangV6.0.0,而不是v9 首先,我查看了clang-Wdocumentation标志,但根据我的研究,它缺少了我所需的一些功能: 尽管在相关功能中检查了氧气中的所有@params和@tparams的相应参数和模板参数,但未捕获缺少的@params或@tparams。在这种情况下,我想发出警告 如果doxygen

我目前正在研究如何使用
llvm-clang
提供的各种工具来实施我们公司的编码标准。其中一个标准是每个C++函数必须有精确的<代码> doxGeun>代码>样式文档。 注意:我目前使用的是ClangV6.0.0,而不是v9

首先,我查看了clang-Wdocumentation标志,但根据我的研究,它缺少了我所需的一些功能:

  • 尽管在相关功能中检查了氧气中的所有
    @param
    s和
    @tparam
    s的相应参数和模板参数,但未捕获缺少的
    @param
    s或
    @tparam
    s。在这种情况下,我想发出警告
  • 如果doxygen中
    @param
    s的顺序与函数中参数的顺序不匹配,我还想发出警告(对于
    @tparam
    s也是如此)
  • 接下来,我查看了
    clang-tidy
    clang-format
    和其他现有的clang工具,但找不到任何可定制的工具来满足我的用例

    最后,我考虑创建自己的独立的clang工具,但很快就被大量的文档淹没了(我对整个clang体验都是新手)。我尝试了很多不同的有希望的线索,但没有具体的结果

    是一个简单的C++函数,用DOXYGEN半注释:< /P>

    ///foo函数
    ///@param y第二个参数
    ///@param x第一个参数
    模板
    intfoo(intx,inty,intz){
    ...
    }
    
    如果对上述代码运行
    clang-Wdocumentation foo.cpp
    ,则不会生成错误。我希望生成以下错误:

  • 参数
    y
    x
    的顺序错误
  • 参数
    z
    缺少
    @param
  • 模板参数
    T
    缺少
    @tparam
  • 缺少
    @return

  • 有人知道是否可以定制任何现有工具以满足我的要求吗?如果不知道,有人对如何制作我自己的工具有什么建议吗?

    在给出的示例中,doxygen本身会给出警告(关于
    z
    ),您可以在
    WARN_LOGFILE
    文件中捕获警告并处理此文件。感谢@albert修复了错误2和错误4!查看doxygen配置设置,我仍然无法找到检查是否缺少
    @tparam
    或出现故障参数的方法。您知道是否有方法标记这些警告/错误吗?Regarding point 1)这与doxygen记录参数的顺序无关,这由用户决定(他可能有一个特殊的原因,需要按照调用以外的其他顺序记录参数)。关于第4点)我没有很快找到解决方案,可以在doxygen问题跟踪程序()中提交问题。关于第3点)我创建了一个问题:“tparam命令时的警告”()