gpt4 book ai didi

c++ - 为什么将枚举标记为导出/导入会中断 Doxygen 生成?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:31 24 4
gpt4 key购买 nike

使用 Doxygen,我偶然发现了这个警告:

D:/<some/path>/Camera.h:20: warning: documented symbol `enum DLLPORT 
ct::CameraCapture::ct::CameraCapture::CamType' was not declared or defined.

现在我知道为什么 Doxygen 找不到那个类(命名空间显然是重复的),但我不明白的是它为什么还要搜索它。这个枚举在头文件中,在类定义的正上方,并且发现类很好,它也没有生成那些双命名空间。源代码也可以编译,所以它可能不是导致 Doxygen 这些问题的语法错误。具体来说,源代码如下所示:

#ifdef CT_EXPORTS
#define DLLPORT __declspec(dllexport)
#else
#define DLLPORT __declspec(dllimport)
#endif

#include <somelibrary>

namespace ct {
namespace CameraCapture {

/**The type of camera used:
*[...]
**/
enum DLLPORT CamType {
CT_ENUM1=0,
CT_ENUM2,
CT_ENUM3,
CT_NONE
};

/**\brief A parent-class to cameras of all types.
*[...]
**/
class DLLPORT Camera
{
//...some content...
};
}
}

其他 enum block 也会出现同样的问题。希望你们中的一些人知道那里发生了什么。

干杯

最佳答案

您不需要 dllexport 或 dllimport 枚举。它们只是一种类型的声明,而不是代码的声明。只需使用 enum CamType。类(集体或成员)将需要它,单个自由函数也需要它,但简单的枚举不需要。

关于c++ - 为什么将枚举标记为导出/导入会中断 Doxygen 生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com