Как заставить Doxygen анализировать typedef указателя на функцию, содержащую __cdecl?

При использовании MS C или GNU C, где необходимо использовать __cdecl, прототипы указателей на функции выглядят так:

  • typedef int (__cdecl * funcname_ptr) (void * arg1, const char * arg2);
  • typedef int (__attribute __ ((cdecl)) * funcname_ptr) (void * arg1, const char * arg2);

Кажется, что текст до * funcname_ptr вызывает сбой парсера doxygen.

Если вы столкнулись с этой проблемой, нашли ли вы решение?


person ReluctantBIOSGuy    schedule 17.03.2011    source источник


Ответы (1)


Я не сталкивался с этой проблемой, но одним из способов решения этой проблемы может быть предопределение __cdecl как макроса, который ничего не оценивает в файле конфигурации doxygen, используя PREDEFINED.

person cdiggins    schedule 19.03.2011
comment
Спасибо за предложение. К сожалению, это не меняет вывод Doxygen. - person ReluctantBIOSGuy; 21.03.2011
comment
Оказывается, вы были правы, но я не совсем правильно понял свою попытку. Я неправильно понял документацию Doxygen и ошибочно подумал, что мне нужно только установить EXPAND_ONLY_PREDEF на YES. Оказывается, вы также должны установить для MACRO_EXPANSION значение YES. Итак, полное решение: 1) Set MACRO_EXPANSION = YES, 2) Set EXPAND_ONLY_PREDEF = YES, 3) Set PREDEFINED = __cdecl= __attribute__((cdecl))= AnythingElseYouWantToDisappear= - person ReluctantBIOSGuy; 23.03.2011