所以我开始使用Doxygen 1.8.13(Windows 10,64位)记录一个C ++项目,并遇到GraphViz的调用/调用者图生成问题。
如果使用以下代码生成文档,Doxygen将生成一个如下所示的调用图:
但是如代码所示,Path()不会调用任何函数(空体)。
struct Path {
Path(const Node* source_node, const Node* target_node,
const unsigned long cost, const std::vector<const Node*> path)
: source_node(source_node), target_node(target_node),
cost(cost), path(path), length(path.size()) { };
void printCompletePath(std::ostream& = std::cout) const;
const Node* source_node = nullptr;
const Node* target_node = nullptr;
const unsigned long cost = 0;
const std::vector<const Node*> path{};
const std::vector<const Node*>::size_type length = 0;
};
但如果我按如下方式重新排序代码,则调用图会消失(按预期):
struct Path {
Path(const Node* source_node, const Node* target_node,
const unsigned long cost, const std::vector<const Node*> path)
: source_node(source_node), target_node(target_node),
cost(cost), path(path), length(path.size()) { };
const Node* source_node = nullptr;
const Node* target_node = nullptr;
const unsigned long cost = 0;
const std::vector<const Node*> path{};
const std::vector<const Node*>::size_type length = 0;
void printCompletePath(std::ostream& = std::cout) const;
};
Doxygen和/或GraphViz错误是什么?或者我错过了什么? (我不想为Doxygen工作重新排序我的源代码。)
答案 0 :(得分:2)
对于版本1.8.13,我可以重现有关调用图的问题。对于版本1.8.14,这个错误的调用图已经消失。
来自doxygen更改日志:函数定义后面的函数声明错误地列为调用依赖项[https://github.com/doxygen/doxygen/commit/436fc7ed1158d517dd6f6d25aa3e05568f8c3d94]