2009-08-17 76 views
2

有人能告诉我这段代码有什么问题,所以doxygen无法处理?命名空间内的Doxygen和typedefs

/*! 
\file Enumerator.h 
\brief Implements an Enumerator pointer for accessing linked list elements. 
*/ 

#pragma once 

#ifndef __MSCL_ENUMERATOR_H__ 
#define __MSCL_ENUMERATOR_H__ 

namespace MSCL 
{ 

/*! 
\typedef Enumerator 

Pointer to linked list data structure. 

\sa ArrayList::GetEnumerator, \sa List::GetEnumerator 
*/ 
typedef void* Enumerator; 

}; 
#endif 

我需要所使用的许多方法作为参数类型为

1)可见在帮助索引的枚举。

2)正确链接到此文档页面。

目标文档格式为chm。

这是绝对令人困惑的,因为没有错误,没有警告,什么都没有。

有一次,在播放了不同的doxygen配置选项后,我设法实现了#1 - 该类型位于索引中,但我不知道切换是否做到了,我无法重复。

回答

4

如果我添加一个doxygen注释来描述命名空间MSCL,那么MSCL :: Enumerator的文档就会正确生成。

+1

你的意思是 ---------------------- /*! \命名空间MSCL \简短等等等等 等等等等 */ 命名空间MSCL { (...) ------------------- --- ? 不起作用。通常,命名空间声明块{}是由宏定义的 - 我将其替换为普通语法,因为doxygen根本无法处理它 - 即使启用了预处理。不幸的是,无论是否定义了名称空间,它都不起作用。 顺便说一句:预处理器宏定义的文档也没有生成,所以也许它是我打开或关闭导致这种情况的开关? – mslaf 2009-08-17 21:28:12

+0

我想有一个doxygen配置开关正在进行中。尝试将Enumerator.h放在一个空文件夹中,然后用空的doxyconf运行doxygen。添加注释并再次运行doxygen,并使用空的doxyconf。对我而言,第二次运行会在“MSCL命名空间参考”页面上为Enumerator生成文档,其中还包括注释中的参见参考。 – Neil 2009-08-18 04:04:25

+2

问题已解决。显然这个问题是由“SHOW_FILES”设置为false造成的。顺便说一句:如果“SHOW_NAMESPACES”设置为false,则typedef位于索引中,但缺少文档页面。非常感谢您的帮助;) – mslaf 2009-08-18 10:06:54