【发布时间】:2012-11-01 19:00:15
【问题描述】:
是否有关于如何使用 Doxygen 记录 C++ 模板和模板元函数的指南?
例如:
/// @brief metafunction for generation of a map of message types to
/// their associated callbacks.
/// @tparam Seq the list of message types
template< class Seq >
struct generate_callback_map
{
typedef typename mpl::transform< Seq
, build_type_signature_pair< mpl::_1 >
>::type vector_pair_type;
typedef typename fusion::result_of::as_map< vector_pair_type >::type type;
};
到目前为止,我看到了以下建议:
-
@tparam用于记录模板参数。 -
@arg记录模板参数的另一种方式。 -
@brief用于描述元功能。
应该如何记录元函数的“返回类型”?
对于将 Doxygen 与 C++ 模板一起使用,有人有什么好的建议或个人偏好吗?
【问题讨论】:
-
@Pubby:这是一个非常有用的建议。你会用什么,而不是?
-
@JanHudec 自己编写而不是生成它。当然,使用样式指南和一致的格式。可读代码对 TMP 来说是一个巨大的优势,因为它们是一个泄漏的抽象。使用伪代码进行解释会有所帮助,因为 C++ 语法很烂。
-
@Pubby 一定是在开玩笑。好的文档是你从不看代码的时候。您在标题中阅读解释 cmets,您甚至不关心查看实现,也就是说,您不关心代码样式、格式、可读性等等——这是一个很好的文档。 Doxygen 只是一个从源代码(最好是从标题中) 中提取这些文档的工具。当然,如果你想像一堆 «targzipped» 标题而不是 html/pdf/whatever 那样分发 API 描述,那么,祝你好运;我更喜欢使用 Doxygen。