Doxygen 将全局变量声明视为 C++ 中的函数

2024-03-16

当我运行 Doxygen (1.8.15) 时,我在日志文件中收到警告,指出并未记录函数的所有参数:

warning: parameters of member gSwInstallIoMgr are not (all) documented
warning: return type of member gSwInstallIoMgr is not documented

所讨论的“函数”不是函数,而是变量声明:

//! This defines the handler for processing changes to the SW installation.
SwInstallIoMgr gSwInstallIoMgr(gsIoMgrDictionary.mMainPcba.mSwInstall);

我尝试添加 @var 命令来指定它是一个变量:

//! @var SwInstallIoMgr gSwInstallIoMgr
//! This defines the handler for processing changes to the SW installation.
SwInstallIoMgr gSwInstallIoMgr(gsIoMgrDictionary.mMainPcba.mSwInstall);

但随后我收到一条警告,指出该函数没有记录。

有人知道解决这个问题的方法吗?

编辑:添加更多上下文

//! @brief Software Installation interface class definition.

class SwInstallIoMgr : public Observer
{
public:
   //! @brief Constructor.
   //! @param[in] rIoParams This provides items used for user communication.
   SwInstallIoMgr(SwInstallIoMgrParams & rIoParams);

   //! @brief Destructor.
   virtual ~SwInstallIoMgr();
}

gsIoMgrDictionary是包含共享数据的全局对象。

IoManagerParams gsIoMgrDictionaryInstance; //!< Dictionary instance for ioMgr
IoManagerParams& gsIoMgrDictionary = gsIoMgrDictionaryInstance; //!< reference to dictionary

IoManagerParams是一种美化的数据结构。

可重现的示例: BoxBase.h

#ifndef BOX_BASE_H
#define BOX_BASE_H

//! @brief BoxBase is a base for the Box
class BoxBase
{
public:

   //! Set of notification policy bits for a Box instance.
   enum NotifyFlags
   {
      //! Notify observers when Box::Attach() method is called.
      NOTIFY_ON_ATTACH = 0x01,

      //! Notify observers when Box::Set() method is called.
      NOTIFY_ON_SET = 0x02,

      //! Notify observers when Box::Set() method is called and the
      //! Box value has changed, or more precisely when C::operator!=
      //! returns true.
      NOTIFY_ON_CHANGE = 0x04
   };

}

Box.h

#ifndef BOX_H
#define BOX_H

//! @brief A Box
template <class C> class Box: public BoxBase
{
   //! @brief Box constructor with an initial value and notification
   //! policy.
   //!
   //! A copy of the initial value object object is managed by the
   //! box.
   //!
   //! @param[in] c Initial value of the box.
   //! @param[in] notifyFlags Box<>::NotifyFlags type or'd together.
   explicit Box(const C& c,
                int notifyFlags = (NOTIFY_ON_CHANGE | NOTIFY_ON_ATTACH));

private:
   // The box value.
   C mVal;

   // The box value when constructed.
   C mInitialValue;

   // An or composition of NotifyFlags maintaining the Box
   // notification policy. Defined mutable since it does not
   // participate in the equality operator.
   mutable int mNotifyFlags;

   // Marker that the Box contents have been changed via Set() after the
   // previous Get(). If yes this flag is set to true, otherwise false.
   // Defined mutable since it does not participate in the equality
   // operator.
   mutable bool mHasChanged;
};

template <class C>
Box<C>::Box(const C& ival, int notifyFlags):
   BoxBase(), mVal(ival), mInitialValue(ival),
   mNotifyFlags(notifyFlags), mHasChanged(false)
{}

#endif

测试文件.h

//****************************************************************************
//! @file
//! @brief A Box group stuff.
//!
//! Copyright (C) 2016 MyCompany, Inc. All rights reserved.
//****************************************************************************
#include "Box.h"

namespace Dictionary
{
   namespace OtherSettingsGroup
   {
      //! Informing GUI of current reminder period.
      extern Box<int> toGUIReminder;

      //! GUI informing GUI of new reminder period.
      extern Box<int> toApplicationReminder;

      //! Tells Application to update the values in the OtherSettings group.
      extern Box<bool> toApplicationUpdateOtherSettings;
   }
}

测试文件.cpp

//****************************************************************************
//! @file
//! @brief A Box group for stuff.
//!
//! Copyright (C) 2016 MyCompany, Inc. All rights reserved.
//****************************************************************************

#include "TestFile.h"

namespace Dictionary
{
   namespace OtherSettingsGroup
   {
      Box<int> toGUIReminder(int(0), BoxBase::NOTIFY_ON_SET);

      Box<int> toApplicationReminder(int(0), BoxBase::NOTIFY_ON_SET);

      Box<bool> toApplicationUpdateOtherSettings(bool(false), 
                                                 BoxBase::NOTIFY_ON_SET);
   }
}

此示例产生两个警告:

