On 11/19/16 7:10 AM, using wrote: > I have the following in a file: > > namespace ns { > /// \struct A DoxyTest.h > struct A > { > /// \enum A::Enum1 > /// \var e1 > /// This is e1 > /// \var e2 > /// This is e2 > enum class Enum1 { > e1, > e2 > }; > > /// \enum A::Enum2 > /// \var e3 > /// This is e3 > /// \var e2 > /// This is another e2 > enum class Enum2 { > e3, > e2 > }; > }; > } > > Note that both Enum1 and Enum2 have enumerators called 'e2'. The output from > Doxygen puts the documentation for both into Enum1::e2. Enum2::e2 is not > shown at all as seen in the image below. I found a related topic > <http://doxygen.10944.n7.nabble.com/enum-value-of-quot-NONE-quot-is-not-understood-by-Doxygen-td6541.html#a6549> > , but there was no stated resolution other than maybe posting a bug report. > > So, is there any way around this problem? Renaming Enum2::e2 to Enum2::e4 is > not an acceptable option. > > <http://doxygen.10944.n7.nabble.com/file/n7755/enum.png> > The issue may be that without the 'class' keyword in the definitions, your code would be invalid as both e2's would actually be ns:A:e2, so in conflict with each other. The referenced related issue looks to be exactly that (Not being in the same Translation Unit, the error is not required to be diagnosed, but I think still technically a violation of the One Definition Rule, which probably is what gives Doxygen the problem).
It may be that Doxygen doesn't fully support the enum class construct, and is still keeping track of the enumeration values in the ns::A namespace, and not in the appropriate Enum# sub-namespace therein. -- Richard Damon ------------------------------------------------------------------------------ _______________________________________________ Doxygen-users mailing list Doxygen-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/doxygen-users