Обычно doxygen используется только для документирования общих функций. Однако я попробовал что-то подобное.
/// Foo Function
void Foo(void)
{
/// if switch \a condition equals
switch (condition)
{
case VALUE_1:
{
/// - Path 1 \n
/// Detailed explanation of path A.
Foo1();
break;
}
case VALUE_2:
{
/// - Path 2 \n
/// Detailed explanation of path B.
Foo2();
break;
}
case VALUE_3:
{
/// - Path3 \n
/// Detailed explanation of path C.
Foo3();
break;
}
case default:
{
/// - Default Case
///Something went wrong
}
}//end switch
}
Это поместит подробное описание под функцию Foo и создаст маркированный список каждого из случаев. Не забудьте поставить «-» для создания списка bulletd. Что касается генерации графов вызовов, вы можете попробовать использовать ключевое слово \ dot. Тем не менее, я никогда не использовал его, и думаю, что это очень много работы, чтобы создать действительно полезную диаграмму, которая объясняет путь.