TestFile.cpp:14: warning: Member toGUIReminder(int(0), BoxBase::NOTIFY_ON_SET) (function) of namespace Dictionary::OtherSettingsGroup is not documented.
TestFile.cpp:16: warning: Member toApplicationReminder(int(0), BoxBase::NOTIFY_ON_SET) (function) of namespace Dictionary::OtherSettingsGroup is not documented.

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Doxygen 将全局变量声明视为 C++ 中的函数 的相关文章

  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 在Linux中使用C/C++获取机器序列号和CPU ID

    在Linux系统中如何获取机器序列号和CPU ID 示例代码受到高度赞赏 Here http lxr linux no linux v2 6 39 arch x86 include asm processor h L173Linux 内核似
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 特金特;新班级中的顶级

    我正在使用 Python 和 Tkinter 开发一个项目 我想将其模块化 主要问题之一是我的实施Toplevel小部件太大 我听说可以将此小部件放入一个新类中 问题是我不知道怎么办 这是我定义主窗口的方式 class App tk Tk
  • 如何处理第三方库代码中的 exit() 调用?

    我正在开发一个 C 应用程序 该应用程序使用另一个团队用 C 编写的库 图书馆的作者喜欢打电话exit 当发生错误时 立即结束程序 而不调用 C 应用程序中堆栈上对象的析构函数 应用程序设置了一些系统资源 这些资源在进程结束后不会自动被操作
  • 发送 TCP 请求并获得响应

    我尝试使用 TCP 请求发送一些字符串 我的服务器 ID 和端口是正确的 我搜索 TCP 请求并找到了一些示例或教程 这是我的来源 public class TcpClient public static final String SERV
  • postgres复制命令,二进制文件

    我正在使用 COPY 将字段从表复制到文件 该字段是一个压缩文本文件 因此我使用二进制副本 文件已创建 唯一的问题是 COPY 向文件添加了标头和尾部 这是我不需要的 这可以改变吗 是否有一个参数可以使 COPY 将字段与数据库中的字段完全
  • 如何在 Angular CLI 中更新 Angular 2

    如何更新 Angular 2 版本 我使用 Angular CLI 1 0 0 beta 20 4 并尝试了 npm update save 但它没有执行任何操作 下面是我目前的 package json 文件 感谢对此的任何帮助 name
  • 如何在黑莓手机中制作状态栏?

    我想在屏幕底部设置状态栏 它应该在左侧和右侧显示一个按钮 你可以在下面看到我的屏幕 我的代码是这样的 private void BottomLayout Bitmap topBg Bitmap getBitmapResource Image
  • 使用 iOS 版 OAuthConsumer 将图像上传到 tumblr

    我正在使用OAuth消费者 http code google com p oauthconsumer 在我的 iOS 应用程序中 它使用汤不热API http www tumblr com docs en api v2 posting 一般
  • paypal沙箱商户账户错误

    我有一个网站 我正在尝试使用 php 脚本将 paypal 连接到该网站 php 构建查询字符串然后提交到https www paypal com cgi bin webscr https www paypal com cgi bin we
  • Maui -- 如何使背景颜色透明?

    我正在尝试编写一个程序 该程序将用作另一个程序之上的覆盖 我希望文本 按钮和边框是实心的 背景是透明的
  • 如何向 Traefik 添加唯一的请求 ID 标头

    在Traefik中 是否可以为请求添加唯一的Request ID标头 我希望能够将访问日志与后端服务的日志关联起来 AFAIK 不支持它 但是 Traefik 2 3 6 中有一个功能解决方法 static config tracing W
  • 通过 FQL 识别来自 fb:comments 的垃圾邮件

    我正在运行 FQL 查询来获取网站上特定帖子的评论 有没有办法识别是否被标记为垃圾邮件 如果没有 我可以看到博客所有者删除了一些评论 以便它们在网站上不可见 是否有办法识别哪些内容已被博客所有者 隐藏 删除 Thanks 我正在使用 is
  • 如何使用 TypeScript 返回正确的 Promise

    所以我正在用 typescript 学习 Angular 2 我正在编写一个模拟服务 如果服务成功获取对象 它 我相信 应该返回一个 Promise 如果发生任何情况 则返回一个错误 我尝试过以下代码 但看起来它不是打字稿的编写语法 更新了
  • 指令中的 $watch 函数在 Angular JS 中没有被触发

    我是 Angular JS 的新手 一直在到处寻找为什么这不起作用的答案 我在这里有我的指令 directive carrouselPreview function return function scope element attrs s
  • 如何禁用表单身份验证

    我的网站中有一个文件夹 我使用基于表单的身份验证对其进行保护 我现在必须在该文件夹中开发两个新页面 并且我想在测试和调试新表单时关闭安全性 我已将网站 web config 文件中的身份验证模式更改为 mode None 并且已从安全文件夹
  • 嵌套溢出滚动隐藏的溢出不起作用

    我有一个 div 没有被剪切到父级的问题 即使它有overflow hidden 我已经浏览过overflow hiddenstackoverflow 上有问题 但大多数都有问题position或者似乎表明我的代码应该可以工作 这是一个MW
  • 读取 CSV Oracle 存储过程 UTL_FILE 时忽略引号之间的逗号

    示例数据 1 test xy yz dog cat 2 test2 xy fish bear 正如您在上面所看到的 第二列可能会也可能不会用引号引起来 并且作为字符串的一部分 我只是想找到一种方法来忽略引号内的逗号 如果有的话 我正在使用
  • 使用 Django 下载文件

    这可能是一个简单的问题 但我不知何故找不到解决方案 Django 提供了很多有关上传文件的信息 但是如何下载文件 假设我们有一个 HTML 按钮uploads something txt作为一个文件 我尝试过django views sta
  • MongoDB 项目放入数组中

    我有对象数组 嵌套 我想从这些嵌套对象中提取一些元素 并在数组中返回这些字段 下面是我的文档结构 从原始数据中模拟 detailLine name first value lineNumber 1 subLineCode detailLin
  • 为什么 IEnumerable 继承自 IEnumerable?

    这可能是一个老问题 为什么IEnumerable
  • Doxygen 将全局变量声明视为 C++ 中的函数

    当我运行 Doxygen 1 8 15 时 我在日志文件中收到警告 指出并未记录函数的所有参数 warning parameters of member gSwInstallIoMgr are not all documented warn