| [ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
16.5.3 Functions in Typed Languages
The @deftypefn command and its variations are for describing
functions in languages in which you must declare types of variables
and functions, such as C and C++.
@deftypefn category data-type name arguments…The
@deftypefncommand is the general definition command for functions and similar entities that may take arguments and that are typed. The@deftypefncommand is written at the beginning of a line and is followed on the same line by the category of entity being described, the type of the returned value, the name of this particular entity, and its arguments, if any.For example,
@deftypefn {Library Function} int foobar @ (int @var{foo}, float @var{bar}) … @end deftypefnproduces:
This means that
foobaris a “library function” that returns anint, and its arguments are foo (anint) and bar (afloat).Since in typed languages, the actual names of the arguments are typically scattered among data type names and keywords, Texinfo cannot find them without help. You can either (a) write everything as straight text, and it will be printed in slanted type; (b) use
@varfor the variable names, which will uppercase the variable names in Info and use the slanted typewriter font in printed output; (c) use@varfor the variable names and@codefor the type names and keywords, which will be dutifully obeyed.The template for
@deftypefnis:@deftypefn category data-type name arguments … body-of-description @end deftypefn
Note that if the category or data type is more than one word then it must be enclosed in braces to make it a single argument.
If you are describing a procedure in a language that has packages, such as Ada, you might consider using
@deftypefnin a manner somewhat contrary to the convention described in the preceding paragraphs. For example:@deftypefn stacks private push @ (@var{s}:in out stack; @ @var{n}:in integer) … @end deftypefn(In these examples the
@deftypefnarguments are shown using continuations (see section Definition Command Continuation Lines), but could be on a single line.)In this instance, the procedure is classified as belonging to the package
stacksrather than classified as a ‘procedure’ and its data type is described asprivate. (The name of the procedure ispush, and its arguments are s and n.)@deftypefncreates an entry in the index of functions for name.@deftypefun data-type name arguments…-
The
@deftypefuncommand is the specialized definition command for functions in typed languages. The command is equivalent to ‘@deftypefn Function …’. The template is:@deftypefun type name arguments… body-of-description @end deftypefun
@deftypefuncreates an entry in the index of functions for name.
Ordinarily, the return type is printed on the same line as the
function name and arguments, as shown above. In source code, GNU
style is to put the return type on a line by itself. So Texinfo
provides an option to do that: @deftypefnnewline on.
This affects typed functions only—not untyped functions, not typed
variables, etc.. Specifically, it affects the commands in this
section, and the analogous commands for object-oriented languages,
namely @deftypeop and @deftypemethod
(see section Object-Oriented Methods).
Specifying @deftypefnnewline off reverts to the default.
| [ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on October 2, 2013 using texi2html 5.0.
