我有一个编译时递归类型,看起来有点像这样:
template <typename DataType, typename LeftNode, typename RightNode>
struct fixed_tree{
fixed_tree(const DataType& data, const LeftNode& left, const RightNode& right) : data_(data),left_(left),right_(right){}
DataType data_;
LeftNode left_;
RightNode right_;
};
该类对各种叶节点有一些专门化,其中左/右节点为空,但这并不重要。
然后这个递归类作为参数传递给一个函数,创建一个有点长的类型名。
namespace some_namespace{
void some_function(int some_param0, int some_param1, fixed_tree<std::string,
fixed_tree<int,
fixed_tree<float, void, void >,
fixed_tree<double, void, void >
>,
fixed_tree<int,
fixed_tree<double,void,
fixed_tree<char,
fixed_tree<int, void,void>,
fixed_tree<int, void,void>
> >,
void
>
> somewhat_lengthy_type
);
当我通过 Doxygen 运行此函数时,函数文档严重溢出该行。
我的问题是:有没有办法在 doxygen 注释 block 之外提示/强制换行,以便文档中的外观类似于源代码中的内容。
我对以下解决方案不太感兴趣:
使用类型定义。尽管该示例不具有此特征,但实际类型形成了一种不言自明的语法,实际上有助于理解接口(interface)的功能。
自定义CSS。最好避免弄乱不是 doxygen 标签的东西。
最佳答案
IMO,这绝对是你应该输入的内容。在这么长的时间里包含整个类型是不好的做法。这样做可以解决 doxygen 问题,并制作一种更简单的类型(我可以很容易地看到当前类型中的拼写错误)。如果那棵树很深,您也应该通过引用传递。
在 doxygen 中,您可以使用更具体的标签,例如:
/**
* @method name Docs.
*/
记录特定的代码。然而,这些通常会添加到自动生成的文档中,我不确定您是否可以完全覆盖它们。
很简单,它在代码/文档中看起来很丑这一事实应该是一个巨大的提示,它很很丑,应该重构。
关于c++ - 长 C++ 模板类型的 doxygen 换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7877074/