【发布时间】:2018-05-26 11:38:01
【问题描述】:
于是我开始用 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 工作而重新排序我的源代码。)
【问题讨论】: