C++ Doxygen未记录的字符串值

C++ Doxygen未记录的字符串值,c++,doxygen,C++,Doxygen,Doxygen(1.8.10)抱怨没有记录字符串的值。这里有一个简单的例子来说明这个问题 #include <string> struct MyStruct ///< Docs for struct { std::string a; ///< Docs for a std::string b; ///< Docs for b }; class MyClass ///< Docs for class { static struct M

Doxygen(1.8.10)抱怨没有记录字符串的值。这里有一个简单的例子来说明这个问题

#include <string>

struct MyStruct ///< Docs for struct
{
    std::string a; ///< Docs for a
    std::string b; ///< Docs for b
};

class MyClass ///< Docs for class
{
    static struct MyStruct instance; ///< Docs for instance
};

struct MyStruct MyClass::instance = {"firstVal", "secondVal"};

如果我将结构简化为单个成员并从初始值设定项中删除“secondVal”,则警告将消失,但显然这不是解决方案…

尝试将doxyfile中的
EXTRACT\u ALL
标记设置为
YES
,然后警告将消失

还要注意
EXTRACT_ALL
设置的注释:

# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
# documentation are documented, even if no documentation was available. Private
# class members and static file members will be hidden unless the
# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
# Note: This will also disable the warnings about undocumented members that are
# normally produced when WARNINGS is set to YES.
# The default value is: NO.
顺便说一句,还有一个提示:


不要使用
//只需删除额外的
结构即可。例如:

#include <string>

struct MyStruct ///< Docs for struct
{
    std::string a; ///< Docs for a
    std::string b; ///< Docs for b
};

class MyClass ///< Docs for class
{
    static struct MyStruct instance; ///< Docs for instance
};

MyStruct MyClass::instance = {"firstVal", "secondVal"};
#包括
struct MyStruct//

C++不要求您使用
struct MyStruct
,而是允许您只使用普通的
MyStruct
。对doxygen 1.8.13进行这一微小的更改会使警告消失。

它与通用初始化一起工作吗?我想那应该是
struct MyStruct MyClass::instance{{{“firstVal”,“secondVal”}这几乎奏效了,并使我找到了一个可行的解决方案(假设C++11/GCC4.4或更高版本,我希望有一个更可移植的解决方案)<代码>结构MyStruct MyClass::实例{{“firstVal”},{“secondVal”}(每个字符串文字都在它自己的花括号中)。编译器实际上会用这个玩具示例接受@AndrewLazarus的示例,但它似乎调用了错误的构造函数!编译器警告在这里是您的朋友,因为它触发了第二个参数的
-Wmissing字段初始值设定项(部分
-Wextra
)。从技术上讲,这确实会使警告消失,但它会在实际生成的文档中为
firstVal
生成一个虚假条目,这显然更糟糕。(另外,我的非玩具代码到处都使用
/***/
风格的注释,我只是将其全部填充在一行中以获得更可读的示例代码)@Alec抱歉,我没有识别“attribute”条目,我只是查看了
MyStruct
的文档,看起来不错。关于我的建议:我只是想对你说好话,因为你发送的示例代码在文档中产生了一些不需要的字符。好吧,现在你已经走了,让我觉得自己没有尝试这一点很愚蠢:)
/**
 * Docs for struct
 */
struct MyStruct 
{
    std::string a; ///< Docs for a
    std::string b; ///< Docs for b
};

/** 
 * Docs for class
 */
class MyClass 
{
    static struct MyStruct instance; ///< Docs for instance
};
struct MyStruct 
{
    std::string a; ///< Docs for a
    std::string b; ///< Docs for b
}; ///< Docs for struct

class MyClass 
{
    static struct MyStruct instance; ///< Docs for instance
}; ///< Docs for class
#include <string>

struct MyStruct ///< Docs for struct
{
    std::string a; ///< Docs for a
    std::string b; ///< Docs for b
};

class MyClass ///< Docs for class
{
    static struct MyStruct instance; ///< Docs for instance
};

MyStruct MyClass::instance = {"firstVal", "secondVal"};