在我正在开发的库中,我经常有这样的代码:
template<typename T = P, enable_if_c<has_V_field<T>> = detail::dummy>
constexpr std::size_t v(){
return T::V;
}
template<typename T = P, disable_if_c<has_V_field<T>> = detail::dummy>
constexpr std::size_t v(){
return 1;
}
这两个函数执行相同的操作,但是根据类型启用。我想只记录其中一个,而且我希望尽可能在没有模板内容的Doxygen中显示它,如constexpr std::size_t v()
。对于用户来说,这里的模板根本没有价值。
Doxygen可以做到这一点吗?
答案 0 :(得分:3)
您可以将您想要查看的功能放在条件部分中,如下所示:
#ifdef DOXYGEN_ONLY
/*! documentation for v. */
constexpr std::size_t v();
#else // actual implementation with two variants selected via SFINAE
template<typename T = P, enable_if_c<has_V_field<T>> = detail::dummy>
constexpr std::size_t v(){
return T::V;
}
template<typename T = P, disable_if_c<has_V_field<T>> = detail::dummy>
constexpr std::size_t v(){
return 1;
}
#endif
然后使用以下配置设置:
ENABLE_PREPROCESSING = YES
PREDEFINED = DOXYGEN_ONLY
答案 1 :(得分:1)
您可以使用\fn
:http://www.doxygen.nl/manual/commands.html#cmdfn
类似:(未经测试)
/*! \fn template<typename T> constexpr std::size_t v()
* \brief A function.
* \return 1 or T::V.
*/