I have C interface structs that look like this (non-relevant comment elements removed for brevity):
struct ArrayInterface {
/**
* @static
* @fn Array *Array::arrayWithArray(const Array *array)
* @memberof Array
*/
Array *(*arrayWithArray)(const Array *array);
/**
* @static
* @fn Array *Array::arrayWithObjects(ident obj, ...)
* @memberof Array
*/
Array *(*arrayWithObjects)(ident obj, ...);
/**
* @fn _Bool Array::containsObject(const Array *self, const ident obj)
* @memberof Array
*/
_Bool (*containsObject)(const Array *self, const ident obj);
// ...
}
The @fn and @memberof are working as expected. The functions are indeed picked up by Doxygen as member functions. However, @static seems to be ignored, as the static functions are lumped in with the rest of the members in the generated documentation:
My Doxygen layout.xml includes both publicstaticmethods and publicmethods. My Doxyfile specifies EXTRACT_ALL and EXTRACT_STATIC as YES.
You would think that adding @static to those members would pull them into the Static Methods section of the Class documentation, yet as you can see, it doesn't.
I realize that I'm bending the limits of C and Doxygen here, but this still feels like a bug -- or maybe I'm doing something wrong.

structand functions. A function pointer is not the same! - too honest for this site\memberofand\staticare applicable (and in fact, intended for) the C language, where these attributes cannot be inferred from the source code. - jdolan