9

我应该如何用 doxygen 记录一个函数对象(AKA 函子)?仅将其记录为常规课程会产生误导。我发现将函数对象视为具有闭包的函数比可调用类要好得多。

有没有办法记录一个符合我偏好的函数对象?

class Adder
{
public:
   Adder( size_t x ) :
      m_x(x)
   { }

   size_t operator () ( size_t y ) const
   {
      return m_x + y;
   }

private:
   const size_t m_x;
};
4

3 回答 3

1

给它类文档,将functor这个词放在第一句(最好作为第一个词),operator()如果含义很明显,则跳过文档。

请注意:如果重载,其含义通常并不明显。operator()

于 2011-03-05T17:58:14.870 回答
1

您可以使用 doxygen成员组将所有仿函数组合在一起。也许这样的事情会起作用:

/// @name Functors
/// @{

class Adder;

/// @}

/// Functor that adds a set value to its argument when called.
class Adder
{
public:
   Adder( size_t x ) :
       m_x(x)
   { }

   size_t operator () ( size_t y ) const
   {
      return m_x + y;
   }

private:
   const size_t m_x;
};
于 2011-03-25T17:32:44.360 回答
1

类文档应该足够了。只需描述目的和用法并澄清任何有用的内容。可以避免过于冗长的显而易见的文档。

/*! \brief Adder functor
 *
 *  Returns size_t sum of const member and parameter
 */
class Adder
{
public:
   //! Construct with constant value for subsequent sums
   Adder( size_t x ) :
      m_x(x)
   { }

   //! Call with value to compute with constant
   size_t operator () ( size_t y ) const
   {
      return m_x + y;
   }

private:
   const size_t m_x;
};
于 2011-03-25T18:04:24.197 回答