我有一个编译时递归类型,看起来有点像这样:
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注释块之外提示/强制换行符,以便文档中的外观类似于源代码中的内容。
我对以下解决方案不是很感兴趣:
使用typedef。尽管该示例不共享此特征,但实际类型形成了一种不言自明的语法,实际上有助于理解界面的作用。
自定义CSS。很高兴避免弄乱那些不是doxygen标签的东西。
答案 0 :(得分:3)
IMO 肯定是你应该输入的东西。包括整个类型这么长时间是不好的做法。这样做可以解决doxygen问题,以及制作更简单的类型(我可以很容易地看到来自当前错字的错字)。如果那棵树很深,你也应该通过参考传递。
在doxygen中,您可以使用更具体的标签,例如:
/**
* @method name Docs.
*/
记录特定的代码。这些通常会添加到自动生成的文档中,但我不确定您是否可以完全覆盖这些文档。
很简单,它在您的代码/文档中看起来很丑陋的事实应该是一个巨大的提示,它 丑陋且应该重构。