给出以下C ++代码
class Foo {
private:
union { int x; char y; } v;
public:
int get_int() { return v.x; }
};
和标准配置文件(除了EXTRACT_PRIVATE=YES
之外),doxygen版本1.8.6为Foo
的私有属性生成了错误的LaTeX代码。更准确地说,tex文档的相关片段如下:
\hypertarget{unionFoo_1_1@0_a16eddb7296c37d91335845d7b847c6b3}{\>int {\bfseries x}\\
\hypertarget{unionFoo_1_1@0_ae4b5d1d732df4608dbc4871c55b7f4b2}{\>char {\bfseries y}\\
\hypertarget
的第二个参数缺少右括号}
。
除EXTRACT_ALL=YES
之外设置EXTRACT_PRIVATE=YES
会产生正确的输出。行为是否在Doxygen中的错误之上,或者我是否应该仅在EXTRACT_PRIVATE=YES
时使用EXTRACT_ALL=YES
?关于这两个选项之间潜在的依赖性的文档不是很清楚,如果是这样的话,Doxygen至少应该警告不一致。