2009-08-17 72 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