我有一些模板的C++源代碼可能是這樣的 - doxygen運行沒有錯誤,但沒有文檔被添加到輸出,發生了什麼?Doxygen不會索引我的C++源代碼 - 爲什麼不呢?
///
/// A class
///
class A
{
///
/// A typedef
///
typedef B<C<D>> SomeTypedefOfTemplates;
};
我有一些模板的C++源代碼可能是這樣的 - doxygen運行沒有錯誤,但沒有文檔被添加到輸出,發生了什麼?Doxygen不會索引我的C++源代碼 - 爲什麼不呢?
///
/// A class
///
class A
{
///
/// A typedef
///
typedef B<C<D>> SomeTypedefOfTemplates;
};
是的,所以發生的是模板實例化是假的。像這樣的「>>」是不明確的,並且意味着編譯時錯誤。你看不到它,因爲也許你的編譯器(VC++)讓它滑過,但我想doxygen是更嚴格的。添加一個如圖所示的空間。
///
/// A class
///
class A
{
///
/// A typedef
///
typedef B<C<D> > SomeTypedefOfTemplates;
};
請注意,doxygen現在支持使用右移運算符(從版本1.6.0開始)關閉模板。
另請參閱http://bugzilla.gnome.org/show_bug.cgi?id=560512瞭解有關該問題和解決方案的討論。
是的,>>會被解釋爲一個右移運算符。不過,C++ 0x會改變這種行爲。見http://en.wikipedia.org/wiki/C%2B%2B0x#Angle_bracket – 2008-10-16 21:33:30