Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Doxygen中记录回调typedefs_C++_Doxygen_Typedef - Fatal编程技术网

C++ 在Doxygen中记录回调typedefs

C++ 在Doxygen中记录回调typedefs,c++,doxygen,typedef,C++,Doxygen,Typedef,我有以下类型的定义: typedef void( __cdecl *tCallback )( const char* Message ); 我如何使用Doxygen正确记录这些信息 我希望记录tCallback和预期参数 一个简单的例子: /// \typedef test typedef test bool 以强氧产生正确的输出 //typedef tCallback typedef void( __cdecl *tCallback )( const char* Message ); 产

我有以下类型的定义:

typedef void( __cdecl *tCallback )( const char* Message );
我如何使用Doxygen正确记录这些信息

我希望记录tCallback和预期参数

一个简单的例子:

/// \typedef test
typedef test bool
以强氧产生正确的输出

//typedef tCallback
typedef void( __cdecl *tCallback )( const char* Message );
产生:

C:/test.cpp:2: warning: Found ';' while parsing initializer list! (doxygen could be confused by a macro call without semicolon)
C:/test.cpp:1: warning: member with no name found.


生成与上述内容相同的内容。

将以下内容添加到您的Doxyfile中:

PREDEFINED = __cdecl=

这将导致Doxygen出于文档编制的目的忽略此标识符。

的可能重复项,这表明您可能需要正确限定typedef名称,如果它位于命名空间内或嵌套在另一个typeNot重复项中,因为该问题要求简单的typedef,而不是像这样复杂的typedef。答案没有帮助,我先搜索了一下。有人想告诉我为什么投票要结束吗?这里没有复制品。上面指出的重复是针对名称空间中的简单typedef,名称空间导致了问题。这个问题是无关的。@gbrandt这似乎是问题@Ben linked的重复。为什么复杂的typedef会有不同的行为?你能用一个例子来更新你的问题吗?显示它使用非函数指针typedef吗?@gbrandt如果你删除u cdecl,问题会重现吗?更好的是(在我的例子中)在某些情况下使用“预定义=u cdecl:=”,这样就不能重新分配u cdecl。一个小精度:你需要激活宏扩展(宏扩展=是)同样,或预定义不会有任何影响。但是,您的文档将不会显示正确的回调签名,对吗?文档中不会显示_cdecl,如果用户从文档而不是从标题复制签名,则可能会导致问题(至少是编译器错误)。在我看来,应该有一种方法让文档以与代码中相同的方式显示typedef。@dlchambers:调用约定受编译器选项的影响,但文档也不显示这些选项。
PREDEFINED = __cdecl=