2011-02-07 121 views
0

我正在充實我的模塊的doxygen文檔,並遇到了一個奇怪的問題。當引用位於命名空間自動鏈接中的變量不起作用時。這裏是一個片段:命名空間中聲明的引用靜態常量變量

namespace isa { 

const double H_max= 10000; //!< @brief Maximum altitude in meters. 

//! @brief Calculate air densitity at altitude \a H. 
//! @throw argument_exception when \a H exceeds ::H_max. 
double rho(double H); 

} // namespace isa 

我期望的doxygen把鏈接發給H_max在功能RHO(雙)的異常說明指導讀者不斷。但只有當我離開命名空間時纔會這樣做,否則自動鏈接不起作用。

我在做什麼錯?

在此先感謝。

+0

你是什麼意思「我離開命名空間」?你在`:: H_max`中刪除了雙冒號前綴嗎? – 2011-02-07 17:12:39

+0

@Antonio:當我刪除「namespace isa {」和相應的右大括號。 – Arne 2011-02-08 07:07:20

回答

0

好的,所以這裏的問題不是doxygen錯誤的行爲,而是對全局命名空間前綴::如何工作的誤解。

::H_max標識在全局名稱空間中定義的符號,即在任何名稱空間之外。我害怕 - 如果我錯了,請糾正我 - 你在哪裏期望它的行爲與父目錄..標識符一致。

當doxygen處理您提供的代碼片段時,它在異常描述中不鏈接::H_max,因爲它在全局名稱空間中找不到H_max變量。如果您刪除雙冒號前綴,它應該提供一個鏈接到。