Next: , Previous: Variables Commands, Up: Def Cmds in Detail


15.4.3 型のある言語の関数

@deftypefnコマンドとその変形は,CやC++のような変数の型と関数を宣 言する必要がある言語の関数を記述するためのものです.

@deftypefn category data-type name arguments...
@deftypefnコマンドは,関数と,引数を取るものや型のある類似の構成 要素の定義コマンドです.@deftypefnは行の最初に書き,同じ行に記述 される構成要素のカテゴリ,戻り値の型,この特定の構成要素の名前と,存在す る場合引数が続きます.

例えば,以下のようにします.

          @deftypefn {Library Function} int foobar
            (int @var{foo}, float @var{bar})
          ...
          @end deftypefn

(“...”の前のテキストは,二行で表示され,Texinfoファイルでは実際に は単一行です.)Infoでは以下を生成します.

          -- Library Function: int foobar (int FOO, float BAR)
          ...

これは,foobarが“ライブラリ関数”で,それはintを返し,引 数はfoo(int)とbar(float)だということを意味しま す.

@deftypefnで書いた引数名は,暗黙で@varにはなりません — @deftypefnの引数の実際の名前は,データ型名とキーワードで通常はバ ラバラなので,Texinfoは助けなしに見つけることができません.代わりに, @varを引数名の周りに明示的に書く必要があります.上の例では,引数 名は‘foo’と‘bar’です.

@deftypefnのテンプレートは以下の通りです.

          @deftypefn category data-type name arguments ...
          body-of-description
          @end deftypefn

categorydata typeが1単語以上の場合,単一の引数にするためカッ コで囲む必要があることに注意してください.

Adaのようなパッケージ言語のプロシージャを記述する場合,前の段落で記述さ れている慣習と幾分反対の方法として,@deftypefnの使用を手法として 考えるかもしれません.

例えば以下のようにします.

          @deftypefn stacks private push
                 (@var{s}:in out stack;
                 @var{n}:in integer)
          ...
          @end deftypefn

(@deftypefnの引数は,三行に分割されていますが,実際のTexinfoファ イルでは単一行になります.)

この例では,プロシージャは`プロシージャ'と分類するのではなくパッケージ stacksに属するものとして分類され,そのデータ型はprivateと して記述されます.(プロシージャの名前はpushで,その引数はsnです.)

@deftypefnnameに対し関数索引に項目を作成します.

@deftypefun data-type name arguments...
@deftypefunコマンドは,型のある言語の関数のための特別な定義コマ ンドです.そのコマンドは‘@deftypefn Function ...’と同じです.

このため以下のようにします.

          @deftypefun int foobar (int @var{foo}, float @var{bar})
          ...
          @end deftypefun

Infoでは以下を生成します.

          -- Function: int foobar (int FOO, float BAR)
          ...

テンプレートは以下の通りです.

          @deftypefun type name arguments...
          body-of-description
          @end deftypefun

@deftypefunnameに対し関数索引に項目を作成します.