9

doxygen を使用して関数オブジェクト (別名ファンクター) をどのように文書化すればよいですか? 通常のクラスとして文書化するだけでは誤解を招くように感じます。関数オブジェクトは、呼び出し可能なクラスよりも、クロージャーを備えた関数と考える方がはるかに優れていると思います。

私の好みに合った関数オブジェクトを文書化する方法はありますか?

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

クラスのドキュメントで十分です。目的と使用法を説明し、役立つものを明確にしてください。明白なものの過度に冗長な文書化は避けることができます。

/*! \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 に答える
1

クラスのドキュメントを提供し、 functoroperator()という単語を最初の文(できれば最初の単語として)に入れ、意味が明らかな場合はドキュメントをスキップします。

注意:過負荷の場合、意味が明確でないoperator()ことがよくあります。

于 2011-03-05T17:58:14.870 に答える