我有一個包含頭文件:爲什麼Doxygen將此方法報告爲屬性?
class ClassName {
...
////////////////////////////////////////////////////////////////////////////////////////////////////
/// \fn boost::function<int(void *, char *)> ClassName::getFnPtr();
///
/// \brief ...
///
/// \author ...
/// \date ...
///
/// \return A boost function object ...
////////////////////////////////////////////////////////////////////////////////////////////////////
boost::function<int(void *, char *)> getFnPtr();
...
};
當運行Doxygen的,getFnPtr()
的「公共屬性」,而不是在報道的「公有成員。」任何人都可以幫助我讓Doxygen把它放在正確的地方嗎?
我是Doxygen的新手,但熟悉Javadoc。我正在使用Doxygen GUI 1.8.1。
編輯:我認爲Doxygen是窒息的模板返回類型涉及一個助推函數對象。這篇文章 - Doxygen fails to parse templated return type - 表示Doxygen不處理最新的C++更改。什麼版本的C++開始支持boost函數對象返回類型?任何人都可以指向Doxygen用於boost函數對象返回類型的其他示例嗎?
可能是因爲Doxygen沒有C++語言精確分析器(JavaDoc)。這意味着Doxygen必須在解釋符號的含義和/或在何處定義它的位置時犯錯誤。 (在哪裏搞砸取決於它沒有實現的C++部分)。儘管存在這個缺陷,但人們一直都在困惑我,人們使用Doxygen。 –
@IraBaxter是否在我發佈的代碼中存在固有的東西,這會觸發Doxygen中的已知錯誤?或者你只是說「Doxygen有錯誤,所以不要使用它?」我有其他非常相似的方法聲明,工作得很好。無論如何,我必須使用Doxygen,那麼你能找出問題並幫助解決它嗎?順便說一句,你表示Javadoc有一個C++語言精確解析器。你的意思是Javadoc有一個精確的語言_Java_解析器? – taz
我的意思是說JavaDoc具有(類推)一種語言精確的Java解析器,是正確的。不,我不知道Doxygen的類型解析器的侷限性,除了真正的(我們爲C++前端創建一個解析器)是巨大的努力,我沒有理由相信已經爲Doxygen做出了努力。我在說,「Doxygen肯定有錯誤」,所以我想知道爲什麼人們使用它。一個答案是他們不寫複雜的C++程序,所以Doxygen做的是「足夠正確」。如果Doxygen在你遇到的複雜情況下失敗,那麼它就無法確切地說明它最需要的地方。因此,我的困惑。 –