在课程Foo
中,我有以下模板功能:
class Foo
{
public:
template <typename T>
static typename boost::enable_if<boost::is_abstract<T>, T*>::type allocate();
template <typename T>
static typename boost::disable_if<boost::is_abstract<T>, T*>::type allocate();
};
有两个声明,但是,对于用户,只有一个函数。
使用Doxygen记录此类声明的常用方法是什么?
想法#1:
class Foo
{
public:
/** \brief This function throws a runtime error */
template <typename T>
static typename boost::enable_if<boost::is_abstract<T>, T*>::type allocate();
/** \brief This function allocates an instance of the given type */
template <typename T>
static typename boost::disable_if<boost::is_abstract<T>, T*>::type allocate();
};
想法#2:
class Foo
{
public:
/** \brief This function allocates an instance of the given type if not abstract, throws an exception instead */
template <typename T>
static typename boost::enable_if<boost::is_abstract<T>, T*>::type allocate();
template <typename T>
static typename boost::disable_if<boost::is_abstract<T>, T*>::type allocate();
};