GNOME Bugzilla – Bug 153362
doxygen gets confused by template typedefs that contain parenthesis
Last modified: 2007-08-02 13:56:04 UTC
[forwarded from http://bugs.debian.org/267406] In the following file: struct Foo { typedef bar<void()> Baz; }; Baz' signature will be shown as: typedef bar<void() Foo::Baz) instead of typedef bar<void()> Foo::Baz A 'typedef bar<void> Baz' is handled correctly.
I believe another case of this problem manifests with boost::signals when you're using the 'preferred syntax' they describe e.g. boost:signal< void () >. This is not recognized as a type at all.
Created attachment 56137 [details] Testcase - GZIPP'ed Tarball Confirmed. My attatchment contains a testcase I have produced for this bug.
This bug appears in 1.4.5-20051127 as well.
Hello, I see that bug in C with Doxygen 1.4.5 as well, with the following declaration: typedef __declspec(dllimport) BOOL(*SomeFunctionPointer)(double, int, long*, char*); Thanks
I found a similar bug in doxygen 1.4.6 : /// Lookup table template< class POD > class AA { public: // Chokes on this typedef void ( t_Function )( const POD *, float &, float & ); /// No return value for constructors AA( ); };
typedef typeOUResult (WINAPI *typeOperationCompletedCallback)( typeListOfStrings*, bool); Leads to the following output HTML: typedef typeOUResult(WINAPI *) typeOperationCompletedCallback(typeListOfStrings *, bool) Note that the Brackets are moved into a semi-incorrect format.
There is a bug in displaying all C function prototypes. The bug is still in 1.5.2. The following C function prototype: typedef void (*foo)(int arg); will translate in the following HTML output (which is incorrect and won't compile): typedef void (*) foo(int arg);
#4 and #6 are preprocessor issues, see the corresponding section in the manual. #3 and #5 seems already be fixed. #7 is indeed a bug and will be fixed in the next release.
I'm sorry...I don't see how my comment is related to preprocessor issues... If you are implying i should add "WINAPI= \" to PREPROCESSOR_DEFINES...I then end up with comment 7 Comment 6 and comment 7 are virtually identical--> typedef void (WINAPI *foo)(int arg); vs. typedef void (*foo)(int arg); In any case, if comment 7 is fixed, my issue should be fixed as well...Thanks for looking into it!
This bug was marked ASSIGNED and as a result has been moved to the FIXED state with the release of 1.5.3, since I believe the bug has been fixed in this release. I kindly ask you to verify this and reopen the bug should this not be the case.
I can confirm this is fixed in 1.5.3
Works for me too in 1.5.3. Thanks!