У меня возникла ситуация, когда мне нужно задокументировать подпись bsearch() в Doxygen. Эта подпись выглядит так:
void * __cdecl bsearch (
const void *key,
const void *base,
size_t num,
size_t width,
int(__cdecl *compare)(const void *, const void *)
)
Проблема, с которой я столкнулся, заключается в том, как составить команду @param для указателя *compare, так как Doxygen жалуется, что «аргумент 'compare' команды @param не найден в списке аргументов bsearch» во всем, что я бросить на это.
Это автономная реализация, поэтому она не зависит от подписи библиотеки, однако я думаю, что если бы я это сделал:
typedef int(__cdecl *pcompare)(const void *, const void *);
изменив подпись на pcompare, у вызывающих абонентов, использующих стандартную подпись, возникнут проблемы с типом.
Я открыт для ЛЮБОГО решения, которое позволит мне задокументировать это без тревоги со стороны Doxygen.
bsearch
is C++ является потерей для всех учетных записей — он не является типобезопасным и медленнее, чем эквивалентные шаблонные функции C++, такие какstd::binary_search
иstd::lower_bound
. - person Ben Voigt   schedule 10.05.2015